Patents Assigned to Sandisk Enterprise IP LLC
-
Patent number: 8677055Abstract: Approaches for performing a write operation on a solid state device (SSD). One or more containers are maintained on the solid state device. Each container is a logical grouping of objects independent from where the logical grouping of objects are physically stored on the solid state device. When a write operation is received at the SSD, the manner is which changes requested by the write operation should be stored are determined based on which container is being written. Containers provide a flexible approach for specifying attributes of how data should be stored and accessed which is independent from where the data is physically stored. Containers also have particular utility in performing load balancing and ensuring high availability and recovery.Type: GrantFiled: January 3, 2011Date of Patent: March 18, 2014Assignee: Sandisk Enterprises IP LLCInventors: Darryl Ouye, Darpan Dinker, John Busch
-
Patent number: 8667212Abstract: A data processing system includes one or more nodes, each node including a memory sub-system. The sub-system includes a fine-grained, memory, and a less-fine-grained (e.g., page-based) memory. The fine-grained memory optionally serves as a cache and/or as a write buffer for the page-based memory. Software executing on the system uses a node address space which enables access to the page-based memories of all nodes. Each node optionally provides ACID memory properties for at least a portion of the space. In at least a portion of the space, memory elements are mapped to locations in the page-based memory. In various embodiments, some of the elements are compressed, the compressed elements are packed into pages, the pages are written into available locations in the page-based memory, and a map maintains an association between the some of the elements and the locations.Type: GrantFiled: August 13, 2012Date of Patent: March 4, 2014Assignee: Sandisk Enterprise IP LLCInventors: Thomas M. McWilliams, Earl T. Cohen, James M. Bodwin, Ulrich Bruening
-
Patent number: 8667001Abstract: A distributed database system has multiple compute nodes each running an instance of a database management system (DBMS) program that accesses database records in a local buffer cache. Records are persistently stored in distributed flash memory on multiple storage nodes. A Sharing Data Fabric (SDF) is a middleware layer between the DBMS programs and the storage nodes and has API functions called by the DBMS programs when a requested record is not present in the local buffer cache. The SDF fetches the requested record from flash memory and loads a copy into the local buffer cache. The SDF has threads on a home storage node that locate database records using a node map. A global cache directory locks and pins records to local buffer caches for updating by a node's DBMS program. DBMS operations are grouped into transactions that are committed or aborted together as a unit.Type: GrantFiled: June 20, 2012Date of Patent: March 4, 2014Assignee: Sandisk Enterprise IP LLCInventors: Darpan Dinker, Andrew David Eckhardt, Darryl Manabu Ouye, Brian Walter O'Krafka, Earl T. Cohen, Thomas M. McWilliams
-
Patent number: 8666939Abstract: Approaches for replicating data in a distributed transactional system. At a first node of a cluster, a per-transaction write set that comprises a plurality of write operations that are performed against a first data store maintained by the first node is committed. The per-transaction write set is replicated from the first node to a second node of the cluster. At the second node, the plurality of write operations, specified by the per-transaction write set, may be performed in parallel against a second data store maintained by the second node. At the second node, two or more threads may perform a portion of the plurality of write operations against data blocks stored within an in-memory buffer.Type: GrantFiled: June 28, 2011Date of Patent: March 4, 2014Assignee: Sandisk Enterprise IP LLCInventors: Brian W. O'Krafka, Darpan Dinker, Manavalan Krishnan, Johann George
-
Patent number: 8621137Abstract: A method of rebuilding metadata in a flash memory controller following a loss of power. The method includes reading logical address information associated with an area of flash memory, and using time stamp information to determine if data stored in the flash memory area is valid.Type: GrantFiled: April 8, 2008Date of Patent: December 31, 2013Assignee: Sandisk Enterprise IP LLCInventors: Aaron K. Olbrich, Douglas A. Prins
-
Patent number: 8621155Abstract: Approaches for an object store implemented, at least in part, on one or more solid state devices. The object store may store objects on a plurality of solid state devices. The object store may include a transaction model means for ensuring that the object store performs transactions in compliance with atomicity, concurrency, isolation, and durability (ACID) properties. The object store may include means for providing parallel flushing in a write cache maintained on each of the solid state devices. The object store may include means for maintaining one or more double-write buffers, for the object store, at a location other than the solid state devices. The object store may optionally comprise means for maintaining one or more circular transaction logs, for the object store, at a location other than the solid state devices. The object store may operate to minimize write operations performed on the solid state devices.Type: GrantFiled: January 3, 2011Date of Patent: December 31, 2013Assignee: Sandisk Enterprise IP LLCInventors: John Busch, Darpan Dinker, Darryl Ouye
-
Patent number: 8621138Abstract: In a storage controller connected to a flash memory module, an execute loop used to carry out tasks related to reading or writing data from the module. The loop includes reading a data structure from a queue and carrying out a task specified by the data structure, unless resources required by the task are not available, in which event the loop moves on to another data structure stored in another queue. Data structures bypassed by the loop are periodically revisited, until all tasks required are completed. Data structures store state information that is updated when tasks are completed.Type: GrantFiled: April 8, 2008Date of Patent: December 31, 2013Assignee: Sandisk Enterprise IP LLCInventors: Aaron K. Olbrich, Douglas A. Prins
-
Publication number: 20130339581Abstract: A storage controller is provided that contains multiple processors. In some embodiments, the storage controller is coupled to a flash memory module having multiple flash memory groups, each flash memory group corresponding to a distinct flash port in the storage controller, each flash port comprising an associated processor. Each processor handles a portion of one or more host commands, including reads and writes, allowing multiple parallel pipelines to handle one or more host commands simultaneously.Type: ApplicationFiled: May 3, 2013Publication date: December 19, 2013Applicant: SanDisk Enterprise IP LLCInventor: SanDisk Enterprise IP LLC
-
Publication number: 20130339582Abstract: A storage controller is provided that contains multiple processors. In some embodiments, the storage controller is coupled to a flash memory module having multiple flash memory groups, each flash memory group corresponding to a distinct flash port in the storage controller, each flash port comprising an associated processor. Each processor handles a portion of one or more host commands, including reads and writes, allowing multiple parallel pipelines to handle one or more host commands simultaneously.Type: ApplicationFiled: May 10, 2013Publication date: December 19, 2013Applicant: SanDisk Enterprise IP LLCInventors: Aaron K. Olbrich, Douglas A. Prins
-
Publication number: 20130262753Abstract: A storage controller has multiple processors, divided into groups, each of which handles a different stage of a pipelined process of performing host reads and writes. In some embodiments, the storage controller operates with a flash memory module, and includes a first processor group, a second processor group and a third processor group, each having one or more processors for handling a different stage of a pipelined execution of host storage commands. With respect to a first host command, a first processor of the first processor group, a first processor of the second processor group, and a first processor of the third processor group comprise a first pipeline, and with respect to a second host command, a second processor of the first processor group, a second processor of the second processor group, and a second processor of the third processor group comprise a second pipeline.Type: ApplicationFiled: May 14, 2013Publication date: October 3, 2013Applicant: SanDisk Enterprise IP LLCInventors: Douglas A. Prins, Aaron K. Olbrich
-
Patent number: 8533384Abstract: A flash memory controller connected to multiple flash memory groups performs independent garbage collection operations in each group. For each group, the controller independently determines the amount of free space and performs garbage collection operations if the amount falls below a threshold.Type: GrantFiled: April 8, 2008Date of Patent: September 10, 2013Assignee: Sandisk Enterprise IP LLCInventors: Aaron K. Olbrich, Douglas A. Prins
-
Patent number: 8484534Abstract: In a multiple level cell flash memory data storage device, a flash memory array has a plurality of blocks, where each block is an erase unit and has a plurality of pages, and a respective block includes a plurality of groups of pages. Each group of pages in the respective block includes an assigned parity page, and each page of the respective block has a plurality of sectors, including an assigned parity sector. The storage device is operable to program and erase data on a page at a predetermined speed, and detect an error rate for each page of a block and identify a group of high error pages based on the error rates. Further, the storage device is configured to apply a speed slower than the predetermined speed in programming and erasing data on the identified high error pages.Type: GrantFiled: June 27, 2012Date of Patent: July 9, 2013Assignee: Sandisk Enterprise IP LLC.Inventors: Aaron K. Olbrich, Doug Prins
-
Patent number: 8484533Abstract: A two-dimensional self-RAID method of protecting page-based storage data in a MLC multiple-level-cell flash memory device. The protection scheme includes reserving one parity sector across each data page, reserving one parity page as the column parity, selecting a specific number of pages to form a parity group, writing into the parity page a group parity value for data stored in the pages of the parity group. The parity sector represents applying a RAID technique in a first dimension. The group parity represents applying a RAID technique in a second dimension. Data protection is achieved because a corrupted data sector can likely be recovered by the two dimensional RAID data.Type: GrantFiled: June 27, 2012Date of Patent: July 9, 2013Assignee: Sandisk Enterprise IP LLCInventors: Aaron K. Olbrich, Doug Prins
-
Patent number: 8473814Abstract: A two-dimensional self-RAID method of protecting page-based storage data in a MLC multiple-level-cell flash memory device. The protection scheme includes reserving one parity sector across each data page, reserving one parity page as the column parity, selecting a specific number of pages to form a parity group, writing into the parity page a group parity value for data stored in the pages of the parity group. The parity sector represents applying a RAID technique in a first dimension. The group parity represents applying a RAID technique in a second dimension. Data protection is achieved because a corrupted data sector can likely be recovered by the two dimensional RAID data.Type: GrantFiled: June 27, 2012Date of Patent: June 25, 2013Assignee: SanDisk Enterprise IP LLCInventors: Aaron K. Olbrich, Doug Prins
-
Patent number: 8386700Abstract: A flash memory controller connected to multiple flash memory groups performs independent garbage collection operations in each group. For each group, the controller independently determines the amount of free space and performs garbage collection operations if the amount falls below a threshold.Type: GrantFiled: November 29, 2011Date of Patent: February 26, 2013Assignee: Sandisk Enterprise IP LLCInventors: Aaron K. Olbrich, Douglas A. Prins
-
Patent number: 8365041Abstract: A two-dimensional self-RAID method of protecting page-based storage data in a MLC multiple-level-cell flash memory device. The protection scheme includes reserving one parity sector across each data page, reserving one parity page as the column parity, selecting a specific number of pages to form a parity group, writing into the parity page a group parity value for data stored in the pages of the parity group. The parity sector represents applying a RAID technique in a first dimension. The group parity represents applying a RAID technique in a second dimension. Data protection is achieved because a corrupted data sector can likely be recovered by the two dimensional RAID data.Type: GrantFiled: March 17, 2010Date of Patent: January 29, 2013Assignee: Sandisk Enterprise IP LLCInventors: Aaron K. Olbrich, Doug Prins
-
Patent number: 8245101Abstract: A patrol function performed in a storage controller connected to a flash memory storage module. The function causes selected areas of the flash storage to be read for purposes of detecting and correcting errors.Type: GrantFiled: April 8, 2008Date of Patent: August 14, 2012Assignee: Sandisk Enterprise IP LLCInventors: Aaron K. Olbrich, Douglas A. Prins