Patent application number | Description | Published |
20090276596 | RETENTION OF ACTIVE DATA STORED IN MEMORY USING MULTIPLE INDEXING SYSTEMS FOR DATA STORAGE - A method and apparatus for retention of active data stored in memory using multiple indexing systems for data storage. An embodiment of a method for retention of active data in a storage server includes reading data into a first location of a main memory of the storage server. The data in the first location indexes data elements in a long-term data storage in a first manner. The method further provides for copying the data from the first location into a second location in the main memory of the storage server, where the data in the second location indexing the data elements in the long-term data storage in a second manner. | 11-05-2009 |
20100088296 | SYSTEM AND METHOD FOR ORGANIZING DATA TO FACILITATE DATA DEDUPLICATION - A technique for organizing data to facilitate data deduplication includes dividing a block-based set of data into multiple “chunks”, where the chunk boundaries are independent of the block boundaries (due to the hashing algorithm). Metadata of the data set, such as block pointers for locating the data, are stored in a tree structure that includes multiple levels, each of which includes at least one node. The lowest level of the tree includes multiple nodes that each contain chunk metadata relating to the chunks of the data set. In each node of the lowest level of the buffer tree, the chunk metadata contained therein identifies at least one of the chunks. The chunks (user-level data) are stored in one or more system files that are separate from the buffer tree and not visible to the user. | 04-08-2010 |
20100174879 | ESTIMATING SPACE IN A COMPRESSED VOLUME - A method and system for estimating space in a compressed volume to enable a storage server to respond to write requests before actually compressing and/or allocating data on disk. In some embodiments, in response to receiving a request to store data, the storage server estimates the amount of storage space required to store the data on disk. The storage server compares the estimated amount with the amount of available disk space. When the amount of available disk space is less than the estimated space, the storage server sends a response indicating that the request failed. Otherwise, when the amount of available disk space is greater than or equal to the estimate space, the storage server sends a response indicating that the request succeeded. The response is sent before the storage server allocates any disk space in connection with the request. | 07-08-2010 |
20100274773 | NEARSTORE COMPRESSION OF DATA IN A STORAGE SYSTEM - A storage server is configured to receive a request to store a data block from a client. The request to store the data block is serviced by the storage server by compressing the data block into a compression group which includes a number of compressed data blocks. The storage server stores the compression group in a non-volatile memory and flushes the compression group from the non-volatile memory to a physical storage device in response to reaching a consistency point. By compressing data to be stored in system memory of a storage servers the amount of data that can be processed during a given time period by a data storage system is increased. Furthermore, an increase in performance can be achieved at a lower cost, since the cost of additional physical system memory modules can be avoided, | 10-28-2010 |
20120278382 | EXTENT-BASED STORAGE ARCHITECTURE - An extent-based storage architecture is implemented by a storage server receiving a read request for an extent from a client, wherein the extent includes a group of contiguous blocks and the read request includes a file block number. The storage server retrieves an extent identifier from a first sorted data structure, wherein the storage server uses the received file block number to traverse the first sorted data structure to the extent identifier. The storage server retrieves a reference to the extent from a second sorted data structure, wherein the storage server uses the retrieved extent identifier to traverse the second sorted data structure to the reference, and wherein the second sorted data structure is global across a plurality of volumes. The storage server retrieves the extent from a storage device using the reference and returns the extent to the client. | 11-01-2012 |
20120330903 | DEDUPLICATION IN AN EXTENT-BASED ARCHITECTURE - 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. | 12-27-2012 |
20130067175 | METHOD AND SYSTEM FOR USING COMPRESSION IN PARTIAL CLONING - Method and system for partially cloning a data container with compression is provided. A storage operating system determines if a portion of a source data container that is to be cloned includes a plurality of compressed blocks that are compressed using a non-variable compression group size. The operating system clones the plurality compressed blocks with the non-variable compression group size and de-compresses a plurality of blocks of the data container that are not within the non-variable compression group size. The plurality of compressed blocks and the plurality of blocks that are not within the non-variable compression group size are then stored as a partially cloned copy of the source data container. | 03-14-2013 |
20140081929 | NEARSTONE COMPRESSION OF DATA IN A STORAGE SYSTEM - A storage server is configured to receive a request to store a data block from a client. The request to store the data block is serviced by the storage server by compressing the data block into a compression group, which includes a number of compressed data blocks. The storage server stores the compression group in a non-volatile memory and flushes the compression group from the non-volatile memory to a physical storage device in response to reaching a consistency point. By compressing data to be stored in system memory of a storage server, the amount of data that can be processed during a given time period by a data storage system is increased. Furthermore, an increase in performance can be achieved at a lower cost, since the cost of additional physical system memory modules can be avoided. | 03-20-2014 |
20140172928 | EXTENT-BASED STORAGE ARCHITECTURE - An extent-based storage architecture is implemented by a storage server receiving a read request for an extent from a client, wherein the extent includes a group of contiguous blocks and the read request includes a file block number. The storage server retrieves an extent identifier from a first sorted data structure, wherein the storage server uses the received file block number to traverse the first sorted data structure to the extent identifier. The storage server retrieves a reference to the extent from a second sorted data structure, wherein the storage server uses the retrieved extent identifier to traverse the second sorted data structure to the reference, and wherein the second sorted data structure is global across a plurality of volumes. The storage server retrieves the extent from a storage device using the reference and returns the extent to the client. | 06-19-2014 |
20140201168 | DEDUPLICATION IN AN EXTENT-BASED ARCHITECTURE - 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. | 07-17-2014 |
20140258648 | OVERWRITING PART OF COMPRESSED DATA WITHOUT DECOMPRESSING ON-DISK COMPRESSED DATA - Overwriting part of compressed data without decompressing on-disk compressed data is includes by receiving a write request for a block of data in a compression group from a client, wherein the compression group comprises a group of data blocks that is compressed, wherein the block of data is uncompressed. The storage server partially overwrites the compression group, wherein the compression group remains compressed while the partial overwriting is performed. The storage server determines whether the partially overwritten compression group including the uncompressed block of data should be compressed. The storage server defers compression of the partially overwritten compression group if the partially overwritten compression group should not be compressed. The storage server compresses the partially overwritten compression group if the partially overwritten compression group should be compressed. | 09-11-2014 |
20150039818 | USE OF PREDEFINED BLOCK POINTERS TO REDUCE DUPLICATE STORAGE OF CERTAIN DATA IN A STORAGE SUBSYSTEM OF A STORAGE SERVER - A method and system for eliminating the redundant allocation and deallocation of special data on disk, wherein the redundant allocation and deallocation of special data on disk is eliminated by providing an innovate technique for specially allocating special data of a storage system. Specially allocated data is data that is pre-allocated on disk and stored in memory of the storage system. “Special data” may include any pre-decided data, one or more portions of data that exceed a pre-defined sharing threshold, and/or one or more portions of data that have been identified by a user as special. For example, in some embodiments, a zero-filled data block is specially allocated by a storage system. As another example, in some embodiments, a data block whose contents correspond to a particular type document header is specially allocated. | 02-05-2015 |