In-Memory Write Tracking for Low-RPO Asynchronous Replication
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing asynchronous replication processes in storage systems are slow and resource-intensive due to the need to service snap differential requests, leading to high recovery point objectives (RPOs) and impacting IO performance.
Innovation Solution
A storage system tracks write requests and snapshot creation/deletion in memory by recording offsets and lengths of writes in its data cache, allowing quick identification and replication of modified areas between replication intervals.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If snap differential requests are serviced to identify data differences between snapshots, then data replication accuracy is improved, but system performance deteriorates due to slow and resource-intensive processing
Solution Approach 1:
The patent pre-generates and stores bitmap data representing write operations in volatile memory before replication is needed. This preliminary action eliminates the need for slow snap differential requests during replication, as the bitmap data is already prepared and can be quickly applied to identify and replicate only the changed data blocks.
Solution Approach 2:
The patent creates a simplified copy of write operation information in the form of bitmap data stored in volatile memory. This copy contains essential information about which data blocks have been modified, allowing the system to identify data differences without performing complex snap differential calculations, thereby improving processing speed while maintaining accuracy.
2Reliability
If snap differential requests are serviced to obtain data differences, then replication completeness is improved, but resource consumption increases due to multiple pass walks and cache flushing
Solution Approach 1:
The system pre-computes and stores bitmap representations of write operations in volatile memory during normal operation. This preliminary computation captures all write, overwrite, and delete operations, ensuring replication completeness is achieved without requiring resource-intensive snap differential requests and multiple pass walks during the replication process.
Solution Approach 2:
The patent extracts only the essential information about data modifications into a compact bitmap structure stored in volatile memory. This extraction eliminates the need to walk through entire data structures multiple times, as the bitmap directly identifies which data blocks need to be replicated, reducing processing resources while maintaining completeness.
3Stability of the object's composition
If snap data and dirty pages are flushed to mapper layer for snap diff requests, then data consistency is improved, but write performance deteriorates due to write splits in mapper layer
Solution Approach 1:
The patent pre-records write operation information in bitmap data in volatile memory before replication is needed. This preliminary recording maintains data consistency by capturing all write operations without requiring subsequent cache flushing and mapper layer processing, thereby avoiding write splits and maintaining high write performance.
Solution Approach 2:
The patent introduces bitmap data stored in volatile memory as an intermediary between the cache layer and mapper layer. This intermediary contains pre-processed information about write operations, allowing the system to identify data differences without forcing cache flushes and mapper layer processing, thus maintaining both data consistency and write performance.
Data Source
AI summary
Techniques for tracking incoming writes and snap creation/deletion in memory to improve asynchronous replication and support lower RPOs. In the techniques, a storage system uses its data cache to receive data specified in write requests issued by storage clients, while dedicating an amount of the cache memory to track and record offsets/lengths of writes directed to source volumes. At the end of each replication interval, the storage system obtains a list of the recorded offsets/lengths for each source volume, identifies and reads areas of the source volume that were written to during the replication interval using the list, and replicates data from the identified areas to a destination volume. Because the list of recorded offsets/lengths of incoming writes for the source volume is compiled and available from volatile cache memory, it can be generated and accessed very quickly using reduced processing/memory resources, allowing for lower RPOs in asynchronous replication processes.


