US 12,253,916 B2
Redo avoidance during database recovery
Akshay Manchale Sridhar, San Francisco, CA (US); Matthew Woicik, Bellevue, CA (US); and James E. Mace, San Francisco, CA (US)
Assigned to Salesforce, Inc., San Francisco, CA (US)
Filed by Salesforce, Inc., San Francisco, CA (US)
Filed on Jan. 31, 2023, as Appl. No. 18/162,342.
Prior Publication US 2024/0256398 A1, Aug. 1, 2024
Int. Cl. G06F 7/00 (2006.01); G06F 11/14 (2006.01); G06F 16/23 (2019.01); G06F 17/00 (2019.01)
CPC G06F 11/1469 (2013.01) [G06F 16/2358 (2019.01); G06F 16/2379 (2019.01); G06F 2201/84 (2013.01)] 19 Claims
OG exemplary drawing
 
1. A method for implementing a database recovery routine to start up a database system in response to a database failure, the method comprising:
accessing, by the database system, checkpoint information that identifies a set of active database transactions that were active at a flush point that occurred before the database failure, wherein the flush point corresponds to an execution of a flush operation in which records of at least one committed database transaction were flushed to a database repository; and
as a part of the database recovery routine, the database system replaying a plurality of database transactions within a recovery window comprising two sections, a first section defined by a recovery start point and the flush point and a second section defined by the flush point and a recovery end point, wherein the replaying includes:
for the first section, replaying the set of active database transactions but excluding any committed or aborted database transactions that occurred within the first section such that less than a total number of database transactions occurring within the first section are replayed; and
for the second section, replaying, without excluding committed or aborted database transactions, database transactions occurring within the second section.