US 12,086,130 B1
Object transaction system for a resource-constrained system
Michael F Brown, Cambridge, MA (US); Vandana Rungta, San Jose, CA (US); Ernest S Cohen, Wyncote, PA (US); Srinivasa Rao Vempati, Upton, MA (US); Arkady Michael Degtiarov, Newton, MA (US); and Benjamin Scott Dow, Boston, MA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Sep. 29, 2020, as Appl. No. 17/037,272.
Int. Cl. G06F 16/23 (2019.01); G06F 3/06 (2006.01); G06F 9/50 (2006.01); G06F 16/176 (2019.01)
CPC G06F 16/2379 (2019.01) [G06F 3/0649 (2013.01); G06F 9/5083 (2013.01); G06F 16/1774 (2019.01); G06F 16/2343 (2019.01); G06F 16/2365 (2019.01)] 18 Claims
OG exemplary drawing
 
1. A system for executing a distributed transaction associated with a data object, the system comprising:
a plurality of object data stores, wherein each object data store has a file system in which a current state of a data object is stored in a storage bucket; and
an agent server process implemented on a physical computing device, the agent server process configured with computer-executable instructions that, when executed, cause the agent server process to, subsequent to resolution of a service interruption and the system being accessible by a user device:
during an initial phase of execution of the distributed transaction, acquire a global lock on the data object;
subsequent to the initial phase and prior to resuming the execution of the distributed transaction,
identify a staging sub-directory associated with the data object,
determine that execution of a prior transaction associated with the data object is incomplete in response to identification of the staging sub-directory,
recover the prior transaction associated with the data object,
delete the staging sub-directory, and
cause execution of the prior transaction on the data object to complete;
during another phase of the execution of the distributed transaction, create, in a first file system of a first object data store in the plurality of object data stores, a second staging sub-directory associated with the data object;
store, in a first folder in the second staging sub-directory, data related to the distributed transaction;
store, in the first folder in the second staging sub-directory, metadata associated with the data object;
obtain a local lock on the data object;
move, from a first storage bucket in the first file system to a second folder in the second staging sub-directory, the current state of the data object;
move, from the first folder to the first storage bucket in the first file system, the data related to the distributed transaction;
request a release of the local lock on the data object;
delete the second staging sub-directory;
cause one or more other agent server processes to execute the distributed transaction associated with the data object; and
request a release of the global lock on the data object to complete the execution of the distributed transaction.