IP Library Granted Patent US 9,558,229
Granted Patent B2
US 9,558,229 · App. 14/244,686 · Granted Jan 31, 2017

Transaction private log buffering for high performance of transaction processing

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 9,558,229
App. No.
14/244,686
Granted
Jan 31, 2017
Kind
B2
Abstract

For each data change occurring transaction created as part of a write operation initiated for one or more tables in a main-memory-based DBMS, a transaction log entry can be written to a private log buffer corresponding to the transaction. All transaction log entries in the private log buffer can be flushed to a global log buffer upon completion of the transaction to which the private log buffer corresponds.

Claims (28)

1. A computer program product comprising a non-transitory machine-readable medium storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:

creating one or more transactions as part of a write operation initiated for one or more tables in a main-memory-based database management system, wherein the one or more tables in the main-memory-based database management system are stored in memory;

writing, for each data change occurring during a transaction of the one or more transactions, a transaction log entry to a private log buffer, the private log buffer corresponding to the transaction;

flushing all transaction log entries in the private log buffer to a global log buffer, when the main-memory-based database management system has processed one or more data manipulation language statements comprising the transaction to which the private log buffer corresponds; and

flushing, to a non-volatile storage, all transaction log entries in the global log buffer, the flushing of all the transaction log entries in the global log buffer to the non-volatile storage performed during a commit operation committing the changes relating to the write operation, the flushing of all the transaction log entries in the global log buffer to the non-volatile storage during the commit operation resulting in fewer input/output operations to the non-volatile storage for transaction logging than writing the transaction log entries directly to the non-volatile storage.

2. A computer program product as in claim 1 , wherein the operations further comprise receiving a data manipulation workload from a client machine, the data manipulation workload relating to the write operation.

3. A computer program product as in claim 2 , wherein the data manipulation workload comprises statements in a data manipulation language.

4. A computer program product as in claim 1 , wherein the transaction log entry comprises a redo log entry, and the redo log entry is applied when the redo log entry has a higher savepoint count than a savepoint count of a data page affected by the transaction.

5. A system comprising:

at least one processor; and

at least one memory including program code which when executed by the at least one processor provides operations comprising:

creating one or more transactions as part of a write operation initiated for one or more tables in a main-memory-based database management system, wherein the one or more tables in the main-memory-based database management system are stored in memory;

writing, for each data change occurring during a transaction of the one or more transactions, a transaction log entry to a private log buffer, the private log buffer corresponding to the transaction;

flushing all transaction log entries in the private log buffer to a global log buffer, when the main-memory-based database management system has processed one or more data manipulation language statements comprising the transaction to which the private log buffer corresponds; and

flushing, to a non-volatile storage, all transaction log entries in the global log buffer, the flushing of all the transaction log entries in the global log buffer to the non-volatile storage performed during a commit operation committing the changes relating to the write operation, the flushing of all the transaction log entries in the global log buffer to the non-volatile storage during the commit operation resulting in fewer input/output operations to the non-volatile storage for transaction logging than writing the transaction log entries directly to the non-volatile storage.

6. A system as in claim 5 , wherein the operations further comprise receiving a data manipulation workload from a client machine, the data manipulation workload relating to the write operation.

7. A system as in claim 6 , wherein the data manipulation workload comprises statements in a data manipulation language.

8. A system as in claim 5 , wherein the transaction log entry comprises a redo log entry, and the redo log entry is applied when the redo log entry has a higher savepoint count than a savepoint count of a data page affected by the transaction.

9. A system as in claim 5 , wherein the computer hardware comprises a programmable processor, and a machine-readable medium storing instructions that, when executed by the programmable processor, cause the at least one programmable processor to perform at least some of the operations.

10. A computer-implemented method comprising:

creating one or more transactions as part of a write operation initiated for one or more tables in a main-memory-based database management system, wherein the one or more tables in the main-memory-based database management system are stored in memory;

writing, for each data change occurring during a transaction of the one or more transactions, a transaction log entry to a private log buffer, the private log buffer corresponding to the transaction;

flushing all transaction log entries in the private log buffer to a global log buffer, when the main-memory-based database management system has processed one or more data manipulation language statements comprising the transaction to which the private log buffer corresponds; and

flushing, to a non-volatile storage, all transaction log entries in the global log buffer, the flushing of all the transaction log entries in the global log buffer to the non-volatile storage performed during a commit operation committing the changes relating to the write operation, the flushing of all the transaction log entries in the global log buffer to the non-volatile storage during the commit operation resulting in fewer input/output operations to the non-volatile storage for transaction logging than writing the transaction log entries directly to the non-volatile storage.

11. A computer-implemented method as in claim 10 , further comprising receiving a data manipulation workload from a client machine, the data manipulation workload relating to the write operation.

12. A computer-implemented method as in claim 11 , wherein the data manipulation workload comprises statements in a data manipulation language.

13. A computer-implemented method as in claim 10 , wherein the transaction log entry comprises a redo log entry, and the redo log entry is applied when the redo log entry has a higher savepoint count than a savepoint count of a data page affected by the transaction.

14. A computer-implemented method as in claim 10 , wherein the creating, the writing, the flushing to the global log buffer, and the flushing to the non-volatile memory comprise operations performed by computer hardware.

Assignments (2)
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2014
From: LEE, JUCHANG; KIM, BEOMSOO; NOH, JAEYUN; KIM, KYU HWAN; CHA, SANG KYUN
To: SAP AG
Reel/Frame 032973/0658 →