Patent application number | Description | Published |
20160092304 | METHOD AND SYSTEM FOR IMPROVING FLASH STORAGE UTILIZATION BY PREDICTING BAD M-PAGES - A method for managing persistent storage. The method includes selecting a page for a proactive read request, where the page is located in the persistent storage. The method further includes issuing the proactive read request to the page, receiving, in response to the proactive read request, a bit error value (BEV) for data stored on the page, obtaining a BEV threshold (T) for the page, wherein T is determined using a program/erase cycle value associated with the page and a retention time of the data stored on the page, making a first determination that the BEV is greater than T, based on the first determination: identifying an m-page, where the m-page is a set of pages and the page is in the set of pages, and setting the m-page as non-allocatable for future operations. | 03-31-2016 |
20160093397 | METHOD AND SYSTEM FOR IMPROVING FLASH STORAGE UTILIZATION USING READ-THRESHOLD TABLES - A method for reading data from persistent storage. The method includes receiving a client read request that includes a logical address for data from a client, determining a physical address using the logical address where the physical address includes a page number for a physical page in the persistent storage, determining a retention time for the data, determining a program/erase (P/E) cycle value associated with the physical page, obtaining at least one read threshold value using the P/E cycle value, the retention time, and the page number, issuing a control module read request including the at least one read threshold value to a storage module that includes the physical page, and obtaining the data from the physical page using the at least one read threshold value. | 03-31-2016 |
Patent application number | Description | Published |
20090313532 | METHOD AND SYSTEM FOR DATA REPLICATION - A method for writing data to a storage pool includes receiving a write operation to write a logical block of data to the storage pool, determining a number (n−1) of physical blocks required to store the logical block of data, generating a parity block using the logical block of data, allocating n physical blocks in the storage pool, writing the parity block in the first of n allocated physical block, and writing the logical block of data across the remaining n−1 allocated physical blocks, where n is less than a number of disks in the storage pool, and where each of the n allocated physical blocks is located on a different disk in the storage pool. | 12-17-2009 |
20100145919 | METHOD AND SYSTEM FOR PRUNED RESILVERING USING A DIRTY TIME LOG - A computer readable medium includes executable instructions for resilvering a hierarchical block tree in a storage pool by traversing a branch of the hierarchical block tree only if a birth time of a parent block of the branch is greater than or equal to a lowest birth time on a dirty time log (DTL), and resilvering a child block in the branch only if the DTL comprises a birth time of the child block. | 06-10-2010 |
20110283113 | METHOD AND SYSTEM FOR ENCRYPTING DATA - A processing device may generate a data encryption key configured to encrypt unique data within a clone of an encrypted data set and associated with a set of transaction identifiers of a transaction based file system. The processing device may further wrap the data encryption key with a wrapping key, create a cloned encrypted data set with the data encryption key, and store the wrapped data encryption key with the cloned encrypted data set indexed by at least one of the set of transaction identifiers. | 11-17-2011 |
20110320649 | WRITE AGGREGATION USING OPTIONAL I/O REQUESTS - A computer readable storage medium comprising software instructions, which when executed by a processor, perform a method, the method including obtaining a first non-optional Input/Output (I/O) request from an I/O queue, determining that a second non-optional I/O request and an optional I/O request are adjacent to the first non-optional I/O request, generating a new data payload using a first data payload from the first non-optional I/O request, a second data payload for the second non-optional I/O request, and a third data payload corresponding to the optional I/O request, wherein the third data payload is interposed between the first data payload and the second data payload, generating a new non-optional I/O request comprising the new data payload, and issuing the new non-optional I/O request to a storage pool, wherein the new data payload is written to a contiguous storage location in the storage pool. | 12-29-2011 |
20130254435 | STORAGE SYSTEM WITH MULTICAST DMA AND UNIFIED ADDRESS SPACE - A system and method for clients, a control module, and storage modules to participate in a unified address space in order to and read and write data efficiently using direct-memory access. The method for reading data includes determining a first location in a first memory to write a first copy of the data, a second location in a second memory to write a second copy of the data, where the first memory is located in a first storage module including a first persistent storage and the second memory is located in a second storage module including a second persistent storage. The method further includes programming a direct memory access engine to read the data from client memory and issue a first write request to a multicast address, where the first location, the second location, and a third location are associated with the multicast address. | 09-26-2013 |
20140032697 | STORAGE SYSTEM WITH MULTICAST DMA AND UNIFIED ADDRESS SPACE - A system and method for clients, a control module, and storage modules to participate in a unifed address space in order to and read and write data efficiently using direct-memory access. The method for reading data includes determining a first location in a first memory to write a first copy of the data, a second location in a second memory to write a second copy of the data, where the first memory is located in a first storage module including a first persistent storage and the second memory is located in a second storage module including a second persistent storage. The method further includes programming a direct memory access engine to read the data from the client memory and issue a first write request to a multicast address, where the first location, the second location, and a third location are associated with the multicast address. | 01-30-2014 |
20150205667 | METHOD AND SYSTEM FOR SERVICE-AWARE DATA PLACEMENT IN A STORAGE SYSTEM - A method and system for service-aware data placement. The method includes receiving a service notification specifying a target SD and, after receiving the service notification, receiving a request to write data, writing a RAID stripe that includes data blocks and a parity block, where the parity block is not stored on the target SD and none of the data blocks is stored on the target SD. The method further includes performing a modified garbage collection operation that includes identifying a live RAID stripe with includes N data blocks, writing a new RAID stripe that includes N−1 data blocks and a second parity block, where the second parity block and none of the N−1 data blocks is stored on the target SD, and issuing a removal notification that indicates that the target SD may be removed. | 07-23-2015 |
20150205670 | METHOD AND SYSTEM FOR SERVICE-AWARE PARITY PLACEMENT IN A STORAGE SYSTEM - A method and system for service-aware parity placement in a storage system, including after receiving the service notification specifying a target SD: writing a RAID stripe to the persistent storage, where the parity block of the RAID stripe is stored on the target SD and none of the data blocks in the RAID stripe are stored on the target SD. The method further includes performing a modified garbage collection operation that includes identifying a live RAID stripe in the persistent storage, writing a new RAID stripe to a new location in the persistent storage, where the new RAID stripe includes a copy of at least a portion of data from the live RAID stripe and a parity block in the new RAID stripe is stored on the target SD, and issuing a removal notification when the modified garbage collection operation is completed. | 07-23-2015 |
20160062882 | METHOD AND SYSTEM FOR GARBAGE COLLECTION IN A STORAGE SYSTEM BASED ON LONGEVITY OF STORED DATA - A method for managing data. The method includes receiving a first request to write data to persistent storage and in response to the first request, writing the data to a short-lived block in the persistent storage, where the data is short-lived data or data of unknown longevity. The method further includes performing a modified garbage collection operation that includes: selecting a first frag page in a first block, determining that the first frag page is live, and migrating, based on the determination that the first frag page is live, the first frag page to a long-lived block in the persistent storage, where the long-lived block is distinct from the short-lived block and wherein the long-lived block does not include any short-lived data. | 03-03-2016 |