Cross-Region Replication Cleanup Using Concurrent Object Deletion
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Cross-region replication during disaster recovery is timing critical, with large amounts of data stored in Object Store requiring cleanup, which can exceed the required Recovery Point Objective (RPO) and incur unnecessary costs and resource utilization inefficiencies.
Innovation Solution
Concurrent and non-blocking replication object deletion techniques are employed, where a cleanup pipeline runs in parallel with the replication pipeline, performing per-checkpoint cleanup and allowing restarts from checkpoints or the beginning based on failure type, using generation numbers to distinguish objects.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If objects are deleted after replication completes, then data consistency is maintained, but cleanup time exceeds Recovery Point Objective and causes downtime
Solution Approach 1:
The deletion pipeline performs object deletion in advance during the replication process itself, specifically deleting objects that have reached the last pipeline stage. This preliminary deletion action occurs before replication completes, eliminating the need for post-replication cleanup and ensuring cleanup time stays within RPO requirements while maintaining data consistency through checkpoint-based coordination.
Solution Approach 2:
The deletion pipeline runs concurrently with the replication pipeline, maintaining continuous useful action throughout the replication process. Instead of pausing replication to perform cleanup, the system continuously deletes eligible objects in parallel, maximizing resource utilization and ensuring cleanup operations complete within the required time window without causing downtime.
2Productivity
If objects are deleted during replication, then resource utilization improves, but data consistency may be compromised
Solution Approach 1:
The system implements feedback mechanisms through checkpoints that track replication progress and object deletion status. The deletion pipeline receives feedback about which objects have reached the last pipeline stage and are safe to delete, while the replication pipeline receives feedback about deletion status to maintain consistency. This bidirectional feedback ensures data consistency is preserved while enabling concurrent deletion operations that improve resource utilization.
Solution Approach 2:
Checkpoints serve as intermediaries between the replication and deletion pipelines, coordinating their operations to maintain data consistency. The checkpoints track the state of objects and mediate between replication actions and deletion actions, ensuring that objects are only deleted when it is safe to do so. This intermediary mechanism enables concurrent operations while preserving reliability.
3Device complexity
If cleanup is performed sequentially after replication, then simplicity is maintained, but cleanup time and costs increase
Solution Approach 1:
The system segments the replication process into multiple pipeline stages, with the deletion pipeline operating on objects that have reached the last stage. This segmentation allows deletion operations to be performed on specific subsets of objects concurrently with replication, rather than requiring sequential cleanup of all objects. The segmented approach maintains manageable complexity while dramatically reducing total cleanup time and associated costs.
Data Source
AI summary
Techniques are described for enabling concurrent and non-blocking replication object deletion during cross-region replications. In some embodiments, in a target file system, a target replication pipeline as part of a cross-region replication, and a deletion pipeline operate in parallel. The deletion pipeline deletes processed objects reaching the last pipeline stage of the target replication pipeline after each checkpoint in the target replication pipeline. In some embodiments, after a non-recoverable failure during the cross-region replication, the cross-region replication can be restarted from the beginning (i.e., fresh restart) without waiting for its unused objects in the Object Store to be deleted by utilizing a generation number associated with each object to delete the unused objects in a background process while allowing deleting processed objects as normal for the freshly restarted cross-region replication.


