Abstract:
A method of accessing a memory record in distributed network storage, comprising: storing a plurality of memory records in a plurality of network nodes, each stores a file system segment of a file system mapping the memory records, each file system segment maps a subset of the memory records; receiving, by a storage managing module of a first network node, a request for accessing one of the memory records from an application executed in the first network node; querying a file system segment stored in the first network node for the memory record; when the memory record is missing, querying for an address of a second network node, wherein the memory record is stored in the second network node; and providing said first network node with an access to said memory record at said second network node via a network according to said address.
Abstract:
Method, apparatus and product for data cloning in a memory-based file systems. A content of each object of the file system is retained in data units and represented using a tree of the nodes comprising tree nodes and leaf nodes. The file system utilizes a volatile resource usage collection and volatile reference counters for each node of the nodes. In response to mounting the file system, a storage retaining a file system metadata is scanned to compile the volatile resource usage collection and the volatile reference counters. In response to a determination to reuse a pointed node of a tree of an object by a pointing node, a volatile reference counter of the pointed node is updated and the pointing node is atomically set, using a single instruction, to point to the pointed node.
Abstract:
Logical mirroring of an initiator server running a memory aware file system to a multi-tiered target server by receiving at a first tier of the target server data that was modified at the initiator server and retaining at the first tier of the target server a first subset of the data and moving to a second tier of the target server a second subset of the data to efficiently utilize the multi-tiered target server.
Abstract:
Methods for data placement in a memory-based file system are described, including copying a user data unit from a second storage type device to a first storage type device based on an access request to the file system, the first storage type device being a faster access device than the second storage type device, referencing the user data unit in the first storage type device by a byte addressable memory pointer, and using the byte addressable memory pointer to copy the user data unit from the first storage type device to the second storage type device based on data access pattern.
Abstract:
Managing pages in a memory based file system by maintaining a memory into two lists, an Lr list and an Lf list, moving pages from the Lr list to the Lf list based on a repeated access pattern, and moving a page out of the Lr list or the Lf list arbitrarily, thereby enabling the two lists to re-grow according to current workload.
Abstract:
A computer implemented method for updating a file system tree structure through an atomic operation, comprising one or more hardware processor adapted for designating a file system comprising a plurality of files arranged in a plurality of tree structures, the file system is based on a direct mapping persistent memory, receiving instructions from a client to alter an altered file of the plurality of files, creating an alternate tree structure to apply the alteration in case the alteration involves a non-atomic tree structure operation to an original tree structure of the plurality of tree structures containing the altered file and committing the alteration to the file system through an atomic operation.
Abstract:
A persistent memory based distributed-journal file system, comprising: 1) Direct mapped persistent memory unit hosting at least a subset of a file system which contains a plurality of files each associated with a metadata record and a self-journal record. 2) A memory storing a program code. 3) One or more processors coupled to the persistent memory unit and the memory for executing the program code which comprises: (a) Creating a resources dataset which maps characteristics of the file system by analyzing the files' metadata records. (b) Receiving an alteration request to alter altered file(s) of the plurality of files. (c) Determining if the alteration is an atomic alteration which is applied to the file system in an atomic operation. (d) Logging an indication of the alteration in the respective self-journal record of the altered file(s) for non-atomic alteration. (e) Applying the alteration in the file system.
Abstract:
A method, apparatus and product for accelerating concurrent access to a file in a memory-based file system. The method comprising receiving a request issued by a program, for accessing a file stored in a memory-based file system; and subject to the request being associated with data modification of data within the file, and subject to the modification not necessitating change in a structure of a data structure used for content lookup for the file, acquiring a lock to the file to the program, wherein the lock is acquired in a shared mode.
Abstract:
Method, apparatus and product for data cloning in a memory-based file systems. A content of each object of the file system is retained in data units and represented using a tree of the nodes comprising tree nodes and leaf nodes. The file system utilizes a volatile resource usage collection and volatile reference counters for each node of the nodes. In response to mounting the file system, a storage retaining a file system metadata is scanned to compile the volatile resource usage collection and the volatile reference counters. In response to a determination to reuse a pointed node of a tree of an object by a pointing node, a volatile reference counter of the pointed node is updated and the pointing node is atomically set, using a single instruction, to point to the pointed node.
Abstract:
A method and system for compute element state replication is provided. The method includes transforming at least a subset of metadata of a source compute element from a memory tier of the source compute element to a block representation; within a destination compute element, mounting the block representation; reverse transforming the metadata to a memory tier of the destination compute element; and using the reverse transformed metadata to operate the destination compute element.