Delegated Key-Level Locking for a Transactional Multi-Version Key-Value Store
US-2018218022-A1 · Aug 2, 2018 · US
US11593347B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11593347-B2 |
| Application number | US-201916597112-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 9, 2019 |
| Priority date | Oct 9, 2019 |
| Publication date | Feb 28, 2023 |
| Grant date | Feb 28, 2023 |
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 use in a storage system is disclosed, comprising: receiving, at a first server in the storage system, a given block layer request for reservation of a storage resource, by the first server, an identifier corresponding to the given block layer request; performing a search of a database to detect whether the given block layer request has been completed, the search being performed by the first server, the search being performed based on the identifier corresponding to the given block layer request; when the database indicates that the given block layer request has not been completed: completing the given block layer request and transmitting a notification that the given block layer request is completed; and when the database indicates that given block layer request has been completed, re-transmitting a notification that the given block layer request is completed.
Opening claim text (preview).
The invention claimed is: 1. A method for use in a storage system, the method comprising: receiving, at a secondary server in the storage system, an external reservation request, the external reservation request being a request for reservation of a storage resource for use by a host device that is external to the storage system, the external reservation request being received from the host device, the external reservation request being a block-layer reservation request; generating, by the secondary server, an internal reservation request in response to the external reservation request, the internal reservation request being a request for reservation of the storage resource for use by the host device; transmitting the internal reservation request from the secondary server to a primary server in the storage system; receiving the internal reservation request at the primary server and obtaining, by the primary server, an identifier that is contained in the internal reservation request, the identifier uniquely identifying the external reservation request among a plurality of reservation requests that are received at the storage system; searching, by the primary server, a database to detect whether an earlier internal reservation request has been completed that is generated based on the same external reservation request as the received internal reservation request, the search being performed based on the obtained identifier; when the database indicates that the earlier internal reservation request has not been completed: completing the received internal reservation request, and transmitting, from the primary server to the secondary server, an indication of whether the storage resource is reserved for use by the host device; and when the database indicates that the earlier internal reservation request has been completed, re-transmitting, from the primary server to the secondary server, an indication of whether the storage resource is reserved for use by the host device. 2. The method of claim 1 , wherein the received internal reservation request is completed by the primary server only when the database indicates that no earlier internal reservation request is completed that is generated based on the same external reservation request as the received internal reservation request. 3. The method of claim 1 , wherein the internal reservation request is generated by inserting the identifier into the external reservation request, and the secondary server lacks privileges for reserving the storage resource directly. 4. The method of claim 1 , wherein the identifier uniquely identifies the external reservation request among all block layer reservation requests that are received at the storage system during a predetermined period. 5. The method of claim 1 , wherein: the internal reservation request includes a Small Computer System Interface (SCSI) persistent reserve command, and the database is configured to identify a plurality of reservation requests, the plurality of reservation requests including at least one of, (i) a request that has been completed, and (ii) a request that is pending. 6. The method of claim 1 , wherein the database includes a plurality of entries, each entry mapping a different external reservation request identifier to a corresponding completion status identifier. 7. The method of claim 1 , wherein the storage resource includes at least one of a solid-state drive (SSD), a non-volatile random-access memory (nvRAM), or a hard disk (HD). 8. A system comprising: a memory; and at least one processor operatively coupled to the memory, the at least one processor being configured to perform the operations of: receiving an internal reservation request, the internal reservation request being a request for reservation of a storage resource in a storage system for use by a host device that is external to the storage system, the internal reservation request being received from a secondary server in the storage system, the internal reservation request being generated in response to an external reservation request for the storage resource that is received at the secondary server from the host device, the external reservation request being a block-layer reservation request; obtaining an identifier that is contained in the internal reservation request, the identifier uniquely identifying the external reservation request among a plurality of reservation requests that are received at the storage system; performing a search of a database to detect whether an earlier internal reservation request has been completed that is generated based on the same external reservation request as the received internal reservation request, the search being performed based on the obtained identifier; when the database indicates that the earlier internal reservation request has not been completed: completing the received internal reservation request, and transmitting, to the secondary server, an indication of whether the storage resource is reserved for use by the host device; and when the database indicates that the earlier internal reservation request has been completed, re-transmitting, to the secondary server, an indication of whether the storage resource is reserved for use by the host device. 9. The system of claim 8 , wherein the received internal reservation request is completed only when the database indicates that no earlier internal reservation request is completed that is generated based on the same external reservation request as the received internal reservation request. 10. The system of claim 8 , wherein the internal reservation request is generated by inserting the identifier into the external reservation request, and the secondary server lacks privileges for reserving the storage resource directly. 11. The system of claim 8 , wherein the identifier uniquely identifies the external reservation request among all block layer reservation requests that are received at the storage system during a predetermined period. 12. The system of claim 8 , wherein: the internal reservation request includes a Small Computer System Interface (SCSI) persistent reserve command, and the database is configured to identify a plurality of reservation requests, the plurality of reservation requests including at least one of: (i) a request that has been completed, and (ii) a request that is pending. 13. The system of claim 8 , wherein the database includes a plurality of entries, each entry mapping a different external reservation request identifier to a corresponding completion status identifier. 14. The system of claim 8 , wherein the storage resource includes at least one of a solid-state drive (SSD), a non-volatile random-access memory (nvRAM), or a hard disk (HD). 15. A non-transitory computer-readable storage medium that is configured to store one or more processor-executable instructions, which, when executed by at least one processor, cause the at least one processor to perform the operations of: receiving an internal reservation request, the internal reservation request being a request for reservation of a storage resource in a storage system for use by a host device that is external to the storage system, the internal reservation request being received from a secondary server in the storage system, the internal reservation request being generated in response to an external reservation request for the storage resource that is received at the secondary server from the host device, the external reservation request being a block-layer reservation request; obtaining an identifier that is contained in the internal reservation request, the iden
Details of memory controller · CPC title
Small computer system interface [SCSI] · CPC title
Ensuring data consistency and integrity · CPC title
File system administration, e.g. details of archiving or snapshots (error detection or correction of the data by redundancy in operations G06F11/14) · CPC title
Schema design and management · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.