US 11,726,979 B2
Determining a chronological order of transactions executed in relation to an object stored in a storage system
Aditya Sawhney, Erie, CO (US)
Assigned to Oracle International Corporation, Redwood Shores, CA (US)
Filed by Oracle International Corporation, Redwood Shores, CA (US)
Filed on Dec. 6, 2016, as Appl. No. 15/370,165.
Claims priority of provisional application 62/393,811, filed on Sep. 13, 2016.
Prior Publication US 2018/0075082 A1, Mar. 15, 2018
Int. Cl. G06F 16/23 (2019.01); G06F 16/24 (2019.01)
CPC G06F 16/2365 (2019.01) [G06F 16/2379 (2019.01)] 15 Claims
OG exemplary drawing
 
1. One or more non-transitory computer-readable media storing instructions, which when executed by one or more hardware processors, cause a transactional manager to perform operations comprising:
identifying by the one or more hardware processors a plurality of executed transactions that have been executed in relation to a first object of a plurality of objects in a storage system,
wherein:
executed transactions in the plurality of executed transactions are not chronological;
a first executed transaction is included before a second executed transaction is included in the plurality of executed transactions; and
the first executed transaction was executed after the second executed transaction;
identifying by the one or more hardware processors a possible chronological ordering of the plurality of executed transactions, wherein:
the identifying uses a finite state machine to iteratively determine the possible chronological ordering,
the finite state machine is stored in a non-transitory computer-readable storage device,
the stored finite state machine is associated with the storage system
the stored finite state machine specifies (a) a plurality of possible states assumable by the plurality of objects and (b) a plurality of possible transaction types executable from the plurality of possible states,
for one or more possible states of the plurality of possible states, the stored finite state machine specifies one or more possible transaction types of the plurality of possible transaction types,
based on the plurality of possible states and the plurality of possible transaction types executable from the plurality of possible states, the stored finite state machine defines one or more possible sequences of the executed transactions on the plurality of objects,
wherein identifying the possible chronological ordering comprises:
identifying, by the one or more hardware processors, an initial state, of the plurality of possible states within the stored finite state machine, associated with the first object by comparing the plurality of executed transactions to sets of possible transaction types executable from individual possible states of the plurality of possible states within the stored finite state machine;
identifying, by the one or more hardware processors, from the plurality of possible transaction types within the stored finite state machine, a set of possible transaction types which are executable from the initial state;
determining, by the one or more hardware processors, that a first particular transaction, of the plurality of executed transactions, corresponds to one transaction type of the set of possible transaction types within the stored finite state machine executable from the initial state; and
placing the first particular transaction as an initial chronological transaction in the possible chronological ordering of the plurality of executed transactions;
wherein identifying the possible chronological ordering further comprises iteratively determining a candidate chronological order of remaining executed transactions of the plurality of executed transactions until each of the remaining executed transactions are placed in the possible chronological ordering by:
identifying, by the one or more hardware processors, a current next state, of the plurality of possible states within the stored finite state machine, associated with the first object;
identifying, by the one or more hardware processors, from the plurality of possible transaction types within the stored finite state machine, a set of possible transaction types executable from the next state;
determining, by the one or more hardware processors, that a next particular transaction, of the plurality of executed transactions, corresponds to one transaction type of the set of possible transaction types within the stored finite state machine executable from the next state;
placing, by the one or more hardware processors, the next particular transaction as the next chronological transaction in the possible chronological ordering of the plurality of executed transactions;
wherein the plurality of executed transactions in the possible chronological ordering includes the first executed transaction being ordered after the second executed transaction based on the first executed transaction being executed after the second executed transaction; and
responsive to determining, by the one or more hardware processors, a last transaction type of the possible chronological ordering of the first object was a delete transaction placing the first object in a deleted state, reclaiming memory space of the storage system corresponding first object for storing new information in the storage system by performing a garbage collection transaction.