Abstract:
A request is received to remove duplicate data. A log data container associated with a storage volume in a storage server is accessed. The log data container includes a plurality of entries. Each entry is identified by an extent identifier in a data structures stored in a volume associated with the storage server. For each entry in the log data container, a determination is made if the entry matches another entry in the log data container. If the entry matches another entry in the log data container, a determination is made of a donor extent and a recipient extent. If an external reference count associated with the recipient extent equals a first predetermined value, block sharing is performed for the donor extent and the recipient extent. A determination is made if the reference count of the donor extent equals a second predetermined value. If the reference count of the donor extent equals the second predetermined value, the donor extent is freed.
Abstract:
Techniques are provided for implementing a persistent memory storage tier to manage persistent memory of a node. The persistent memory is managed by the persistent memory storage tier at a higher level within a storage operating system storage stack than a level at which a storage file system of the node is managed. The persistent memory storage tier intercepts an operation targeting the storage file system. The persistent memory storage tier retargets the operation from targeting the storage file system to targeting the persistent memory. The operation is transmitted to the persistent memory.
Abstract:
Systems, methods, and computer program products implementing hybrid file structures for data storage are provided. One embodiment of a method performed in a computer-based storage system includes writing a file as data blocks in an array of storage devices. The method includes associating the data blocks with metadata related to at least one location in the array of storage devices for later access to the data blocks. The file is represented as a hierarchical data structure having a plurality of nodes. A first portion of nodes has a first span type, and a second portion of nodes has a second span type. The data structure includes a buftree. The first span type includes a fixed-span type. The second span type includes a variable-span type.
Abstract:
A modular block allocator includes a front end module and a back end module communicating with each another via an application programming interface (API). The front end module receives cleaner messages requesting dirty buffers associated with the cleaner messages be cleaned. The back end module provides low and high level data structures which are formed by examining bitmaps associated with data storage devices. A stripe set data structure mapping to the low level data structures are formed. The front end module cleans the dirty buffers by allocating data blocks in the high level data structures to the dirty buffers. The low level data structures are used to map the allocated data blocks to the stripe set and when the stripe set is full it is sent to the data storage devices.
Abstract:
Systems and methods which provide an absent allocation technique with respect to absent data of a data structure for which data migration in a time-displaced data migration operation has not completed are disclosed. Through use of absent allocated data block states of an absent allocation technique of embodiments, dependency between source and destination data stores may be broken. An absent allocated data block state of embodiments stored within the data structure provides a suggestive indication that data of a data block of a data structure is absent from the data structure. A corresponding absent allocated data block state of embodiments stored external to the data structure provides a determinative indication that the data of the data block of the data structure is absent from the data structure. The absent data block determinative indictor of embodiments is updated as data continues to be migrated.
Abstract:
A request is received to remove duplicate data. A log data container associated with a storage volume in a storage server is accessed. The log data container includes a plurality of entries. Each entry is identified by an extent identifier in a data structures stored in a volume associated with the storage server. For each entry in the log data container, a determination is made if the entry matches another entry in the log data container. If the entry matches another entry in the log data container, a determination is made of a donor extent and a recipient extent. If an external reference count associated with the recipient extent equals a first predetermined value, block sharing is performed for the donor extent and the recipient extent. A determination is made if the reference count of the donor extent equals a second predetermined value. If the reference count of the donor extent equals the second predetermined value, the donor extent is freed.