Patent ID: 11971869
Assignee: ORACLE INTERNATIONAL CORPORATION
Field: Computer technology (Electrical engineering)
Classification: CPC G | IPC G

Claim 13:
14. One or more non-transitory computer-readable media storing instructions which,
when executed by one or more computing devices, cause:
assigning rows of a table to a plurality of slices;
wherein each row of the table is assigned to a single slice of the plurality of slices;
for each slice of the plurality of slices, storing a plurality of duplicas;
wherein each duplica of each slice contains rows of the table that belong to the slice;
wherein the plurality of slices includes a particular slice;
wherein the particular slice has a corresponding plurality of duplicas;
wherein each engine instance in a particular set of engine instances has access to a corresponding duplica of the corresponding plurality of duplicas;
receiving a first read request to read a particular row that belongs to the particular slice as of a first snapshot time;
wherein the particular row has been updated by a first Data Manipulation Language (DML) operation before the first read request was received;
wherein the first snapshot time is prior to a time associated with the first DML operation;
selecting a first engine instance from among the particular set of engine instances; and
causing the first engine instance to perform a read operation to service the first read request by reading a first version of data from a first duplica of the particular slice;
receiving a second read request to read the particular row as of a second snapshot time;
wherein the particular row has been updated by a second DML operation before the second read request was received;
wherein the second snapshot time is prior to a time associated with the second DML operation;
selecting a second engine instance from among the particular set of engine instances; and
causing the second engine instance to perform a read operation to service the second read request by reading a second version of data from a second duplica of the particular slice;
wherein the first engine instance is different from the second engine instance and the first duplica is different from the second duplica.