US 12,271,372 B2
System and method for transaction continuity across failures in a scale-out database
Ajit Mylavarapu, Mountain View, CA (US); Vasudha Krishnaswamy, Fremont, CA (US); Sukhada Pendse, Foster City, CA (US); Solmaz Kolahi, Redwood City, CA (US); Ankita Kumar, Belleuvue, WA (US); Garret F. Swart, Palo Alto, CA (US); Tirthankar Lahiri, Palo Alto, CA (US); and Juan R Loaiza, Woodside, CA (US)
Assigned to Oracle International Corporation, Redwood Shores, CA (US)
Filed by Oracle International Corporation, Redwood Shores, CA (US)
Filed on Apr. 11, 2024, as Appl. No. 18/633,209.
Application 18/633,209 is a continuation of application No. 18/117,810, filed on Mar. 6, 2023, granted, now 11,983,170.
Application 18/117,810 is a continuation of application No. 17/137,745, filed on Dec. 30, 2020, granted, now 11,599,421, issued on Mar. 7, 2023.
Application 17/137,745 is a continuation in part of application No. 17/070,277, filed on Oct. 14, 2020, granted, now 11,550,771, issued on Jan. 10, 2023.
Prior Publication US 2024/0273087 A1, Aug. 15, 2024
Int. Cl. G06F 16/23 (2019.01); G06F 16/28 (2019.01)
CPC G06F 16/2379 (2019.01) [G06F 16/285 (2019.01)] 20 Claims
OG exemplary drawing
 
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.