Bounded Redo Log for In-Memory Table Persistence
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Standard redo logs in computer systems are unbounded, leading to complex and error-prone garbage collection processes, which are inefficient in managing the size of redo log entries for in-memory table restoration.
Innovation Solution
Implementing a bounded redo log using a circular queue or circular buffer structure, where updates are logged in a cached redo log segment with separate regions for recent and historical entries, and flushing to disk when size thresholds are reached, ensuring a finite number of entries for efficient persistence.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a standard redo log is used to restore the in-memory table state, then the restoration capability is provided, but the redo log size becomes unbounded leading to complex and error-prone garbage collection
Solution Approach 1:
The redo log is divided into fixed-size segments that are written sequentially to persistent storage. Each segment has a predetermined size, creating natural boundaries that simplify management and eliminate the need for complex garbage collection. The segmentation principle is applied by dividing the continuous redo log into discrete, manageable units with fixed capacities.
Solution Approach 2:
The patent changes the size parameter of the redo log from unbounded to bounded by implementing fixed-size segments. This parameter change transforms the redo log structure into a manageable form where each segment has a defined capacity, preventing unbounded growth and simplifying the restoration process while maintaining reliability.
2Reliability
If redo log entries are retained to ensure complete restoration, then restoration accuracy is improved, but storage space is consumed
Solution Approach 1:
The system performs preliminary actions by writing redo log segments to persistent storage at fixed intervals before they are needed for restoration. This preliminary action ensures that sufficient restoration information is already available on disk without requiring all possible redo log entries to be retained in memory, thus balancing restoration accuracy with storage efficiency.
Solution Approach 2:
The patent extracts the essential restoration information into fixed-size segments that are stored on persistent storage. By taking out only the necessary redo log entries into these bounded segments, the system maintains restoration accuracy while preventing excessive consumption of storage space that would occur with unbounded redo logs.
3Reliability
If the redo log size is increased to capture all changes, then completeness of restoration is improved, but the complexity of managing the log increases
Solution Approach 1:
The redo log management complexity is reduced by segmenting the log into fixed-size units. Each segment is independently managed with clear boundaries, simplifying the tracking and management processes. This segmentation allows the system to maintain complete restoration information while avoiding the complexity of managing a single large unbounded log.
Solution Approach 2:
The patent applies parameter changes by transforming the redo log from an unbounded structure to a bounded segmented structure. This parameter change fundamentally simplifies log management by introducing fixed size constraints, making it easier to track, manage, and restore data while maintaining completeness through the segmented architecture.
Data Source
AI summary
Techniques for efficiently storing the state of an in-memory table to persistent storage are described. In one embodiment, one or more requests to update an entry in an in-memory table with one or more values are received, wherein the in-memory table is stored in non-persistent memory. The one or more entries in the in-memory table are then updated with the one or more values and one or more recent redo log entries that correspond to the one or more entries and one or more values are generated. One or more historical entries in the table are selected and one or more historical redo log entries that correspond to the one or more historical entries are generated. The recent redo log entry and the one or more historical redo log entries are saved to a bounded redo log, wherein the bounded redo log is stored in persistent storage.


