Common Snapshot File System Optimizations for Low I/O Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing multi-site distributed storage systems experience significant latency spikes during common snapshot creation due to I/O operations, which can disrupt business operations and exceed networking protocol timeouts, especially in high availability pairs with synchronous replicated datasets.
Innovation Solution
Optimizations such as batch forming synchronous replicated datasets, CP coalescing, asynchronous CP utilization, and snapshot tag meta file growth are employed to minimize I/O latency during common snapshot creation, maintaining file system consistency and utilizing multithreading for faster resynchronization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If common snapshot creation is performed in synchronous replicated datasets, then data consistency between primary and secondary storage sites is ensured, but I/O latency increases significantly
Solution Approach 1:
The system segments the common snapshot creation process into multiple independent threads, each handling a portion of the storage objects. This allows parallel processing of snapshot operations across different data sets, reducing the total time I/O operations are blocked while maintaining consistency across all segments through coordinated completion signals.
Solution Approach 2:
The system performs preliminary actions by pre-allocating resources and preparing thread pools before snapshot creation begins. Metadata structures are pre-initialized and resource locks are pre-acquired where possible, so that when snapshot creation starts, the system can immediately begin parallel processing without additional setup overhead that would increase I/O latency.
2Productivity
If batch snapshot create operation is performed in parallel multiple threads, then processing speed is improved, but system complexity increases
Solution Approach 1:
The system merges multiple thread management operations into a unified thread pool framework. All parallel snapshot creation threads share common resource pools, synchronization mechanisms, and completion tracking structures. This consolidation reduces the overhead of managing separate thread structures for each snapshot operation while maintaining high parallel processing speed.
Solution Approach 2:
The snapshot creation system implements universal, reusable data structures and functions that serve multiple purposes across different snapshot operations. Metadata structures are designed to be generic and can handle various types of storage objects, and the thread management system can handle different snapshot scenarios with the same core logic, reducing overall system complexity despite high parallelism.
3Adaptability or versatility
If independent workflow is initiated for each storage object, then snapshot creation flexibility is improved, but coordination overhead increases
Solution Approach 1:
The system implements feedback mechanisms where each independent thread workflow reports its status, resource requirements, and completion state to a central coordinator. This feedback allows the coordinator to dynamically adjust resource allocation and synchronize completion across all workflows without requiring rigid pre-coordination, reducing overhead while maintaining flexibility. The coordinator receives completion signals and triggers the next phase of snapshot creation only when all workflows are ready.
Data Source
AI summary
Multi-site distributed storage systems and computer-implemented methods are described for improving a resumption time of input/output (I/O) operations during a common snapshot process for storage objects. A computer-implemented method comprises performing a baseline transfer from at least one storage object of a first storage node to at least one replicated storage object of a second storage node, starting the common snapshot process including stop processing of I/O operations, performing a snapshot create operation on the primary storage site for the at least one storage object of the first storage node, resuming processing of I/O operations, and assigning a new universal unique identifier (UUID) to the at least one storage object of the second storage node after resuming processing of I/O operations with the new UUID to identify when file system contents are different than the baseline transfer.


