US 12,086,041 B2
Early database transaction visibility
Kaushal Mittal, Mountain House, CA (US); James E. Mace, San Francisco, CA (US); Jun Chen, Cupertino, CA (US); and Shao-Yuan Ho, San Jose, CA (US)
Assigned to Salesforce, Inc., Cupertino, CA (US)
Filed by Salesforce, Inc., San Francisco, CA (US)
Filed on Oct. 10, 2022, as Appl. No. 18/045,260.
Prior Publication US 2024/0118982 A1, Apr. 11, 2024
Int. Cl. G06F 16/24 (2019.01); G06F 11/20 (2006.01); G06F 16/2455 (2019.01)
CPC G06F 11/2092 (2013.01) [G06F 16/2455 (2019.01); G06F 2201/85 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method for reducing a responsiveness time for a secondary node state of a database in switching from a second computing node to replace a first computing node of the database that has been acting in a primary node state of the database, with the second computing node performing the same database queries to execute the same transactions by the database while in the secondary node state as those database transactions being processed by the first computing node in the primary node state, the second computing node being operatively coupled to receive information regarding queries to be performed on the database by the first computing node while in the primary node state, the method comprising:
retrieving, by the second computing node from a transaction log, log records detailing operations performed for a plurality of database transactions;
inserting, by the second computing node based on the log records, data records of the plurality of database transactions into an in-memory cache of the second computing node that stores chains of data records from different transactions;
upon receiving sufficient information to switch to the primary node state, changing, by the second computing node, a mode of operation at least during failover to permit a committed transaction to be available for reads by a subsequent database query prior to record chain reordering; and
retrieving, by the second computing node from the in-memory cache and based on a reorder indicator assigned to the in-memory cache being set to a specified state, one or more data records.