| CPC G06F 16/2379 (2019.01) [G06F 16/285 (2019.01)] | 20 Claims |

|
1. A method, comprising:
in a first persistent storage, a first host storing a first duplica of a plurality of rows in a table of a database, wherein said first duplica includes a first delta log that includes a plurality of log records and first row heap that includes a plurality of row heap entries, wherein each log record of said plurality of log records includes one or more delta log entries specifying a change made by a transaction to a respective row of said plurality of rows;
in a second persistent storage, a second host storing a second duplica of said plurality of rows, wherein said second duplica includes a second delta log that includes at least a portion of said plurality of log records and a second row heap that includes at least a portion of said plurality of row heap entries;
said second host receiving a request to read a particular row of said plurality of rows as of a particular snapshot time;
said second host responding to the request by:
locating in said second duplica a particular chronological entry chain that corresponds to the particular row and that includes a plurality of entries for the particular row,
wherein said plurality of entries include:
one or more delta log entries contained in respective one or more log records of said plurality of log records in said second delta log;
a particular plurality of row heap entries in said second row heap
wherein the plurality of entries are linked in chronological order based on times at which respective one or more updates were made to the particular row;
based on times at which the respective one or more updates of said plurality of entries were made to the particular row, determining which values from the plurality of entries belong to the particular snapshot time; and
returning one or more values, obtained from the particular chronological entry chain, that belong to a snapshot defined by the particular snapshot time.
|