Index Structure Navigation Using Page Versions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed database systems face challenges in coordinating read and write operations across nodes, particularly when servicing read requests while index structures are being modified, leading to potential deadlocks and performance bottlenecks due to locking mechanisms.

Innovation Solution

Implementing multi-version concurrency control using page versions to navigate index structures without locking, allowing read-only nodes to maintain different versions of data pages and select consistent versions for servicing read requests, thereby avoiding deadlocks and maintaining performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If locking mechanisms are used to coordinate read and write operations on index structures, then data consistency is maintained, but system performance deteriorates due to deadlocks and blocking

Engineering Contradiction:
Improvedata consistencyVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The index structure is divided into multiple pages that can be independently versioned and accessed. Each page can have its own version number, allowing readers to access specific pages without locking the entire index structure. This segmentation enables concurrent read and write operations on different pages, maintaining data consistency while improving system performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system uses version numbers as parameters to track changes in index pages. Instead of using locking mechanisms, the system changes the version parameter of pages to coordinate access. Readers check version numbers to determine if they are reading a consistent snapshot, while writers increment version numbers when modifying pages. This parameter-based approach replaces traditional locking while maintaining consistency.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If read requests are serviced while index structures are being modified, then system availability is improved, but coordination complexity increases due to potential deadlocks

Engineering Contradiction:
Improvesystem availabilityVSAvoidcoordination complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs preliminary version checking before servicing read requests. Readers first check the version number of the index page they intend to access, ensuring they are reading a consistent snapshot before proceeding with the read operation. This preliminary action prevents deadlocks by establishing a clear ordering of operations based on version numbers, simplifying coordination while maintaining high availability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Version numbers serve as an intermediary mechanism between read and write operations. Instead of direct coordination between readers and writers that could lead to deadlocks, the version number acts as a mediator that both readers and writers can independently check and update. This intermediary simplifies the coordination logic while enabling concurrent access and improving system availability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9946735B2Index structure navigation using page versions for read-only nodes
Publication Date: 2018.04.17 AMAZON TECH INC
  • US9946735B2 patent drawing
  • US9946735B2 patent drawing
  • US9946735B2 patent drawing

AI summary

Read-only nodes of a distributed database system may implement index structure navigation using page versions. A read request may be received at a read only node of a distributed database for select data. Data pages linked together to form an index structure for data stored for the distributed database may be navigated according to versions maintained for the data pages in order to identify one or more locations to access for the select data. One or more prior versions of data pages may be selected as part navigating the index structure according to a consistent view of the distributed database associated with the read request. Change notifications may also be received at the read-only node modifying the data pages of the index structure. The index structure modifications may be applied without blocking the index structure navigation for servicing the read request.