Snapshot Synchronization via Write Request Marking in Distributed Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In compute-node clusters, existing solutions fail to ensure consistency among snapshots of replicated data across multiple nodes, leading to potential differences in in-flight write requests, which can result in inconsistent read values when accessing different replicas.

Innovation Solution

A method where a source node marks write requests with sequence numbers to distinguish pre-snapshot and post-snapshot requests, allowing destination nodes to synchronize snapshots by queuing post-snapshot requests until they become pre-snapshot, ensuring all replicas hold the same set of in-flight write requests.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If snapshots are created independently at multiple destination nodes without coordination, then snapshot creation is simple and fast, but consistency among snapshots cannot be ensured

Engineering Contradiction:
Improvesnapshot creation speedVSAvoidsnapshot consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The source node performs preliminary action by marking each write request with a sequence number before sending it to destination nodes. This sequence number indicates whether the write request is pre-snapshot or post-snapshot relative to the current snapshot being created, enabling destination nodes to synchronize their snapshots without complex coordination protocols.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Destination nodes use feedback from the sequence numbers in write request marks to determine which write requests should be included in the current snapshot and which should wait for subsequent snapshots. This feedback mechanism ensures all destination nodes create consistent snapshots while maintaining high throughput.

Inventive Principle:
Principle #23Feedback

2Productivity

If write requests are processed immediately without marking, then system I/O is not halted and performance is maintained, but snapshot consistency cannot be guaranteed

Engineering Contradiction:
Improvesystem I/O throughputVSAvoidcrash consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The source node performs preliminary action by marking each write request with a sequence number before sending it to destination nodes. This sequence number indicates whether the write request is pre-snapshot or post-snapshot relative to the current snapshot being created, enabling destination nodes to synchronize their snapshots without complex coordination protocols.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Destination nodes use feedback from the sequence numbers in write request marks to determine which write requests should be included in the current snapshot and which should wait for subsequent snapshots. This feedback mechanism ensures all destination nodes create consistent snapshots while maintaining high throughput.

Inventive Principle:
Principle #23Feedback

3Reliability

If additional buffering resources are added to ensure snapshot consistency, then crash consistency is improved, but system complexity and resource requirements increase

Engineering Contradiction:
Improvecrash consistencyVSAvoidbuffering resources
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The existing write request marking mechanism serves the additional function of snapshot synchronization without requiring separate buffering resources. The sequence numbers in the marks provide the feedback needed for consistency, making the system self-sufficient and eliminating the need for additional dedicated buffering infrastructure.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9912748B2Synchronization of snapshots in a distributed storage system
Publication Date: 2018.03.06 MELLANOX TECHNOLOGIES LTD(IL)
  • US9912748B2 patent drawing
  • US9912748B2 patent drawing
  • US9912748B2 patent drawing

AI summary

A method includes storing data generated in a source node by sending write requests to multiple destination nodes. The destination nodes are requested to create snapshots of the data. The write requests are marked at the source node with marks that indicate to each destination node which of the write requests are pre-snapshot write requests that were issued before a snapshot request for a snapshot that the destination node is currently storing, and which of the write requests are post-snapshot write requests that were issued after the snapshot request for the snapshot that the destination node is currently storing. The snapshots are synchronized with one another at the destination nodes based on the marks.