Database Page Concurrent Update Mechanism

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing database systems face inefficiencies in transaction throughput due to the need for exclusive access to database pages during updates, which serializes updates and leads to wasted time for other threads waiting to access these pages.

Innovation Solution

Implementing shared access to database pages instead of exclusive access, allowing multiple threads to concurrently update records by reserving exclusive access to corresponding database elements, and using alternative synchronization methods such as shared latches and compare-and-swap operations for atomicity and dirty page tracking.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If exclusive access to database pages is used during updates, then data integrity is ensured, but transaction throughput deteriorates due to serialization of updates

Engineering Contradiction:
Improvedata integrityVSAvoidtransaction throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the database page access control into two levels: shared access at the page level and exclusive access at the record level. Multiple threads can hold shared latches on the same database page simultaneously, allowing parallel access. When a thread needs to update a specific record, it obtains an exclusive latch on that record while maintaining shared access to the page, enabling other threads to continue updating different records on the same page in parallel.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different access control mechanisms to different portions of the database page. Instead of uniformly applying exclusive access to the entire page, the system allows shared access to the page level while implementing exclusive access only at the specific record level where updates occur. This localized exclusive access minimizes contention and enables parallel updates to different records on the same page.

Inventive Principle:
Principle #3Local quality

2Stability of the object's composition

If exclusive access to database pages is used during updates, then serialization of updates is achieved, but wait time for threads deteriorates

Engineering Contradiction:
Improveupdate serializationVSAvoidthread wait time
Core Design Contradiction:
Stability of the object's compositionVSLoss of time

Solution Approach 1:

The patent divides the access control granularity from the entire database page down to individual records. Threads can acquire shared latches on the database page and exclusive latches on specific records simultaneously, allowing multiple threads to update different records in parallel without interfering with each other, thereby eliminating wait times while maintaining update integrity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a two-dimensional access control model: one dimension for page-level shared access and another dimension for record-level exclusive access. This dimensional separation allows threads to operate concurrently at the page level while maintaining isolation at the record level, eliminating serialization bottlenecks and reducing thread wait times.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Productivity

If shared access to database pages is implemented, then parallel updates are enabled, but synchronization complexity increases

Engineering Contradiction:
Improveparallel update capabilityVSAvoidsynchronization mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments synchronization into two independent latch types: shared latches at the page level and exclusive latches at the record level. This segmentation simplifies the synchronization model by allowing threads to hold multiple latches simultaneously with clear acquisition rules, reducing the complexity compared to more sophisticated concurrency control mechanisms while enabling parallel updates.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces latches as intermediary synchronization primitives that mediate between shared page access and exclusive record access. The latch mechanism provides a simple, uniform interface for threads to acquire and release access rights, simplifying the synchronization logic while enabling complex parallel update scenarios.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If shared access to database pages is implemented, then exclusive access reservation is reduced, but ensuring atomicity becomes more difficult

Engineering Contradiction:
Improveconcurrent access efficiencyVSAvoidatomicity guarantee
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments atomicity guarantees from the page level to the record level. Each thread that needs to update a record acquires an exclusive latch on that specific record, ensuring atomicity for that record's update operation. Other threads can simultaneously hold shared latches on the page and update different records, maintaining atomicity for their respective records while improving concurrent access efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies exclusive access (and thus atomicity guarantees) locally only where needed—at the specific record level—rather than globally at the page level. This localized application of atomicity mechanisms reduces contention and improves concurrent access efficiency while maintaining reliability for each individual update operation.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11288251B2Supporting concurrent updates to a database page
Publication Date: 2022.03.29 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11288251B2 patent drawing
  • US11288251B2 patent drawing
  • US11288251B2 patent drawing

AI summary

A method for supporting concurrent updates to a database page may include providing shared access to the database page. A first update may be performed with respect to a first record in the database page. A second update may be performed with respect to a second record in the database page. The first update and the second update may be performed concurrently while the shared access to the database page is being provided. The method may also include synchronizing the first update and the second update.