Replication Error Neutralization via Dynamic Lock and State Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Synchronous replication systems face challenges in maintaining data consistency and zero recovery point objective (RPO) due to replication errors, especially when errors occur on both primary and secondary storage objects, leading to potential divergence and loss of sync state.
Innovation Solution
The system dynamically allocates and recycles file range locks to maintain the order of overlapping writes, handles misaligned holes and writes beyond the end of a file through a quick reconcile process, and uses a failed ops cache to manage retry operations, ensuring that synchronous replication remains in sync even with errors by comparing and matching error types.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If synchronous replication is implemented to ensure data consistency and zero RPO, then data protection level is improved, but system complexity increases due to error handling and coordination between primary and secondary storage devices
Solution Approach 1:
A replication manager component is introduced as an intermediary between the primary storage device and secondary storage device. This manager coordinates replication operations, handles error matching and neutralization, and manages the synchronization state, thereby reducing the complexity burden on individual storage devices while maintaining zero RPO guarantees
Solution Approach 2:
The system implements a feedback mechanism where error information from both primary and secondary storage devices is collected, compared, and used to determine whether to neutralize errors or transition to async replication. This feedback loop enables automatic adaptation to replication status without manual intervention
2Reliability
If error neutralization is implemented to maintain sync state, then replication reliability is improved, but measurement precision of replication status deteriorates due to error masking
Solution Approach 1:
The system replaces simple binary sync/async state indicators with a more sophisticated error-state tracking mechanism. By substituting basic status flags with detailed error information collection and matching, the system can make more informed decisions about replication state while maintaining accuracy through structured error comparison
3Reliability
If synchronous replication is used to guarantee zero RPO, then data consistency is improved, but speed of operation acknowledgment deteriorates due to waiting for secondary device confirmation
Solution Approach 1:
The replication mode is made dynamic rather than static. The system can automatically transition between synchronous and asynchronous replication based on real-time error conditions and replication status, allowing it to optimize between consistency guarantees and operation speed depending on the current system state
4Manufacturing precision
If file range locks are dynamically allocated and recycles to maintain write order, then manufacturing precision of data ordering is improved, but device complexity increases due to lock management overhead
Solution Approach 1:
File range locks are implemented with a discard-and-recover pattern where locks are allocated when needed for maintaining write order, used temporarily during the critical replication window, and then released back to the pool. This approach maintains precise ordering where necessary while minimizing the overall lock management overhead through efficient resource recycling
Data Source
AI summary
Techniques are provided for neutralizing replication errors. An operation is executed upon a first storage object and is replicated as a replicated operation for execution upon a second storage object. A first error may be received for the replicated operation. Instead of transitioning to an out of sync state and aborting the operation, a wait is performed until a result of the attempted execution of the operation is received. If the first error is the same as a second error returned for the operation, then the operation and replicated operation are considered successful and a synchronous replication relationship is kept in sync. If the first error and the second error are different errors, then an error response is returned for the operation and the synchronous replication relationship is transitioned to out of sync.


