Abstract:
Methods and apparatus for determining if a value is stored in a hash table is provided. The method includes breaking the value into address bits, prefix bits, and signature bits. The method includes determining a container in a compressed index at an address specified by the address bits, the container comprised of a prefix table with bits set corresponding to the prefix bits determined by aggregate values associated with the container and a signature table containing the signature bits determined by the aggregate values associated with the container. The method includes determining a result based on a function of the prefix and signature tables and the determined prefix and signature bits.
Abstract:
A data block may be received. Hash values correspond to portions of the data block may be generated. A determination that none of the plurality of hash values matches with another hash value associated with a previously received data block may be made. In response to determining that none of the plurality of hash values match with the other hash value associated with the previously received data block, a subset of the plurality of hash values may be stored based on a first alignment and a second alignment.
Abstract:
A system and method for effectively scheduling read and write operations among a plurality of solid-state storage devices. A computer system comprises client computers and data storage arrays coupled to one another via a network. A data storage array utilizes solid-state drives and Flash memory cells for data storage. A storage controller within a data storage array comprises an I/O scheduler. The characteristics of corresponding storage devices are used to schedule I/O requests to the storage devices in order to maintain relatively consistent response times at predicted times. Should a device exhibit an unscheduled behavior which may be indicative of the device being in an unknown state, the scheduler may schedule one or more reactive operations on the device configured to cause the device to enter a known state.
Abstract:
The method generates a first deduplication map (DDM) level of a DDM pyramid. The DDM pyramid identifies locations of data stored in the persistent storage resource of the deduplication system. The method further determines a first false positive rate target for a first index summary (IS) level of an index pyramid based on a memory footprint for the first IS level and an aggregate false positive rate target for the index pyramid. The first IS level accelerates lookup into the first DDM level. The first false positive rate target indicates a rate that a hit for a value found in the first IS level is not found in the first DDM level. The method also generates the first IS level with a first false positive rate based on the determined first false positive rate target.
Abstract:
A system and method for efficiently storing data in a storage system. A data storage subsystem includes multiple data storage locations on multiple storage devices in addition to at least one mapping table. A data storage controller determines whether data to store in the storage subsystem has one or more patterns of data intermingled with non-pattern data within an allocated block. Rather than store the one or more pattern on the storage devices, the controller stores information in a header on the storage devices. The information includes at least an offset for the first instance of a pattern, a pattern length, and an identification of the pattern. The data may be reconstructed for a corresponding read request from the information stored in the header.
Abstract:
A system and method for effectively scheduling read and write operations among a plurality of solid-state storage devices. A computer system comprises client computers and data storage arrays coupled to one another via a network. A data storage array utilizes solid-state drives and Flash memory cells for data storage. A storage controller within a data storage array comprises an I/O scheduler. The characteristics of corresponding storage devices are used to schedule I/O requests to the storage devices in order to maintain relatively consistent response times at predicted times. Should a device exhibit an unscheduled behavior which may be indicative of the device being in an unknown state, the scheduler may schedule one or more reactive operations on the device configured to cause the device to enter a known state.
Abstract:
A system and method for effectively scheduling read and write operations among a plurality of solid-state storage devices. A computer system comprises client computers and data storage arrays coupled to one another via a network. A data storage array utilizes solid-state drives and Flash memory cells for data storage. A storage controller within a data storage array comprises an I/O scheduler. The storage controller is configured to receive a read request targeted to the data storage medium, and identify at least a first storage device of the plurality of storage devices which contains data targeted by the read request. In response to either detecting or predicting the first storage device will exhibit variable performance, the controller is configured to generate a reconstruct read request configured to obtain the data from one or more devices of the plurality of storage devices other than the first storage device.
Abstract:
A system and method for performing garbage collection. A system includes a storage medium, a first table including entries which map a virtual address to locations in the storage medium, and a second table with entries which include a reverse mapping of a physical address in a data storage medium to one or more virtual addresses. A storage controller is configured to perform garbage collection. During garbage collection, the controller is configured to identify one or more entries in the second table which correspond to a segment to be garbage collected. In response to determining the first table includes a valid mapping for a virtual address included in an entry of the one of the one or more entries, the controller is configured to copy data from a first location identified in the entry to a second location in the data storage medium, and reclaim the first storage location.