IP Library › Granted Patent US 12,681,641
Granted Patent B2
US 12,681,641 · App. 18/929,241 · Granted Jul 14, 2026

Increasing OLTP throughput by improving the performance of logging using persistent memory storage

Inventors: Yunrui Li (Fremont, CA); Graham Ivey (Hook, GB); Shampa Chakravarty (Pleasant Hill, CA); Vsevolod Panteleenko (San Mateo, CA)
Assignee: Oracle International Corporation
G06F3/061G06F3/0646G06F3/0683
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,681,641
App. No.
18/929,241
Filed
Oct 28, 2024
Granted
Jul 14, 2026
Kind
B2
Examiner
SUN, SCOTT C
Art Unit
2181
USPC
710/5
Abstract

In an embodiment, before modifying a persistent ORL (ORL), a database management system (DBMS) persists redo for a transaction and acknowledges that the transaction is committed. Later, the redo is appended onto the ORL. The DBMS stores first redo for a first transaction into a first PRB and second redo for a second transaction into a second PRB. Later, both redo are appended onto an ORL. The DBMS stores redo of first transactions in volatile SRBs (SLBs) respectively of database sessions. That redo is stored in a volatile shared buffer that is shared by the database sessions. Redo of second transactions is stored in the volatile shared buffer, but not in the SLBs. During re-silvering and recovery, the DBMS retrieves redo from fast persistent storage and then appends the redo onto an ORL in slow persistent storage. After re-silvering, during recovery, the redo from the ORL is applied to a persistent database block.

Claims (47)

1 . A method comprising:

detecting that a change entry is contained in a first persistent storage and an online redo log in a second persistent storage that is slower than the first persistent storage;

deciding, based on said detecting, not to retrieve the change entry from the first persistent storage;

retrieving a second change entry from the first persistent storage;

appending, after said retrieving the second change entry, the second change entry onto the online redo log;

applying, to a persistent database block, the second change entry from the online redo log;

wherein the method is performed during database recovery.

2 . The method of claim 1 further comprising:

retrieving a first incarnation number from the first persistent storage in a first computer;

retrieving a second incarnation number from the first persistent storage in a second computer;

detecting that the second incarnation number is higher than the first incarnation number;

wherein said retrieving the change entry is based on said detecting that the second incarnation number is higher than the first incarnation number.

3 . The method of claim 2 wherein said retrieving the first incarnation number comprises using remote direct memory access (RDMA).

4 . The method of claim 1 wherein said retrieving comprises using RDMA.

5 . The method of claim 1 further comprising:

detecting a plurality of change entries in a plurality of redo buffers in the first persistent storage, wherein each change entry of the plurality of change entries contains a sequence number that comprises a timestamp or a system change number (SCN);

determining a global order for the plurality of change entries based on the sequence numbers in the plurality of change entries;

appending the plurality of change entries onto the online redo log in said global order.

6 . The method of claim 5 further comprising scanning the plurality of change entries including detecting, in exactly one iteration of a sequence of iterations, said change entry has a lowest sequence number.

7 . The method of claim 1 wherein said retrieving comprises a first network element retrieving from a second network element that is connected to the first network element by a rack backplane.

8 . The method of claim 1 wherein said retrieving does not entail input output waiting (IOWAIT).

9 . The method of claim 1 wherein:

the second persistent storage is a solid state drive (SSD) or

the first persistent storage is an SSD.

10 . One or more computer-readable non-transitory media storing instructions that, when executed by one or more processors, cause:

detecting that a change entry is contained in a first persistent storage and an online redo log in a second persistent storage that is slower than the first persistent storage;

deciding, based on said detecting, not to retrieve the change entry from the first persistent storage;

retrieving a second change entry from the first persistent storage;

appending, after said retrieving the second change entry, the second change entry onto the online redo log;

applying, to a persistent database block, the second change entry from the online redo log.

11 . The one or more computer-readable non-transitory media of claim 10 wherein the instructions further cause:

retrieving a first incarnation number from the first persistent storage in a first computer;

retrieving a second incarnation number from the first persistent storage in a second computer;

detecting that the second incarnation number is higher than the first incarnation number;

wherein said retrieving the change entry is based on said detecting that the second incarnation number is higher than the first incarnation number.

12 . The one or more computer-readable non-transitory media of claim 11 wherein said retrieving the first incarnation number comprises using remote direct memory access (RDMA).

13 . The one or more computer-readable non-transitory media of claim 10 wherein said retrieving comprises using RDMA.

14 . The one or more computer-readable non-transitory media of claim 10 wherein the instructions further cause:

detecting a plurality of change entries in a plurality of redo buffers in the first persistent storage, wherein each change entry of the plurality of change entries contains a sequence number that comprises a timestamp or a system change number (SCN);

determining a global order for the plurality of change entries based on the sequence numbers in the plurality of change entries;

appending the plurality of change entries onto the online redo log in said global order.

15 . The one or more computer-readable non-transitory media of claim 14 wherein the instructions further cause scanning the plurality of change entries including detecting, in exactly one iteration of a sequence of iterations, said change entry has a lowest sequence number.

16 . The one or more computer-readable non-transitory media of claim 10 wherein said retrieving comprises a first network element retrieving from a second network element that is connected to the first network element by a rack backplane.

17 . The one or more computer-readable non-transitory media of claim 10 wherein said retrieving does not entail input output waiting (IOWAIT).

18 . The one or more computer-readable non-transitory media of claim 10 wherein:

the second persistent storage is a solid state drive (SSD) or

the first persistent storage is an SSD.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2024
From: LI, YUNRUI; IVEY, GRAHAM; CHAKRAVARTY, SHAMPA; PANTELEENKO, VSEVOLOD
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 069045/0189 →
Continuity (2)
Division 17880446 · Aug 3, 2022
Related Publication 20250053299A1 · Feb 13, 2025
References Cited (9)
US 6976022B2 · Vemuri et al. · 2005 [cited by applicant]
US 9563521B2 · Panteleenko et al. · 2017 [cited by applicant]
US 10599630B2 · Li · 2020 [cited by applicant]
US 10732836B2 · Shi et al. · 2020 [cited by applicant]
US 11061884B2 · Li · 2021 [cited by applicant]
US 20200125656A1 · Li · 2020 [cited by applicant]
US 20210073198A1 · Srinivasan · 2021 [cited by examiner]
US 20220147404A1 · Zheng · 2022 [cited by applicant]
Haubenschild, Michael, et al., “Rethinking Logging, Checkpoints, and Recovery for High-Performance Storage Engines”, Proceedings of the 2020 ACM SIGMOD Intl Conf on Mgmt of Data (SIGMOD'20), https://doi.org/10.1145/3318… [cited by applicant]