Snapshot Isolation in Distributed Storage Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Content management systems face challenges in providing efficient access to data stored across multiple storage nodes while maintaining snapshot isolation, ensuring consistent views of the data store for clients, and allowing concurrent operations by multiple users.

Innovation Solution

A storage system architecture that includes a front-end system coordinating with multiple storage nodes, using key-value tables and transaction tables to manage key ranges and transaction IDs, ensuring snapshot isolation by tracking version and transaction states, and abstracting storage nodes into a single storage space for clients.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is distributed across multiple storage nodes, then storage capacity and access parallelism are improved, but data consistency and snapshot isolation become more difficult to maintain

Engineering Contradiction:
Improvedata access parallelismVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the distributed storage system into multiple storage nodes, each independently managing its own key-value store and transaction log. This segmentation enables parallel data access across nodes while maintaining consistency through distributed transaction coordination, resolving the contradiction between access parallelism and data consistency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a transaction coordinator as an intermediary that manages transactions across multiple storage nodes. The coordinator ensures snapshot isolation by coordinating read and write operations, allowing parallel access while maintaining consistency through centralized transaction management.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If snapshot isolation is enforced across distributed nodes, then data consistency is improved, but transaction coordination overhead increases

Engineering Contradiction:
Improvesnapshot isolationVSAvoidtransaction coordination
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements preliminary action by pre-establishing snapshot versions and transaction identifiers before operations occur. Each storage node maintains versioned data and transaction logs in advance, allowing snapshot isolation to be enforced without complex real-time coordination during transaction execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses copying by creating snapshot copies of data at specific points in time. Each transaction operates on isolated snapshot copies rather than the live data, eliminating coordination overhead while maintaining snapshot isolation through versioned copies of the data state.

Inventive Principle:
Principle #26Copying

3Productivity

If multiple users access data concurrently, then system throughput is improved, but conflict resolution and consistency maintenance become more complex

Engineering Contradiction:
Improvesystem throughputVSAvoidconflict resolution
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies parameter changes by transforming concurrent access conflicts into version number comparisons. Each data item carries version parameters, and concurrent operations are resolved by comparing version numbers rather than requiring complex conflict detection and resolution protocols, simplifying consistency maintenance while allowing high throughput.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11474977B2Snapshot isolation in a distributed storage system
Publication Date: 2022.10.18 DROPBOX INC
  • US11474977B2 patent drawing
  • US11474977B2 patent drawing
  • US11474977B2 patent drawing

AI summary

Systems and methods for snapshot isolation in a distributed storage system M are provided. In some examples, a method can include receiving a request for data from a data store comprising a plurality of storage nodes, the request comprising a key associated with the data and a request timestamp, identifying a storage node in the plurality of storage nodes from which to read the data based on the key and a mapping of keys to storage nodes, determining that the request is associated with a transaction comprising operations associated with at least one other storage node in the plurality of storage nodes, determining a status of the entry for the key in the key-value table based on a lookup of a transaction table using the transaction identifier, and providing the data when the status of the entry for the key indicates the data is ready to be read.