Patents Assigned to DSSD, Inc.
  • Patent number: 8464095
    Abstract: In general, embodiments of the invention relate to storing data by receiving a request to write data, in response the request, selecting a first RAID grid location in a RAID grid to write the data, determining a first physical address in persistent storage corresponding to the first RAID grid location, generating a first page comprising the data and first out-of-band (OOB), wherein the first OOB comprises a first grid geometry for the RAID grid, and a first stripe membership for the page within the RAID grid, and writing the first page to a first physical location in persistent storage corresponding to the first physical address.
    Type: Grant
    Filed: November 15, 2012
    Date of Patent: June 11, 2013
    Assignee: DSSD, Inc.
    Inventor: Jeffrey S. Bonwick
  • Patent number: 8448021
    Abstract: A method for storing data. The method including receiving a request to write data. In response the request, selecting, a RAID grid location in a RAID grid to write the data, writing the data to memory, updating a data structure to indicate that the RAID grid location is filled. The method further includes determining, using the data structure, whether a data grid in the RAID grid is filled, where the RAID grid location is in the data grid and based on a determination that the data grid is filled: calculating parity values for the RAID grid using the data, determining a physical address in persistent storage corresponding to the RAID grid location, writing the data to a physical location in persistent storage corresponding to the physical address, and writing the parity values to the persistent storage.
    Type: Grant
    Filed: October 23, 2012
    Date of Patent: May 21, 2013
    Assignee: DSSD, Inc.
    Inventor: Jeffrey S. Bonwick
  • Patent number: 8407377
    Abstract: 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.
    Type: Grant
    Filed: July 23, 2012
    Date of Patent: March 26, 2013
    Assignee: DSSD, Inc.
    Inventors: Michael W. Shapiro, Jeffrey S. Bonwick, William H. Moore
  • Patent number: 8392428
    Abstract: A method for writing data to persistent storage. The method include receiving a first write request including a key and a value, hashing the key to obtain a hashed key, obtaining a hash table depth (d), obtaining d bits from the hashed key, and making a first determination that a hash frag associated with the d bits from the hashed key exists. In response to the first determination, obtaining the hash frag, making a second determination that there is available space to store a hash frag entry in the hash frag, storing the hash frag entry in the hash frag to obtain an updated hash frag, where the hash frag entry includes the hashed key and value information for the value, and storing the updated hash frag in the persistent storage.
    Type: Grant
    Filed: September 12, 2012
    Date of Patent: March 5, 2013
    Assignee: DSSD, Inc.
    Inventors: Jeffrey S. Bonwick, Nils Nieuwejaar
  • Patent number: 8370567
    Abstract: A method for storing data, including receiving a request to write a first datum defined using a first object ID and a first offset ID to persistent storage. The method further including determining a first physical address in the persistent storage, where the first physical address comprises a first block ID and first sub block ID. The method further includes writing the first datum to the first physical address, generating a first table of contents entry (TE) comprising the first object ID, the first offset ID, and the first sub block ID, and writing the first TE to a second physical address in the persistent storage, where the second physical address comprises the first block ID and a second sub block ID corresponding to the second sub block ID, and where the second sub block is located within a first block corresponding to the first block ID.
    Type: Grant
    Filed: March 23, 2012
    Date of Patent: February 5, 2013
    Assignee: DSSD, Inc.
    Inventors: Jeffrey S. Bonwick, Michael W. Shapiro
  • Patent number: 8341342
    Abstract: A method for storing data including receiving a request to write data and in response the request, selecting a RAID grid location in a RAID grid to write the data. The method further includes writing the data to memory, updating a data structure to indicate that the RAID grid location is filled, identifying a parity value in the RAID grid to update, where the parity value is associated with a second RAID grid location in the RAID grid, updating the parity value using the data and the parity value to obtain an updated parity value and storing the updated parity value in the memory. Prior to the first data grid being filled determining a physical address in persistent storage corresponding to the RAID grid location and writing the data to the first physical address.
    Type: Grant
    Filed: March 23, 2012
    Date of Patent: December 25, 2012
    Assignee: DSSD, Inc.
    Inventors: Jeffrey S. Bonwick, William H. Moore
  • Patent number: 8327185
    Abstract: A method for storing data. The method including receiving a request to write data. In response the request, selecting, a grid location in a grid to write the data, writing the data to memory, updating a data structure to indicate that the grid location is filled. The method further includes determining, using the data structure, whether a data grid in the grid is filled, where the grid location is in the data grid and based on a determination that the data grid is filled: calculating parity values for the grid using the data, determining a physical address in persistent storage corresponding to the grid location, writing the data to a physical location in persistent storage corresponding to the physical address, and writing the parity values to the persistent storage.
    Type: Grant
    Filed: March 23, 2012
    Date of Patent: December 4, 2012
    Assignee: DSSD, Inc.
    Inventor: Jeffrey S. Bonwick
  • Patent number: 8316260
    Abstract: A method for storing data. The method including receiving a request to write data. In response the request, selecting, a RAID grid location in a RAID grid to write the data, writing the data to memory, updating a data structure to indicate that the RAID grid location is filled. The method further includes determining, using the data structure, whether a data grid in the RAID grid is filled, where the RAID grid location is in the data grid and based on a determination that the data grid is filled: calculating parity values for the RAID grid using the data, determining a physical address in persistent storage corresponding to the RAID grid location, writing the data to a physical location in persistent storage corresponding to the physical address, and writing the parity values to the persistent storage.
    Type: Grant
    Filed: July 23, 2012
    Date of Patent: November 20, 2012
    Assignee: DSSD, Inc.
    Inventor: Jeffrey S. Bonwick
  • Patent number: 8301832
    Abstract: A method for writing data to persistent storage. The method includes receiving a first request to write a first datum to persistent storage including NAND dies, identifying a first NAND die in which to write a first copy of the first datum and a second NAND die in which to write a second copy, generating a second request to write the first copy of the first datum to the first NAND die and a third request to write the second copy to the second NAND die, and waiting until the first NAND die and second NAND die not are busy. Based on a determination that the first NAND die and the second NAND die are not busy: issuing the second request to the first NAND die, and issuing the third request to the second NAND die after the second request is complete.
    Type: Grant
    Filed: March 23, 2012
    Date of Patent: October 30, 2012
    Assignee: DSSD, Inc.
    Inventors: William H. Moore, Jeffrey S. Bonwick