P
US9619403B2ActiveUtilityPatentIndex 52

Method and system for object-based transactions in a storage system

Assignee: DSSD INCPriority: Mar 14, 2013Filed: Feb 25, 2014Granted: Apr 11, 2017
Est. expiryMar 14, 2033(~6.7 yrs left)· nominal 20-yr term from priority
Inventors:SHAPIRO MICHAEL W
G06F 2212/657G06F 3/0667G06F 12/1018G06F 12/0246G06F 3/0623G06F 3/067G06F 2212/1044G06F 12/023G06F 3/0688G06F 12/12G06F 2212/69
52
PatentIndex Score
0
Cited by
10
References
20
Claims

Abstract

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.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A non-transitory computer readable medium comprising instructions, which when executed by a processor, perform a method, the method comprising:
 storing, in persistent storage, a metadata (MD) frag for a transaction object, wherein the MD frag identifies a parent object; 
 receiving a write request to write data to the transaction object as part of a transaction, wherein the write request specifies a transaction object identifier (TOI); 
 in response to the write request:
 storing, in the persistent storage, a data frag, wherein the data frag comprises the data; 
 storing, in an in-memory data structure, an entry comprising a hash value and a physical address of the data frag, wherein the hash value is derived from at least the TOI; 
 
 receiving a commit request to commit the transaction; 
 in response to the commit request:
 storing, in persistent storage, a second metadata (MD) frag for the transaction object, wherein the second MD frag identifies the object and specifies that the transaction is committed; 
 updating, in the in-memory data structure, a second entry comprising a second hash value and a second physical address for a second data frag to replace the second physical address with the physical address, wherein the second hash value is derived from at least an object identifier (OID) for the parent object. 
 
 
     
     
       2. The non-transitory computer readable medium of  claim 1 , wherein prior to the commit request being processed, data in the parent object is accessible using the OID and an offset and the data in the data frag associated with the transaction, but not committed, is accessible using the TOI and the offset. 
     
     
       3. The non-transitory computer readable medium of  claim 2 , wherein after the commit request is processed, the data in the data frag is accessible using the OID and the offset and second data in the second data frag is not accessible. 
     
     
       4. The non-transitory computer readable medium of  claim 1 , wherein the persistent storage is solid-state memory. 
     
     
       5. The non-transitory computer readable medium of  claim 1 , wherein the commit request specifies the TOI and does not specify the OID. 
     
     
       6. The non-transitory computer readable medium of  claim 1 , the method further comprising:
 storing, in the persistent storage, a table of contents entry (TE) for the transaction object, wherein the TE references the MD frag. 
 
     
     
       7. The non-transitory computer readable medium of  claim 6 , wherein the TE and the MD frag are stored in separate pages in a block in the persistent storage. 
     
     
       8. The non-transitory computer readable medium of  claim 1 , wherein the MD frag identifies the parent object using the OID. 
     
     
       9. The non-transitory computer readable medium of  claim 1 , wherein prior to processing the commit request, the MD frag specifies that the transaction is not committed. 
     
     
       10. The non-transitory computer readable medium of  claim 6 , wherein the TE includes a third offset equal to −1. 
     
     
       11. A non-transitory computer readable medium comprising instructions, which when executed by a processor, perform a method, the method comprising:
 storing, in persistent storage, a metadata (MD) frag for a transaction object, wherein the MD frag identifies a parent object; 
 receiving a write request to write data to the transaction object as part of a transaction, wherein the write request specifies a transaction object identifier (TOI); 
 in response to the write request:
 storing, in the persistent storage, a data frag, wherein the data frag comprises the data; 
 storing, in an in-memory data structure, an entry comprising a hash value and a physical address of the data frag, wherein the hash value is derived from at least the TOI; 
 
 receiving a commit request to commit the transaction; 
 in response to the commit request:
 updating the MD frag to specify that the transaction is committed; 
 updating, in the in-memory data structure, a second entry comprising a second hash value and a second physical address for a second data frag to replace the second physical address with the physical address, wherein the second hash value is derived from at least an object identifier (OID) for the parent object. 
 
 
     
     
       12. The non-transitory computer readable medium of  claim 11 , wherein prior to the commit request being processed, data in the parent object is accessible using the OID and an offset and the data in the data frag associated with the transaction, but not committed, is accessible using the TOI and the offset. 
     
     
       13. The non-transitory computer readable medium of  claim 12 , wherein after the commit request is processed, the data in the data frag is accessible using the OID and the offset and second data in the second data frag is not accessible. 
     
     
       14. The non-transitory computer readable medium of  claim 11 , wherein the persistent storage is solid-state memory. 
     
     
       15. The non-transitory computer readable medium of  claim 11 , wherein the commit request specifies the TOI and does not specify the OID. 
     
     
       16. The non-transitory computer readable medium of  claim 11 , the method further comprising:
 storing, in the persistent storage, a table of contents entry (TE) for the transaction object, wherein the TE references the MD frag. 
 
     
     
       17. The non-transitory computer readable medium of  claim 16 , wherein the TE and the MD frag are stored in separate pages in a block in the persistent storage. 
     
     
       18. The non-transitory computer readable medium of  claim 11 , wherein the MD frag identifies the parent object using the OID. 
     
     
       19. The non-transitory computer readable medium of  claim 11 , wherein prior to processing the commit request, the MD frag specifies that the transaction is not committed. 
     
     
       20. The non-transitory computer readable medium of  claim 16 , wherein the TE includes a third offset equal to −1.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.