Increasing OLTP throughput by improving the performance of logging using persistent memory storage
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.
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.