Patents Assigned to DSSD, Inc.
-
Patent number: 9460039Abstract: A PCIe Fabric that includes an IO tier switch, hub tier switches, and a target device connected to one of the hub tier switches. The IO tier switch is configured to receive a TLP from a client, make a determination that an address in the TLP is not associated with any multicast address range in the first IO tier switch and is not associated with any downstream port in the first IO tier switch, and, based on the determinations, route the TLP to the first hub tier switch via a upstream port on the IO tier switch. The hub tier switch is configured to make a determination that the TLP is associated with a multicast group, and, based on the determination, generate a rewritten TLP and route the rewritten TLP to a target device via a downstream port on the hub tier switch.Type: GrantFiled: March 5, 2015Date of Patent: October 4, 2016Assignee: DSSD, Inc.Inventor: Jeffrey Benjamin Davis
-
Patent number: 9367396Abstract: 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.Type: GrantFiled: December 19, 2014Date of Patent: June 14, 2016Assignee: DSSD, Inc.Inventor: Jeffrey S. Bonwick
-
Patent number: 9363317Abstract: A method for writing data to a storage pool. The method includes receiving a virtual identifier (ID) and an offset for an object, extracting a node identifier (ID) that identifies a first storage server in the storage pool from the virtual ID, obtaining an object layout (OL) for the object from the first storage server, hashing an object ID and an offset ID to obtain a hashed value, where the virtual ID comprises the object ID and where the as offset ID is generated from the offset, identifying a second storage server in the storage pool using a global namespace layout (GL), the OL, and the hashed value hashed value, and issuing a write request to write data to the object in the second storage server, where the write request comprises the object ID and the offset.Type: GrantFiled: October 24, 2013Date of Patent: June 7, 2016Assignee: DSSD, Inc.Inventor: Michael W. Shapiro
-
Publication number: 20160011988Abstract: A method including creating a transaction object for a transaction identified by a TOI and associated with an object identified by an OID, storing a TE and a MD frag for the transaction object, receiving a write request to write data to the transaction object, storing second TE including a TOI and offset and a data frag including the data, storing an entry including a hash value and a physical address of the data frag, and receiving a commit request to commit the transaction. In response to the commit request storing a third TE and a second MD frag for the transaction object, where the second MD frag identifies the object and specifies that the transaction is committed and updating a second entry including a second hash value and a second physical address for a second data frag to replace the second physical address with the physical address.Type: ApplicationFiled: February 25, 2014Publication date: January 14, 2016Applicant: DSSD, Inc.Inventor: Michael W. Shapiro
-
Publication number: 20150304422Abstract: A method for writing data to a storage pool. The method includes receiving a virtual identifier (ID) and an offset for an object, extracting a node identifier (ID) that identifies a first storage server in the storage pool from the virtual ID, obtaining an object layout (OL) for the object from the first storage server, hashing an object ID and an offset ID to obtain a hashed value, where the virtual ID comprises the object ID and where the as offset ID is generated from the offset, identifying a second storage server in the storage pool using a global namespace layout (GL), the OL, and the hashed value hashed value, and issuing a write request to write data to the object in the second storage server, where the write request comprises the object ID and the offset.Type: ApplicationFiled: October 24, 2013Publication date: October 22, 2015Applicant: DSSD, INC.Inventor: Michael W. Shapiro
-
Patent number: 9152499Abstract: A method for calculating parity values including calculating a first set of parity values using datum stored in RAID Grid locations in a first PCB, where datum associated with the RAID Grid locations in the first PCB is obtained in a first order that is based on a Hilbert curve. The method further includes calculating a second set of parity values using datum stored in RAID Grid locations in a second PCB, where datum associated with the RAID Grid locations in the second PCB is obtained in a second order that is based on the Hilbert curve. The method further includes storing at least a portion of the first set of parity values and a second set of parity values in a cache, memory, or persistent storage, where each of the first parity values and second parity values is associated with a separate RAID Grid location in the RAID Grid.Type: GrantFiled: October 9, 2014Date of Patent: October 6, 2015Assignee: DSSD, Inc.Inventors: Todor Ivanov Mollov, Jeffrey S. Bonwick
-
Publication number: 20150205667Abstract: 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.Type: ApplicationFiled: January 23, 2014Publication date: July 23, 2015Applicant: DSSD, INC.Inventor: Jeffrey S. Bonwick
-
Patent number: 9015353Abstract: A method including intercepting a OFR for a file issued by an application to a FS, forwarding the OFR to the FS, receiving from the FS a FD for the file, issuing a SR for the file to the FS. The further method includes receiving from the FS status information for a target device on which the file is located, where the status information includes an OID for the file, storing a mapping of FD to the OID, intercepting a first FOR for the file, making a determination the that the first FOR is one of a read request and a write request, based on the determination, making another determination that the target device supports the direct I/O protocol, and issuing a DI request to the target device using the OID for the file, where the DI request is not processed by the FS.Type: GrantFiled: March 14, 2013Date of Patent: April 21, 2015Assignee: DSSD, Inc.Inventor: Michael W. Shapiro
-
Patent number: 9003090Abstract: A PCIe Fabric that includes an IO tier switch, hub tier switches, and a target device connected to one of the hub tier switches. The IO tier switch is configured to receive a TLP from a client, make a determination that an address in the TLP is not associated with any multicast address range in the first IO tier switch and is not associated with any downstream port in the first IO tier switch, and, based on the determinations, route the TLP to the first hub tier switch via a upstream port on the IO tier switch. The hub tier switch is configured to make a determination that the TLP is associated with a multicast group, and, based on the determination, generate a rewritten TLP and route the rewritten TLP to a target device via a downstream port on the hub tier switch.Type: GrantFiled: March 25, 2014Date of Patent: April 7, 2015Assignee: DSSD, Inc.Inventor: Jeffrey Benjamin Davis
-
Patent number: 8949692Abstract: 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.Type: GrantFiled: January 23, 2014Date of Patent: February 3, 2015Assignee: DSSD, Inc.Inventor: Jeffrey S. Bonwick
-
Patent number: 8924776Abstract: A method for calculating parity values including calculating a first set of parity values using datum stored in RAID Grid locations in a first PCB, where datum associated with the RAID Grid locations in the first PCB is obtained in a first order that is based on a Hilbert curve. The method further includes calculating a second set of parity values using datum stored in RAID Grid locations in a second PCB, where datum associated with the RAID Grid locations in the second PCB is obtained in a second order that is based on the Hilbert curve. The method further includes storing at least a portion of the first set of parity values and a second set of parity values in a cache, memory, or persistent storage, where each of the first parity values and second parity values is associated with a separate RAID Grid location in the RAID Grid.Type: GrantFiled: December 4, 2013Date of Patent: December 30, 2014Assignee: DSSD, Inc.Inventors: Todor Ivanov Mollov, Jeffrey S. Bonwick
-
Patent number: 8819304Abstract: 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.Type: GrantFiled: September 30, 2013Date of Patent: August 26, 2014Assignee: DSSD, Inc.Inventors: Michael W. Shapiro, Jeffrey S. Bonwick, William H. Moore
-
Publication number: 20140032697Abstract: 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.Type: ApplicationFiled: September 30, 2013Publication date: January 30, 2014Applicant: DSSD, INC.Inventors: Michael W. Shapiro, Jeffrey S. Bonwick, William H. Moore
-
Patent number: 8601206Abstract: A method including creating a transaction object for a transaction identified by a TOI and associated with an object identified by an OID, storing a TE and a MD frag for the transaction object, receiving a write request to write data to the transaction object, storing second TE including a TOI and offset and a data frag including the data, storing an entry including a hash value and a physical address of the data frag, and receiving a commit request to commit the transaction. In response to the commit request storing a third TE and a second MD frag for the transaction object, where the second MD frag identifies the object and specifies that the transaction is committed and updating a second entry including a second hash value and a second physical address for a second data frag to replace the second physical address with the physical address.Type: GrantFiled: March 14, 2013Date of Patent: December 3, 2013Assignee: DSSD, Inc.Inventor: Michael W. Shapiro
-
Patent number: 8595385Abstract: In general, the invention relates to a method for writing data to server submission queues in a storage controller. The method includes receiving an I/O request, where the I/O request includes a command, where the I/O request is associated with a vSQ, and where the vSQ appears to the client as a set of memory locations in memory operatively connected to a storage controller. The method further includes obtaining a vSQ ID associated with the vSQ, identifying a sSQ based on the vSQ and a vSQ-to-sSQ mapping, generating a submission queue entry comprising the command and the vSQ ID, and sending the submission queue entry to the storage controller, where the sSQ is located in the memory and where the storage controller is configured to place the submission queue entry in the sSQ.Type: GrantFiled: May 28, 2013Date of Patent: November 26, 2013Assignee: DSSD, Inc.Inventors: Michael W. Shapiro, Todor Mollov
-
Patent number: 8589659Abstract: A method for writing data to a storage pool. The method includes receiving a virtual identifier (ID) and an offset for an object, extracting a node identifier (ID) that identifies a first storage server in the storage pool from the virtual ID, obtaining an object layout (OL) for the object from the first storage server, hashing an object ID and an offset ID to obtain a hashed value, where the virtual ID comprises the object ID and where the offset ID is generated from the offset, identifying a second storage server in the storage pool using a global namespace layout (GL), the OL, and the hashed value, and issuing a write request to write data to the object in the second storage server, where the write request comprises the object ID and the offset.Type: GrantFiled: November 8, 2012Date of Patent: November 19, 2013Assignee: DSSD, Inc.Inventor: Michael W. Shapiro
-
Patent number: 8578106Abstract: A method for writing data to submission queues in a storage controller including receiving an input/output (I/O) request from a client application, where the client application is associated with a virtual port and where the virtual port is associated with a physical port. The method further includes determining a size of the I/O request, identifying a queue group based on the size of the I/O request and the virtual port, where the queue group includes submission queues and is associated with the virtual port. The method further includes identifying a submission queue, sending the I/O request to a storage controller over the physical port, where the queue group is located in memory operatively connected to the storage controller and where the storage controller is configured to place the I/O request in the submission queue.Type: GrantFiled: November 9, 2012Date of Patent: November 5, 2013Assignee: DSSD, Inc.Inventor: Michael W. Shapiro
-
Patent number: 8554997Abstract: A method for storing data. The method includes receiving a request to write data, determining that the storage mode for the data is mirrored mode, selecting a Redundant Array of Independent Devices (RAID) grid location in a RAID grid to write the data based on the storage mode, writing the data to memory, updating a data structure to indicate that the RAID grid location is filled, and determining a data grid is filled. Based on the determination, determining a first physical address and a second physical address in persistent storage corresponding to the RAID grid location; writing the data to a first physical location in the persistent storage corresponding to the first physical address and writing the data to a second physical location in the persistent storage corresponding to the second physical address, and writing the parity values associated with data grid to the persistent storage.Type: GrantFiled: January 18, 2013Date of Patent: October 8, 2013Assignee: DSSD, Inc.Inventors: Jeffrey S. Bonwick, Michael W. Shapiro
-
Patent number: 8554963Abstract: 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: GrantFiled: March 23, 2012Date of Patent: October 8, 2013Assignee: DSSD, Inc.Inventors: Michael W. Shapiro, Jeffrey S. Bonwick, William H. Moore
-
Publication number: 20130254435Abstract: 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: ApplicationFiled: March 23, 2012Publication date: September 26, 2013Applicant: DSSD, INC.Inventors: Michael W. Shapiro, Jeffrey S. Bonwick, William H. Moore