Point-in-Time Restore for Distributed Database Tables

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Restoring a partitioned database table to a specific point-in-time while maintaining atomicity and serializability is challenging, especially in distributed databases where transactions across nodes need to be coordinated effectively.

Innovation Solution

A distributed database system uses version numbers to select and apply operations from log data, ensuring that only transactions committed prior to the restore time are included in the restored table, and adjusts version numbering to preserve transaction ordering and dependencies, thereby supporting point-in-time restoration with atomicity and serializability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If version numbers are used to select and apply operations from log data for point-in-time restoration, then transactional consistency and atomicity are maintained, but the complexity of managing version numbers across distributed partitions increases

Engineering Contradiction:
Improvetransactional consistencyVSAvoidversion number management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The database table is divided into multiple partitions distributed across different computing nodes. Each partition independently manages its own version numbers for operations in its log data, allowing parallel processing and reducing centralized coordination complexity while maintaining global transactional consistency through the distributed version number framework

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Version numbers serve as an intermediary mechanism between distributed partitions and the restoration process. By using version numbers as a common reference framework, the system can select and apply operations from different partitions in a coordinated manner without requiring complex inter-partition communication protocols

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of information

If all operations up to a point-in-time are applied to restore the table, then the restored table includes complete transaction history, but operations from transactions started after restore time may be incorrectly included

Engineering Contradiction:
Improvetransaction history completenessVSAvoidrestore time accuracy
Core Design Contradiction:
Loss of informationVSManufacturing precision

Solution Approach 1:

The system uses version numbers as a parameter to precisely delimit the boundary of operations to be restored. By comparing operation version numbers against the restore time version number, the system can accurately include all operations committed prior to the restore time while excluding operations from transactions started after the restore time, achieving both completeness and precision

Inventive Principle:
Principle #35Parameter changes

3Reliability

If version numbers are adjusted to preserve transaction ordering, then atomicity and serializability are maintained, but the processing overhead for adjusting and comparing version numbers increases

Engineering Contradiction:
ImproveserializabilityVSAvoidrestoration processing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Version numbers are assigned to operations in advance during normal database operations and logged with each operation. During restoration, these pre-assigned version numbers can be directly compared and used to determine operation inclusion without requiring complex real-time analysis of transaction dependencies, thus maintaining serializability while improving processing speed

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11403179B1Transactionally consistent point-in-time restore
Publication Date: 2022.08.02 AMAZON TECH INC
  • US11403179B1 patent drawing
  • US11403179B1 patent drawing
  • US11403179B1 patent drawing

AI summary

A distributed database maintains a table on a first plurality of partitions. A request to restore the table to a point-in-time is received. The database determines, based on log data of the partitions, a maximum version number of an operation processed by the partitions. The log data is processed to exclude, from the restoration, operations whose transactions were started after the point-in-time, by setting the version number of those operations to be greater than the maximum version number. The log data is then applied to a second plurality of partitions, where the version number of each applied operation is less than or equal to the determined maximum version number.