Transaction Private Log Buffering for Database Performance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Transaction logging in main memory-based database management systems creates performance bottlenecks due to latch contention in global redo log buffers and high frequency of disk I/O operations, compromising both performance and reliability.
Innovation Solution
Implementing transaction private log buffering, where each transaction's log entries are stored in a private buffer and flushed to a global log buffer upon completion, reducing the frequency of access to the global log buffer and minimizing disk I/O operations, while maintaining reliability through the 'write ahead log' protocol and 'force log at commit' rule.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If transaction logging is implemented in main memory-based DBMS using global redo log buffer, then reliability is ensured through crash recovery, but performance bottlenecks occur due to latch contention and frequent disk I/O operations
Solution Approach 1:
The patent segments the global redo log buffer into multiple private log buffers, one for each transaction. This segmentation eliminates latch contention by allowing each transaction to write to its own private buffer without competing for access to a shared global buffer. The private log buffers are later merged into the global buffer in a controlled manner, maintaining reliability while improving performance.
Solution Approach 2:
The patent introduces private log buffers as intermediary structures between transactions and the global redo log buffer. These private buffers act as mediators that temporarily hold transaction logs before they are flushed to the global buffer, reducing the frequency of disk I/O operations and eliminating latch contention during transaction processing.
2Reliability
If frequent flushing of transaction logs to global log buffer is performed, then reliability is maintained through proper logging, but disk I/O operations increase reducing performance
Solution Approach 1:
The patent performs preliminary logging actions by writing transaction logs to private log buffers in memory before flushing to the global buffer and disk. This preliminary action in private buffers reduces the frequency of disk I/O operations, as multiple transaction logs can be accumulated and flushed together in batch operations, thereby reducing total disk I/O waiting time while maintaining logging reliability.
Solution Approach 2:
The patent merges multiple private log buffers into the global log buffer in batch operations rather than flushing each transaction log individually. This merging approach combines multiple logging operations into fewer disk I/O operations, reducing the total time spent on disk I/O while ensuring all logs are properly recorded for reliability.
3Productivity
If latch contention is reduced through private log buffers, then transaction processing speed increases, but system complexity increases due to additional buffer management
Solution Approach 1:
The patent implements self-service mechanisms where each transaction automatically manages its own private log buffer without requiring external coordination or latch acquisition. Transactions write to their own private buffers autonomously, and the buffer management system handles the merging and flushing operations automatically, reducing the perceived complexity for individual transactions while improving processing speed.
Data Source
AI summary
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.


