Clock Synchronization for Active-Active Storage Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional data replication systems in active-active configurations face challenges in coordinating time-to-live (TTL) values between storage systems without explicit clock synchronization, leading to difficulties in managing TTL grants and IO operations during communication failures.
Innovation Solution
Implementing a clock synchronization method where one storage system sends a synchronization message to another, recording local times and computing an estimate of the time difference to synchronize clocks, ensuring accurate TTL management and IO operation coordination across systems.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If asynchronous replication is used to transfer data between storage systems, then data can be replicated with minimal impact on source system performance, but coordination of TTL values between systems becomes difficult without explicit clock synchronization
Solution Approach 1:
The patent introduces a timestamp intermediary mechanism that acts as a mediator between distributed storage systems. Each storage system generates timestamps for data blocks, and these timestamps serve as the intermediary reference for coordinating TTL values across systems without requiring direct clock synchronization. The timestamp acts as a universal reference point that both systems can use to determine data validity and expiration independently yet consistently.
Solution Approach 2:
The patent implements feedback through timestamp exchange between storage systems. Each system sends its current timestamp to the other system, and receives timestamps for corresponding data blocks. This feedback loop allows each system to adjust its understanding of data age and TTL expiration based on the peer system's timestamp information, enabling coordinated TTL management without centralized clock synchronization.
2Reliability
If synchronous replication is used to mirror host writes between storage systems, then data consistency is maintained, but system performance and write throughput are reduced
Solution Approach 1:
The patent applies preliminary action by pre-generating and attaching timestamps to data blocks at the source system before replication occurs. This timestamp is embedded in the replicated data, allowing the target system to independently determine TTL expiration without waiting for acknowledgment or coordination with the source system. This preliminary timestamp assignment enables asynchronous replication to achieve data consistency comparable to synchronous replication while maintaining high write throughput.
3Device complexity
If storage systems operate independently without clock synchronization, then system complexity is reduced, but accurate coordination of TTL values and IO operations during communication failures becomes difficult
Solution Approach 1:
The patent enables self-service by allowing each storage system to independently generate, attach, and use timestamps for its own data blocks. Each system autonomously determines TTL expiration based on its local timestamp and the received peer timestamp, without requiring continuous clock synchronization or centralized coordination. This self-service approach maintains low system complexity while achieving reliable TTL grant management even during communication failures.
Data Source
AI summary
A first storage system sends a clock synchronization message to a second storage system. The first storage system records a first value of a local time in the first storage system in conjunction with sending the clock synchronization message, and records a second value of the local time in the first storage system in conjunction with receipt of a response to the clock synchronization message from the second storage system. The response comprises a value of a local time in the second storage system. The first storage system computes an estimate of a difference between the local times using the recorded first and second values of the local time in the first storage system and the received value of the local time in the second storage system, and synchronizes the local time in the first storage system with the local time in the second storage using the computed estimate.


