Storage system indexed using persistent metadata structures
US-2019377491-A1 · Dec 12, 2019 · US
US10824345B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10824345-B2 |
| Application number | US-201816204900-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 29, 2018 |
| Priority date | Nov 29, 2018 |
| Publication date | Nov 3, 2020 |
| Grant date | Nov 3, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method for storing object state on hash chains. A read request that includes a received field name is received by an object with a plurality of fields. A field value that corresponds to the received field name is retrieved from a hash chain of the object by traversing the hash chain. A block is found that includes the field value from the plurality of field values that corresponds to the received field name. A response to the read request that includes the field value is generated and transmitted.
Opening claim text (preview).
What is claimed is: 1. A method comprising: receiving, by an object with a plurality of fields, a first plurality of read requests that include a plurality of received field names of a plurality of fields of the object; retrieving a plurality of field values of the plurality of fields from a plurality of hash chains for the plurality of fields of the object by: identifying the respective hash chain from a plurality of hash chains of the object that corresponds to the respective field, and identifying an end block of the respective hash chain that includes the respective field value; generating a plurality of responses to the first plurality of read requests each including the field value from the end block of the respective hash chain; transmitting the plurality of responses; receiving, by the object, a plurality of write requests that include a plurality of updated field values of the plurality of fields; and adding, to the plurality of hash chains for the plurality of fields, a plurality of new blocks comprising the plurality of updated field values of the plurality of fields. 2. The method of claim 1 , further comprising: locking the object and queuing a second plurality of read requests after receiving the first plurality of read requests and before retrieving the plurality of field values. 3. The method of claim 2 , further comprising: retrieving a previous hash value. 4. The method of claim 3 , further comprising: generating, after retrieving the plurality of field values, a verification hash value from a field value of the plurality of field values and the previous hash value. 5. The method of claim 4 , further comprising: verifying the field value by comparing the verification hash value to a retrieved hash value. 6. The method of claim 2 , further comprising: unlocking the object and processing the second plurality of read requests after transmitting the plurality of responses. 7. A method comprising: receiving, by an object with a plurality of fields, a first plurality of read requests that include a plurality of received field names of a plurality of fields of the object; retrieving a plurality of field values of the plurality of fields from a hash chain of the object by: identifying a plurality of object field block identifiers that correspond to the plurality of fields and are stored separately from the hash chain by the object, and identifying a plurality of blocks that include the plurality of field values and are in the hash chain using the plurality of object field block identifiers without traversing the hash chain; generating a plurality of responses to the first plurality of read requests that include the plurality of field values; transmitting the plurality of responses; receiving, by the object, a plurality of write requests that include a plurality of updated field values of the plurality of fields; adding, to the hash chain, a plurality of new blocks comprising the plurality of updated field values of the plurality of fields; and updating the plurality of object field block identifiers to refer to the plurality of new blocks. 8. The method of claim 7 , further comprising: locking the object and queuing a second plurality of read requests after receiving the first plurality of read requests and before retrieving the plurality of field values. 9. The method of claim 8 , further comprising: retrieving a previous hash value. 10. The method of claim 9 , further comprising: generating, after retrieving the plurality of field values, a verification hash value from a field value of the plurality of field values and the previous hash value. 11. The method of claim 10 , further comprising: verifying the field value by comparing the verification hash value to a retrieved hash value. 12. The method of claim 8 , further comprising: unlocking the object and processing the second plurality of read requests after transmitting the plurality of responses. 13. A method comprising: receiving, by an object with a plurality of fields, a plurality of read requests that include a plurality of received field names of a plurality of fields of the object; for each field of the plurality of fields, retrieving a field value from a first hash chain of a plurality of hash chains for the plurality of fields of the object by: traversing a second hash chain of the plurality of hash chains to locate a second block of the second hash chain that corresponds to the field and that includes a field block identifier that identifies a first block of the first hash chain, and identifying the first block of the first hash chain that includes the field value using the field block identifier from the second block; generating a plurality of responses to the plurality of read requests that include the field value of the respective field; transmitting the plurality of responses; receiving, by the object, a plurality of write requests that include a plurality of updated field values of the plurality of fields; for each field of the plurality of fields, adding, to the first hash chain, a new block comprising the respective updated field value of the respective field; and updating the field block identifier of the second block of the second hash chain to refer to the respective new block. 14. The method of claim 13 , further comprising: locking the object and queuing a second plurality of read requests after receiving the first plurality of read requests and before retrieving the plurality of field values. 15. The method of claim 14 , further comprising: retrieving a previous hash value. 16. The method of claim 15 , further comprising: generating, after retrieving the plurality of field values, a verification hash value from a field value of the plurality of field values and the previous hash value. 17. The method of claim 16 , further comprising: verifying the field value by comparing the verification hash value to a retrieved hash value. 18. The method of claim 14 , further comprising: unlocking the object and processing the second plurality of read requests after transmitting the plurality of responses. 19. A system comprising: a memory coupled to a processor, wherein the memory comprises: an object with a plurality of fields, a plurality of hash chains that is included by the object and that includes a history hash chain and a plurality of field hash chains, and a plurality of blocks in the plurality of hash chains that include a first plurality of field values of the plurality of fields, wherein the plurality of blocks are included in the history hash chain and the plurality of field hash chains; wherein the object executes on the processor, uses the memory, and is configured for: receiving, by the object, a plurality of read requests that include a plurality of received field names of a plurality of fields of the object, retrieving the plurality of field values of the plurality of fields, which correspond to the plurality of received field names from the plurality of field hash chains of the object, generating a plurality of responses to the first plurality of read requests that include the plurality of field values, transmitting the plurality of responses; receiving, by the object, a plurality of write requests that include a plurality of updated field values of the plurality of fields; and adding, to the history hash chain and the plurality of field hash chains of the object, a plurality of new blocks comprising the plurality of updated field values of the
Protecting data integrity, e.g. using checksums, certificates or signatures · CPC title
Object-oriented · CPC title
using hash chains, e.g. blockchains or hash trees · CPC title
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
Single storage device · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.