Snapshot Synchronization via Write Request Marking in Distributed Storage
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Reliability
If additional buffering resources are added to ensure snapshot consistency, then crash consistency is improved, but system complexity and resource requirements increase
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.
Data Source
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.


