US 12,271,638 B1
Reservation persistence in distributed block storage systems
Barak Pinhas, Ganei Tikva (IL); Swapnil Vinay Dinkar, Seattle, WA (US); Andrew Boyer, Bainbridge Island, WA (US); Yonatan Divinsky, Tel Aviv (IL); and Alex Friedman, Hadera (IL)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Jan. 16, 2024, as Appl. No. 18/414,210.
Claims priority of provisional application 63/584,729, filed on Sep. 22, 2023.
Int. Cl. G06F 3/06 (2006.01)
CPC G06F 3/067 (2013.01) [G06F 3/0622 (2013.01); G06F 3/0659 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A system, comprising:
a first compute instance of a virtualized computing service; and
a storage server of a block storage service, wherein the storage server stores a portion of a first logical volume, a portion of a second logical volume, a first reservation record of the first logical volume, and a second reservation record of the second logical volume, wherein the first reservation record indicates access permissions granted with respect to the first logical volume to one or more compute instances including the first compute instance, and wherein the second reservation record indicates access permissions granted with respect to the second logical volume to one or more compute instances;
wherein the first compute instance is configured to:
transmit, to the storage server, a first retention setting of the first reservation record, wherein the first retention setting indicates that the first reservation record is to be retained across events, pertaining to the first logical volume, of a reservation-deletion-triggering event type; and
wherein the storage server is configured to:
in response to an occurrence of a first event, pertaining to the second logical volume, of the reservation-deletion-triggering event type, delete the second reservation record in accordance with a second retention setting of the second reservation record, wherein the second retention setting differs from the first retention setting;
perform, subsequent to deletion of the second reservation record, an operation indicated in a first I/O (input/output) command directed to the portion of the second logical volume, without checking access permissions stored in the second reservation record;
in response to an occurrence of a second event, pertaining to the first logical volume, of the reservation-deletion-triggering event type after the first retention setting is received, store a version of the first reservation record in accordance with the first retention setting; and
in response to receiving a second I/O command directed to the portion of the first logical volume after the occurrence of the second event, reject the second I/O command based at least in part on an access permission indicated in the version of the first reservation record.