Patents by Inventor Johann George

Johann George has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 9626400
    Abstract: A computer system detects a request to access a first data object stored in a tiered data structure, that includes internal nodes and leaf nodes, where data objects in the leaf nodes include unique key information and corresponding values, and the first data object is uniquely identified by a first key. In response to detecting the request to access the first data object, the computer system retrieves a leaf node that includes the first data object and identifies the first data object in the leaf node by combining unique key information of the first data object with a key prefix that is stored separately in the leaf node to generate a combined key and determining that the combined key matches the first key that uniquely identifies the first data object. After identifying the first data object, the computer system provides access to the first data object.
    Type: Grant
    Filed: July 21, 2014
    Date of Patent: April 18, 2017
    Assignee: SANDISK TECHNOLOGIES LLC
    Inventors: Ramesh Chander, Johann George, Brian W. O'Krafka, Manavalan Krishnan
  • Patent number: 9612948
    Abstract: In the present disclosure, a persistent storage device includes both persistent storage, which includes a set of persistent storage blocks, and a storage controller. The persistent storage device stores and retrieves data in response to commands received from an external host device. The persistent storage device stores data, from a contiguous data block, to two or more sets of logical address blocks in persistent storage. The persistent storage device also retrieves data, corresponding to a contiguous data block, from two or more sets of logical address blocks in persistent. In both instances, the two or more sets of logical address blocks in persistent storage, in aggregate, are not contiguous.
    Type: Grant
    Filed: March 14, 2013
    Date of Patent: April 4, 2017
    Assignee: SANDISK TECHNOLOGIES LLC
    Inventors: Johann George, Aaron Olbrich
  • Patent number: 9501398
    Abstract: A persistent storage device includes both persistent storage, which includes a set of persistent storage blocks, and NVRAM, and in particular a set of NVRAM blocks. The persistent storage device also typically includes a storage controller. The persistent storage device, in addition to responding to commands to write data directly to and to read data directly from persistent storage blocks is also configured to write data to specified NVRAM blocks (e.g., specified by a host NVRAM write command) and to transfer data from a specified NVRAM block to a specified persistent storage block. As a result, multiple writes to a particular persistent storage block can be replaced with multiple writes to an NVRAM block and a subsequent single write to the particular persistent storage block. This reduces the number of writes to persistent storage and also reduces the number of corresponding block erase operations.
    Type: Grant
    Filed: March 14, 2013
    Date of Patent: November 22, 2016
    Assignee: SANDISK TECHNOLOGIES LLC
    Inventors: Johann George, Aaron Olbrich, Brian O'Krafka, Darpan Dinker, Patrick Chiu, Evgeny Firsov
  • Publication number: 20160306575
    Abstract: Content is lent, or temporarily transferred, without reproduction, by reading first data stored in a first non-volatile storage medium from the first non-volatile storage medium to a first volatile memory, and transmitting corresponding data from the first volatile memory to a second volatile memory. After the reading or transmitting, at least a portion of the first data is erased from the first non-volatile storage medium. The data and corresponding data are also erased from the first volatile memory and second volatile memory and are thus stored in volatile memory for a period of not more than transitory duration. The portion of the first data stored in the first non-volatile storage medium and the corresponding data stored in the second non-volatile storage medium are not concurrently stored. In some embodiments, the first data includes one or more respective keys, each key for decrypting a respective encrypted data chunk.
    Type: Application
    Filed: April 15, 2016
    Publication date: October 20, 2016
    Inventors: Johann George, Mark Vrieling, John Mitchell
  • Publication number: 20160306585
    Abstract: Content is transferred from a first non-volatile storage medium to a second non-volatile storage medium without reproduction. This is accomplished by reading first data stored in the first non-volatile storage medium from the first non-volatile storage medium to volatile memory, erasing the first data from the first non-volatile storage medium, and after erasing the first data from the first non-volatile storage medium, storing corresponding data in a second non-volatile storage medium. And after storing the corresponding data in the second non-volatile storage medium, the first data is erased from the volatile memory. The first data is not concurrently stored in the first non-volatile storage medium and the second non-volatile storage medium.
    Type: Application
    Filed: April 15, 2016
    Publication date: October 20, 2016
    Inventors: Johann George, Mark Vrieling, John Mitchell
  • Publication number: 20150286695
    Abstract: A memory controller detects a request, with a key to a data object and a value, to perform an operation. The memory controller locates the data object by mapping the key to a location of the data object in a tiered data structure and identifies a sequence number of the data object. When the sequence number of the data object is greater than a sequence number of a snapshot of the tiered data structure, the memory controller replaces the data object with a modified data object, including the key and the value, and assigns the modified object a unique sequence number. When the sequence number of the data object is less than the sequence number of the snapshot, the memory controller inserts a new data object, including the key and the value, into the tiered data structure and assigns the new data object the unique sequence number.
    Type: Application
    Filed: August 7, 2014
    Publication date: October 8, 2015
    Inventors: Harihara Kadayam, Niranjan Patre Neelakanta, Ajit Kumar Tapse, Manavalan Krishnan, Brian Walter O'Krafka, Johann George
  • Publication number: 20150281389
    Abstract: A memory controller receives request(s) to perform a plurality of memory operations on a datastore. The memory controller batches, into a set of leaf node operations, memory operations of the plurality of memory operations that are associated with keys in a range of keys, where a leaf node in a tiered data structure stored in the datastore is assigned the range of keys. The memory controller determines whether a condition is satisfied, and, in accordance with a determination that the condition is satisfied: locates the leaf node in the datastore; stores a copy of the leaf node in a cache; modifies the cached copy of the leaf node according to the set of leaf node operations so as to obtain one or more modified leaf nodes; and writes the one or more modified leaf nodes to one or more locations in the datastore with one or more write operations.
    Type: Application
    Filed: January 14, 2015
    Publication date: October 1, 2015
    Inventors: Evgeny H. Firsov, Harihara Kadayam, Brian W. O'Krafka, Johann George
  • Publication number: 20150278271
    Abstract: A computer system detects a request to access a first data object stored in a tiered data structure, that includes internal nodes and leaf nodes, where data objects in the leaf nodes include unique key information and corresponding values, and the first data object is uniquely identified by a first key. In response to detecting the request to access the first data object, the computer system retrieves a leaf node that includes the first data object and identifies the first data object in the leaf node by combining unique key information of the first data object with a key prefix that is stored separately in the leaf node to generate a combined key and determining that the combined key matches the first key that uniquely identifies the first data object. After identifying the first data object, the computer system provides access to the first data object.
    Type: Application
    Filed: July 21, 2014
    Publication date: October 1, 2015
    Inventors: Ramesh Chander, Johann George, Brian W. O'Krafka, Manavalan Krishnan
  • Publication number: 20150277794
    Abstract: In response to receiving a request to perform a transaction with two or more memory operations on one or more tiered data structures, the memory controller: writes a start transaction record to the log stream including a transaction identifier corresponding to the transaction; and performs the two or more memory operations. For a first memory operation associated with a key, the memory controller: writes a new data object in a datastore; assigns, in a key-map, a location of the new data object to the key; maintains an old data object in the datastore whose location was previously assigned to the key; and writes an operation commit record to a log stream upon completion of the first memory operation. In accordance with a determination that the two or more memory operations are complete, the memory controller writes a transaction commit record to the log stream including the transaction identifier.
    Type: Application
    Filed: January 14, 2015
    Publication date: October 1, 2015
    Inventors: Frederic H. Tudor, Harihara Kadayam, Brian W. O'Krafka, Johann George
  • Publication number: 20150142860
    Abstract: The embodiments described herein are methods and systems to enhance the reliability and performance of a persistent datastore (e.g., non-volatile memory such as flash memory). The method includes generating a log entry associated with first write data. The method also includes generating a first record including the log entry, the first write data, and pointer to a second record different from the first record. The method further includes performing a single write operation that includes writing the first record to the persistent datastore.
    Type: Application
    Filed: December 19, 2013
    Publication date: May 21, 2015
    Applicant: SanDisk Enterprise IP LLC
    Inventors: Johann George, Aaron Olbrich
  • Patent number: 8954385
    Abstract: Approaches for recovering a node of a distributed transactional system. When a recovering node is being brought on-line, a copy of at least a portion of a first data store maintained by an existing node is created without ceasing to process transactions against the first data store at the existing node. The recovering node creates a second data store based on the copy of the first data store. While the recovering node creates the second data store, the recovering node stores committed transaction data received from a plurality of nodes. The committed transaction data describes transactions committed against data stores maintained by the sender of the committed transaction data. The recovering node may thereafter replay, against the second data store, any transactions identified by the committed transaction data that are associated with a global transaction number that is more recent than is a reference commit number.
    Type: Grant
    Filed: June 28, 2011
    Date of Patent: February 10, 2015
    Assignee: SanDisk Enterprise IP LLC
    Inventors: Johann George, Darpan Dinker, Manavalan Krishnan, Brian W. O'Krafka
  • Patent number: 8811085
    Abstract: A NAND Flash based content addressable memory (CAM) is used for a key-value addressed storage drive. The device can use a standard transport protocol such as PCI-E, SAS, SATA, eMMC, SCSI, and so on. A host writes a key-value pair to the drive, where the drive writes the keys along bit lines of a CAM NAND portion of the drive and stores the value in the drive. The drive then maintains a table linking the keys to location of the value. In a read process, the host provides a key to drive, which then broadcasts down the word lines of blocks storing the keys. Based on any matching bit lines, the tables can then be used to retrieve and supply the corresponding data to the host. The system can be applied to perform a wide range of analytics on data sets loaded into the NAND array.
    Type: Grant
    Filed: January 31, 2013
    Date of Patent: August 19, 2014
    Assignee: SanDisk Technologies Inc.
    Inventors: Steven T. Sprouse, Yan Li, Johann George
  • Patent number: 8793531
    Abstract: Approaches for recovering nodes and adding new nodes to object stores maintained on one or more solid state devices. At a surviving node, in a cluster of nodes, replicating, to a recovering node in the cluster of nodes, all requests to modify data stored in a first data store thereon that are received by the surviving node. The surviving node performing a bulk copy operation to copy data, stored in the first data store, to a second data store maintained on the recovering node. The surviving node (a) replicates all requests to modify data received by the surviving node and (b) performs a bulk copy operation in parallel.
    Type: Grant
    Filed: April 11, 2011
    Date of Patent: July 29, 2014
    Assignee: Sandisk Enterprise IP LLC
    Inventors: Johann George, Brian W. O'Krafka
  • Publication number: 20140189264
    Abstract: In the present disclosure, a persistent storage device includes both persistent storage, which includes a set of persistent storage blocks, and a storage controller. The persistent storage device stores and retrieves data in response to commands received from an external host device. The persistent storage device stores data, from a contiguous data block, to two or more sets of logical address blocks in persistent storage. The persistent storage device also retrieves data, corresponding to a contiguous data block, from two or more sets of logical address blocks in persistent. In both instances, the two or more sets of logical address blocks in persistent storage, in aggregate, are not contiguous.
    Type: Application
    Filed: March 14, 2013
    Publication date: July 3, 2014
    Inventors: Johann George, Aaron Olbrich
  • Publication number: 20140189211
    Abstract: In the present disclosure, a persistent storage device includes both persistent storage, which includes a set of persistent storage blocks, and a storage controller. The persistent storage device stores and retrieves data in response to commands received from an external host device. The persistent storage device stores a logical block address to physical address mapping. The persistent storage device also, in response to a remapping command, stores an updated logical block address to physical block address mapping.
    Type: Application
    Filed: March 14, 2013
    Publication date: July 3, 2014
    Inventors: Johann George, Aaron Olbrich
  • Publication number: 20140181373
    Abstract: A persistent storage device includes both persistent storage, which includes a set of persistent storage blocks, and NVRAM, and in particular a set of NVRAM blocks. The persistent storage device also typically includes a storage controller. The persistent storage device, in addition to responding to commands to write data directly to and to read data directly from persistent storage blocks is also configured to write data to specified NVRAM blocks (e.g., specified by a host NVRAM write command) and to transfer data from a specified NVRAM block to a specified persistent storage block. As a result, multiple writes to a particular persistent storage block can be replaced with multiple writes to an NVRAM block and a subsequent single write to the particular persistent storage block. This reduces the number of writes to persistent storage and also reduces the number of corresponding block erase operations.
    Type: Application
    Filed: March 14, 2013
    Publication date: June 26, 2014
    Inventors: Johann George, Aaron Olbrich, Brian O'Krafka, Darpan Dinker, Patrick Chiu, Evgeny Firsov
  • Publication number: 20140133237
    Abstract: A NAND Flash based content addressable memory (CAM) is used for a key-value addressed storage drive. The device can use a standard transport protocol such as PCI-E, SAS, SATA, eMMC, SCSI, and so on. A host writes a key-value pair to the drive, where the drive writes the keys along bit lines of a CAM NAND portion of the drive and stores the value in the drive. The drive then maintains a table linking the keys to location of the value. In a read process, the host provides a key to drive, which then broadcasts down the word lines of blocks storing the keys. Based on any matching bit lines, the tables can then be used to retrieve and supply the corresponding data to the host. The system can be applied to perform a wide range of analytics on data sets loaded into the NAND array.
    Type: Application
    Filed: January 31, 2013
    Publication date: May 15, 2014
    Applicant: SanDisk Technologies Inc.
    Inventors: Steven T. Sprouse, Yan Li, Johann George
  • Patent number: 8694733
    Abstract: Approaches for replicating data in a distributed transactional system. At a first node of a cluster, a per-transaction write set, comprising a plurality of write operations, is committed against a first MySQL database. One or more per-transaction write sets are replicated from the first node to a second node. Upon receiving a read query, the second node parses the read query to identify a read set, calculates a write set conflict window for the read query, and upon determining that the read set conflicts with one or more write sets in the write set conflict window, waits to process the read query until all conflicting write sets are committed. However, upon determining that the read set does not conflict any write sets in the write set conflict window, the read query is processed without first committing any write transactions in the write set conflict window for the read query.
    Type: Grant
    Filed: February 17, 2012
    Date of Patent: April 8, 2014
    Assignee: Sandisk Enterprise IP LLC
    Inventors: Manavalan Krishnan, Darpan Dinker, Johann George
  • Patent number: 8666939
    Abstract: 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: Grant
    Filed: June 28, 2011
    Date of Patent: March 4, 2014
    Assignee: Sandisk Enterprise IP LLC
    Inventors: Brian W. O'Krafka, Darpan Dinker, Manavalan Krishnan, Johann George
  • Patent number: 8634248
    Abstract: A NAND Flash based content addressable memory (CAM) is used for a key-value addressed storage drive. The device can use a standard transport protocol such as PCI-E, SAS, SATA, eMMC, SCSI, and so on. A host writes a key-value pair to the drive, where the drive writes the keys along bit lines of a CAM NAND portion of the drive and stores the value in the drive. The drive then maintains a table linking the keys to location of the value. In a read process, the host provides a key to drive, which then broadcasts down the word lines of blocks storing the keys. Based on any matching bit lines, the tables can then be used to retrieve and supply the corresponding data to the host. The system can be applied to perform a wide range of analytics on data sets loaded into the NAND array.
    Type: Grant
    Filed: January 31, 2013
    Date of Patent: January 21, 2014
    Assignee: SanDisk Technologies Inc.
    Inventors: Steven T. Sprouse, Yan Li, Johann George