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 |
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.
|