Abstract:
A method and system are disclosed for storing client data objects in a deduplicated storage system. Deduplicated data may be stored in a plurality of physical data blocks. A content map layer can provide a mapping between the physical data blocks to logical map objects associated with the client data objects. The deduplicated data may be mapped to logical data blocks that comprise the client data objects.
Abstract:
In accordance with the present disclosure, files may be deduplicated in a distributed storage system having a plurality of storage volumes. A uniqueness metric for each file may indicate a degree of deduplication of the respective data files in the given storage volume. The uniqueness metric may be used to identify files for rebalancing in the distributed storage system. The uniqueness metric may be efficiently calculated with enough accuracy using a sampling methodology.
Abstract:
In accordance with the present disclosure, files may be deduplicated in a distributed storage system having a plurality of storage volumes. A uniqueness metric for each file may indicate a degree of deduplication of the respective data files in the given storage volume. The uniqueness metric may be used to identify files for rebalancing in the distributed storage system. The uniqueness metric may be efficiently calculated with enough accuracy using a sampling methodology.
Abstract:
A deduplication storage system with snapshot and clone capability includes storing logical pointer objects and organizing a first set of the logical pointer objects into a hierarchical structure. A second set of the logical pointer objects may be associated with corresponding logical data blocks of a client data object. The second set of the logical pointer objects may point to physical data blocks having deduplicated data that comprise data of the corresponding logical data blocks. Some of the logical pointer objects in the first set may point to the logical pointer objects in the second set, so that the hierarchical structure represents the client data object. A root of the hierarchical structure may be associated with the client data object. A snapshot or clone may be created by making a copy of the root and associating the copied root with the snapshot or clone.
Abstract:
Techniques for implementing a distributed, scalable key-value store (DSKVS) across a plurality of nodes are provided. In one embodiment, each node in the plurality of nodes can store: (1) a hash table in a nonvolatile storage of the node, where the hash table is configured to hold a partition of a total set of key-value data maintained by the DSKVS; (2) a logical log in the nonvolatile storage, where the logical log is configured to hold transaction log records corresponding to key-value update operations performed on the node; and (3) a cache in a volatile memory of the node, where the cache is configured to hold key-value data that has been recently updated on the node via one or more of the key-value update operations.
Abstract:
Examples perform input/output (I/O) requests, issued by a plurality of clients to an owner-node, in a virtual storage area network (vSAN) environment. I/O requests are guaranteed, as all I/O requests are performed during non-overlapping, exclusive sessions between one client at a time and the owner node. The owner node rejects requests for simultaneous sessions, and duplicate sessions are prevented by requiring that a client refresh its memory state after termination of a previous session.
Abstract:
Techniques for efficiently storing the state of an in-memory table to persistent storage are described. In one embodiment, one or more requests to update an entry in an in-memory table with one or more values are received, wherein the in-memory table is stored in non-persistent memory. The one or more entries in the in-memory table are then updated with the one or more values and one or more recent redo log entries that correspond to the one or more entries and one or more values are generated. One or more historical entries in the table are selected and one or more historical redo log entries that correspond to the one or more historical entries are generated. The recent redo log entry and the one or more historical redo log entries are saved to a bounded redo log, wherein the bounded redo log is stored in persistent storage.
Abstract:
A method and system are disclosed for storing client data objects in a deduplicated storage system. Deduplicated data may be stored in a plurality of physical data blocks. A content map layer can provide a mapping between the physical data blocks to logical map objects associated with the client data objects. The deduplicated data may be mapped to logical data blocks that comprise the client data objects.
Abstract:
Exemplary methods, apparatuses, and systems maintain hole boundary information by calculating a block attribute parity value. For example, a request is received to write to a first block of a stripe of data. A block attribute of a second block is determined. The block attribute of the second block indicates whether the second block includes written data or is a hole. A block attribute parity value is calculated based upon both the block attribute of the first block and the block attribute of the second block. The block attribute of the first block indicates the first block includes written data based upon the received request. The block attribute parity value and the data parity value are stored on one of the physical storage devices in response to the received write request. As a result, if a disk is lost, holes can be recovered using the block attribute parity value.
Abstract:
A deduplication storage system with snapshot and clone capability includes storing logical pointer objects and organizing a first set of the logical pointer objects into a hierarchical structure. A second set of the logical pointer objects may be associated with corresponding logical data blocks of a client data object. The second set of the logical pointer objects may point to physical data blocks having deduplicated data that comprise data of the corresponding logical data blocks. Some of the logical pointer objects in the first set may point to the logical pointer objects in the second set, so that the hierarchical structure represents the client data object. A root of the hierarchical structure may be associated with the client data object. A snapshot or clone may be created by making a copy of the root and associating the copied root with the snapshot or clone.