Temporary Database Page Flagging for Savepoint Modification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing database systems face challenges in modifying temporary pages during savepoint operations without affecting non-temporary pages, which can lead to performance issues and data inconsistency.

Innovation Solution

Allocating temporary pages in main memory with a flag indicating they are temporary, allowing modifications during savepoints without requiring consistent changes, and automatically deleting them upon database restart, thus avoiding synchronization with non-temporary pages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If temporary pages are modified during savepoint operations without consistent changes, then modification speed is improved, but data consistency may be compromised

Engineering Contradiction:
Improvemodification speedVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments pages into two distinct categories: temporary pages and non-temporary pages. Temporary pages are identified by a specific flag (e.g., bit 0 of the page status) and can be modified without acquiring consistent changes, while non-temporary pages require consistent changes during savepoints. This segmentation allows the system to optimize modification speed for temporary pages while maintaining data consistency for persistent data.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different quality requirements are applied to different parts of the database system. Temporary pages, which are transient and used for intermediate operations, have relaxed consistency requirements allowing parallel modification. Non-temporary pages, which contain persistent data, maintain strict consistency requirements. This local quality differentiation resolves the contradiction by applying appropriate consistency levels to different page types.

Inventive Principle:
Principle #3Local quality

2Reliability

If consistent changes are acquired for all pages during savepoints, then data consistency is ensured, but modification performance deteriorates

Engineering Contradiction:
Improvedata consistencyVSAvoidmodification performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system segments the page modification process based on page type. When a savepoint operation occurs, the system checks the temporary page flag for each page. Temporary pages bypass the consistent change acquisition mechanism, allowing parallel modifications without blocking. Non-temporary pages acquire consistent changes to ensure data consistency. This segmentation eliminates the performance penalty of universal consistent change acquisition.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of applying consistent change acquisition to all pages (excessive action), the system applies it only to non-temporary pages (partial action). This partial application of the consistency mechanism maintains data consistency for persistent data while avoiding the performance deterioration that would result from applying the same mechanism to all pages including temporary ones.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If synchronization mechanisms are implemented for all pages, then data consistency is maintained, but system complexity increases

Engineering Contradiction:
Improvedata consistencyVSAvoidsynchronization complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system segments pages using a simple temporary page flag (a single bit in the page status) to determine synchronization requirements. This segmentation eliminates the need for complex synchronization mechanisms for temporary pages, as they are automatically excluded from consistent change acquisition. The complexity of synchronization mechanisms is thus reduced to only what is necessary for non-temporary pages.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different synchronization qualities are applied locally based on page type. Temporary pages receive no synchronization overhead, while non-temporary pages receive full synchronization protection. This local quality approach maintains data consistency where needed while minimizing system complexity by avoiding unnecessary synchronization mechanisms for temporary pages.

Inventive Principle:
Principle #3Local quality

4Productivity

If temporary pages are not flagged, then page management is simpler, but parallel modification during savepoints is not enabled

Engineering Contradiction:
Improveparallel modification capabilityVSAvoidpage management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system uses a flag (analogous to a color change) to mark temporary pages. Specifically, bit 0 of the page status is set to indicate a temporary page. This simple binary marker enables the system to distinguish temporary pages from non-temporary pages, thereby enabling parallel modification during savepoints. The complexity added is minimal (a single bit) compared to the significant productivity gain from enabling parallel modifications.

Inventive Principle:
Principle #32Color changes

Data Source

PatentUS11169886B2Modification of temporary database pages
Publication Date: 2021.11.09 SAP SE
  • US11169886B2 patent drawing
  • US11169886B2 patent drawing
  • US11169886B2 patent drawing

AI summary

A temporary page is allocated in which pages are loaded into main memory and having associated physical disk storage. The temporary page is also flagged as being temporary. Subsequently, a savepoint is initiated for the database so that, during the savepoint, the temporary page can be modified without acquiring a consistent change while preventing other non-temporary pages from being modified. Later, the savepoint can be finalized to enable the database to be rolled back to a point in time corresponding to the savepoint as part of a recovery process.