US 11,657,037 B2
Query execution against an in-memory standby database
Vasudha Krishnaswamy, Fremont, CA (US); Yunrui Li, Fremont, CA (US); Vivekanandhan Raja, Foster City, CA (US); Tirthankar Lahiri, Palo Alto, CA (US); Mahesh B. Girkar, Cupertino, CA (US); Sukhada Pendse, Foster City, CA (US); Kartik Kulkarni, Foster City, CA (US); Jing Zheng, Foster City, CA (US); Shruti Gautam, San Mateo, CA (US); and Henry Chau, Sunnyvale, CA (US)
Assigned to Oracle International Corporation, Redwood Shores, CA (US)
Filed by Oracle International Corporation, Redwood Shores, CA (US)
Filed on Aug. 31, 2016, as Appl. No. 15/253,780.
Claims priority of provisional application 62/245,443, filed on Oct. 23, 2015.
Prior Publication US 2017/0116252 A1, Apr. 27, 2017
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 16/23 (2019.01); G06F 16/25 (2019.01); G06F 16/27 (2019.01)
CPC G06F 16/2379 (2019.01) [G06F 16/2322 (2019.01); G06F 16/2365 (2019.01); G06F 16/258 (2019.01); G06F 16/27 (2019.01); G06F 16/275 (2019.01)] 18 Claims
OG exemplary drawing
 
1. A method comprising:
maintaining, on persistent storage, a first database that is accessible to a first database server, wherein said first database is a standby for a second database that is accessible at a second database server;
wherein said first database includes a set of persistent format data (PF data), stored on said persistent storage, in a persistent format;
converting said set of PF data within said first database to a mirror format to produce a set of mirror format data (MF data) that is accessible to said first database server;
storing said set of MF data within volatile memory;
wherein said mirror format is different from and independent of said persistent format;
receiving, from the second database server by said first database server, a plurality of change records that specify changes to one or more data blocks in a second database, said changes to said one or more data blocks in said second database being made by a plurality of transactions performed against said second database;
applying, by said first database server, at least said plurality of change records that specify changes to said one or more data blocks in said second database to said set of PF data within said first database;
wherein applying, by said first database server, at least said plurality of change records includes committing a batch of transactions, said batch of transactions including said plurality of transactions;
after applying, by said first database server, at least said plurality of change records:
advancing a reference timestamp from a first timestamp to a second timestamp;
when advancing said reference timestamp, invalidating any of said set of MF data that is changed by said batch of transactions that committed between said first timestamp and said second timestamp;
comparing said reference timestamp to a query time as of which said first database server is to execute a query; and
when said reference timestamp is greater than or equal to said query time, delaying execution of said query; and
wherein said method is performed by one or more computing devices.