IP Library Granted Patent US 12,367,151
Granted Patent B2
US 12,367,151 · App. 18/208,946 · Granted Jul 22, 2025

Data path strategies for replica volumes

Inventors: Vasudevan Subramanian (Chapel Hill, NC); Vamsi K. Vankamamidi (Hopkinton, MA)
Assignee: Dell Products L.P.
G06F12/0891G06F12/0882G06F12/123
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,367,151
App. No.
18/208,946
Granted
Jul 22, 2025
Kind
B2
Abstract

Techniques providing data path strategies for improving storage performance at DR sites. The techniques include receiving, in an asynchronous replication process, a large replication data transfer including data changes of a production volume since the last synchronization to a replica volume, partitioning the replication data into multiple small write requests, tagging each small write request as a write request to the replica volume, and performing early evicting, from cache memory, all cache pages used to cache host data specified in the small write requests; deep compression of contiguous host data specified in the small write requests; stream separation on the small write requests, each small write request being tagged as corresponding to a specific production site; and/or flushing host data having the same retention period to a specific region of physical storage space for the replica volume, each small write request being tagged with hint information indicating the retention period.

Claims (47)

1. A method of improving performance and efficiency of storage systems deployed at disaster recovery (DR) sites, comprising:

receiving, at a destination node of a DR site from a source node at a production site, a large transfer of replication data including accumulated changes made to data of a production volume stored at the production site since a most recent synchronization of the production volume to a replica volume stored at the DR site in an asynchronous replication process, wherein any replication data stored in the replica volume at the DR site is written more frequently than the replication data is read;

partitioning the large transfer of replication data into a plurality of small write requests directed toward the replica volume stored at the DR site;

tagging each small write request of the plurality of small write requests with multiple tags to obtain a plurality of multi-tagged small write requests, the multiple tags including a first tag indicating a target type of a write target of the small write request, a second tag identifying the production site where the production volume is stored, and a third tag containing hint information pertaining to a data retention period of the replication data stored at the DR site, the write target of the small write request being the replica volume at the DR site, the target type of the write target being the replica volume at the DR site of the production volume at the production site; and

in response to servicing the plurality of multi-tagged small write requests, performing at least one of:

stream separation on the plurality of multi-tagged small write requests, the production site being a specific production site, the stream separation being performed based on the target type of the write target being the replica of the production volume as indicated by the first tag, and the production site being the specific production site as identified by the second tag; and

flushing the replication data stored in the replica volume at the DR site having an identical data retention period to a specific region of physical storage space for the replica volume, the flushing of the replication data being performed based on the target type of the write target being the replica at the DR site of the production volume at the production site as indicated by the first tag, and the hint information pertaining to the data retention period of the replication data stored at the DR site as contained in the third tag.

2. The method of claim 1 comprising:

in response to servicing the plurality of multi-tagged small write requests, further performing at least one of:

early evicting, from cache memory, all cache pages used to cache the replication data specified in the plurality of multi-tagged small write requests, the early evicting being performed based on the target type of the write request being the replica of the production volume as indicated by the first tag; and

deep compression of a large amount of logically contiguous blocks in the replication data specified in the plurality of multi-tagged small write requests, the deep compression being performed, by the destination node, at a high compression ratio before the large amount of logically contiguous blocks is flushed to the replica volume, the deep compression being performed based on the target type of the write request being the replica of the production volume as indicated by the first tag.

3. The method of claim 2 wherein the performing early evicting, from the cache memory, all cache pages used to cache the replication data specified in the plurality of multi-tagged small write requests includes writing the changes made to the data of the production volume to a cache page in the cache memory.

4. The method of claim 3 wherein the performing early evicting, from the cache memory, all cache pages used to cache the replication data specified in the plurality of multi-tagged small write requests includes flushing the changes from the cache memory to the replica volume, and evicting the cache page from the cache memory in response to flushing the changes from the cache memory to the replica volume.

5. The method of claim 4 wherein the performing early evicting, from the cache memory, all cache pages used to cache the replication data specified in the plurality of multi-tagged small write requests includes returning the cache page to a free page list of the cache memory.

6. The method of claim 4 wherein the performing early evicting, from the cache memory, all cache pages used to cache the replication data specified in the plurality of multi-tagged small write requests includes placing the cache page at a head of a least recently used (LRU) list of the cache memory.

7. The method of claim 2 wherein the performing deep compression of the large amount of logically contiguous blocks in the replication data specified in the plurality of multi-tagged small write requests includes performing inline deep compression of the large amount of logically contiguous blocks by the destination node.

8. The method of claim 2 wherein the performing deep compression of the large amount of logically contiguous blocks in the replication data specified in the plurality of multi-tagged small write requests includes writing a compressed version of the large amount of logically contiguous blocks to a cache page in the cache memory.

9. The method of claim 8 wherein the performing deep compression of the large amount of logically contiguous blocks in the replication data specified in the plurality of multi-tagged small write requests includes flushing the compressed version of the large amount of logically contiguous blocks from the cache memory to the replica volume.

10. The method of claim 1 wherein the performing stream separation on the plurality of multi-tagged small write requests includes tagging each multi-tagged small write request with the second tag, the second tag including a production site identifier (ID) identifying the specific production site where the production volume is stored.

11. The method of claim 10 wherein the performing stream separation on the plurality of multi-tagged small write requests includes performing inline stream separation on the plurality of multi-tagged small write requests based at least on the production site ID included in the second tag.

12. The method of claim 11 wherein the production site mandates a specific class of service (CoS) for providing backup or remote storage of replication data, and wherein the performing stream separation on the plurality of multi-tagged small write requests includes, for each stream of small write request transactions resulting from performing the stream separation, performing write operations to write, to the replica volume, the changes made to the data of the production volume for subsequent storage to a storage tier that conforms to the specific CoS mandated by the production site.

13. The method of claim 1 wherein the performing flushing replication data having the identical retention period to the specific region of physical storage space for the replica volume includes tagging each multi-tagged small write request with the third tag containing the hint information pertaining to the identical retention period of the replication data.

14. A system for improving performance and efficiency of storage systems deployed at disaster recovery (DR) sites, comprising:

a memory; and

processing circuitry configured to execute program instructions out of the memory to:

receive, at a destination node of a DR site from a source node at a production site, a large transfer of replication data including accumulated changes made to data of a production volume stored at the production site since a most recent synchronization of the production volume to a replica volume stored at the DR site in an asynchronous replication process, wherein any replication data stored in the replica volume at the DR site is written more frequently than the replication data is read;

partition the large transfer of replication data into a plurality of small write requests directed toward the replica volume stored at the DR site;

tag each small write request of the plurality of small write requests with multiple tags to obtain a plurality of multi-tagged small write requests, the multiple tags including a first tag indicating a target type of a write target of the small write request, a second tag identifying the production site where the production volume is stored, and a third tag containing hint information pertaining to a data retention period of the replication data stored at the DR site, the write target of the small write request being the replica volume at the DR site, the target type of the write target being the replica at the DR site of the production volume at the production site; and

in response to servicing the plurality of multi-tagged small write requests, perform at least one of:

stream separation on the plurality of multi-tagged small write requests, the production site being a specific production site, the stream separation being performed based on the target type of the write target being the replica of the production volume as indicated by the first tag, and the production site being the specific production site as identified by the second tag; and

flushing the replication data stored in the replica volume at the DR site having an identical data retention period to a specific region of physical storage space for the replica volume, the flushing of the replication data being performed based on the target type of the write target being the replica at the DR site of the production volume at the production site as indicated by the first tag, and the hint information pertaining to the data retention period of the replication data stored at the DR site as contained in the third tag.

15. The system of claim 14 wherein the processing circuitry is configured to execute the program instructions out of the memory to:

write the changes made to the data of the production volume to a cache page in the cache memory; and

perform one of (i) returning the cache page to a free page list of the cache memory, and (ii) placing the cache page at a head of a least recently used (LRU) list of the cache memory.

16. The system of claim 14 wherein the processing circuitry is configured to execute the program instructions out of the memory to perform inline deep compression of a large amount of logically contiguous blocks in the replication data by the destination node, the inline deep compression being performed based on the target type of the write request being the replica of the production volume as indicated by the first tag.

17. The system of claim 14 wherein the processing circuitry is configured to execute the program instructions out of the memory to:

tag each multi-tagged small write request with the second tag, the second tag including a production site identifier (ID) identifying the specific production site where the production volume is stored; and

perform inline stream separation on the plurality of multi-tagged small write requests based at least on the production site ID included in the second tag.

18. The system of claim 14 wherein the processing circuitry is configured to execute the program instructions out of the memory to:

tag each multi-tagged small write request with the third tag containing the hint information pertaining to the data retention period of the replication data.

19. A computer program product including a set of non-transitory, computer-readable media having instructions that, when executed by processing circuitry, cause the processing circuitry to perform a method comprising:

receiving, at a destination node of a DR site from a source node at a production site, a large transfer of replication data including accumulated changes made to data of a production volume stored at the production site since a most recent synchronization of the production volume to a replica volume stored at the DR site in an asynchronous replication process, wherein any replication data stored in the replica volume at the DR site is written more frequently than the replication data is read;

partitioning the large transfer of replication data into a plurality of small write requests directed toward the replica volume stored at the DR site;

tagging each small write request of the plurality of small write requests with multiple tags to obtain a plurality of multi-tagged small write requests, the multiple tags including a first tag indicating a target type of a write target of the small write request, a second tag identifying the production site where the production volume is stored, and a third tag containing hint information pertaining to a data retention period of the replication data stored at the DR site, the write target of the small write request being the replica volume at the DR site, the target type of the write target being the replica at the DR site of the production volume at the production site; and

in response to servicing the plurality of multi-tagged small write requests, performing at least one of:

stream separation on the plurality of multi-tagged small write requests, the production site being a specific production site, the stream separation being performed based on the target type of the write target being the replica of the production volume as indicated by the first tag, and the production site being the specific production site as identified by the second tag; and

flushing the replication data stored in the replica volume at the DR site having an identical data retention period to a specific region of physical storage space for the replica volume, the flushing of the replication data being performed based on the target type of the write target being the replica at the DR site of the production volume at the production site as indicated by the first tag, and the hint information pertaining to the data retention period of the replication data stored at the DR site as contained in the third tag.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2023
From: SUBRAMANIAN, VASUDEVAN; VANKAMAMIDI, VAMSI K.
To: DELL PRODUCTS L.P.
Reel/Frame 064199/0594 →
Continuity (1)
Related Publication 20240419603A1 · Dec 19, 2024
References Cited (72)
US 5978791A · Farber · 1999 [cited by examiner]
US 6928442B2 · Farber · 2005 [cited by examiner]
US 7373506B2 · Asano · 2008 [cited by examiner]
US 7945539B2 · Farber · 2011 [cited by examiner]
US 8286019B2 · Murase · 2012 [cited by examiner]
US 8433869B1 · Natanzon · 2013 [cited by examiner]
US 8478955B1 · Natanzon · 2013 [cited by examiner]
US 8832399B1 · Natanzon · 2014 [cited by examiner]
US 8954667B2 · Dhuse · 2015 [cited by examiner]
US 8977593B1 · Natanzon · 2015 [cited by examiner]
US 9043548B2 · Grube · 2015 [cited by examiner]
US 9201732B2 · Resch · 2015 [cited by examiner]
US 9460185B2 · Swift · 2016 [cited by examiner]
US 9619179B2 · Milos · 2017 [cited by examiner]
US 9639295B1 · Natanzon · 2017 [cited by examiner]
US 9684593B1 · Chen et al. · 2017 [cited by applicant]
US 9990388B2 · Meinecke · 2018 [cited by examiner]
US 10331630B1 · da Silveira Junior · 2019 [cited by examiner]
US 10359935B2 · Resch · 2019 [cited by examiner]
US 10419537B1 · da Silveira Junior · 2019 [cited by examiner]
US 10459655B1 · Greenwood · 2019 [cited by examiner]
US 10481982B2 · Merriman · 2019 [cited by examiner]
US 10564847B1 · Taylor et al. · 2020 [cited by applicant]
US 10579273B2 · Hutchison · 2020 [cited by examiner]
US 10620850B1 · Xu et al. · 2020 [cited by applicant]
US 10712950B2 · Stefani · 2020 [cited by examiner]
US 10747465B2 · Shang et al. · 2020 [cited by applicant]
US 10768850B2 · Muniswamy-Reddy · 2020 [cited by examiner]
US 10956990B2 · Zhang · 2021 [cited by examiner]
US 11023157B2 · Greenwood · 2021 [cited by examiner]
US 11023488B1 · Bono · 2021 [cited by examiner]
US 11061931B2 · Sure · 2021 [cited by examiner]
US 11106538B2 · Merriman · 2021 [cited by examiner]
US 11226745B2 · Sharma · 2022 [cited by examiner]
US 11269745B2 · Lan · 2022 [cited by examiner]
US 11269776B2 · Chen · 2022 [cited by examiner]
US 11281387B2 · Tamilarasan et al. · 2022 [cited by applicant]
US 11288210B2 · Xu et al. · 2022 [cited by applicant]
US 11343314B1 · Muniswamy-Reddy · 2022 [cited by examiner]
US 11537312B2 · Shalom et al. · 2022 [cited by applicant]
US 11625169B2 · Chen et al. · 2023 [cited by applicant]
US 11635897B2 · Shani et al. · 2023 [cited by applicant]
US 11714753B2 · Roozbeh · 2023 [cited by examiner]
US 11733908B2 · Sun · 2023 [cited by examiner]
US 20020052884A1 · Farber · 2002 [cited by examiner]
US 20020169971A1 · Asano · 2002 [cited by examiner]
US 20030023847A1 · Ishibashi · 2003 [cited by examiner]
US 20050033769A1 · Mifune · 2005 [cited by examiner]
US 20070088961A1 · Asano · 2007 [cited by examiner]
US 20080066191A1 · Farber · 2008 [cited by examiner]
US 20080071855A1 · Farber · 2008 [cited by examiner]
US 20090083563A1 · Murase · 2009 [cited by examiner]
US 20110185141A1 · Dhuse · 2011 [cited by examiner]
US 20140344227A1 · Grube · 2014 [cited by examiner]
US 20140344617A1 · Resch · 2014 [cited by examiner]
US 20150039660A1 · Baptist · 2015 [cited by examiner]
US 20150039828A1 · Kazi · 2015 [cited by examiner]
US 20150039969A1 · Motwani · 2015 [cited by examiner]
US 20160371155A1 · Merriman · 2016 [cited by examiner]
US 20170068454A1 · Motwani · 2017 [cited by examiner]
US 20170286008A1 · Kim · 2017 [cited by examiner]
US 20200034053A1 · Sharma · 2020 [cited by examiner]
US 20200110831A1 · Sure · 2020 [cited by examiner]
US 20200252271A1 · Elliott, IV · 2020 [cited by applicant]
US 20220229734A1 · Seela et al. · 2022 [cited by applicant]
US 20220342766A1 · Brun-Cottan et al. · 2022 [cited by applicant]
US 20230384965A1 · Sun · 2023 [cited by examiner]
US 20240045887A1 · VanBenschoten · 2024 [cited by examiner]
US 20240070145A1 · VanBenschoten · 2024 [cited by examiner]
Flushing dirty data from a writeback cache area; Veritas Access Administrator's Guide; Aug. 12, 2018; retrieved from https://www.veritas.com/support/en_US/doc/130195696-130508010-0/va_731_v127965021-130508010 on Jun. 8,… [cited by examiner]
The Cache Memory Book Second Edition; Jim Handy; Jan. 13, 1998; ISBN 0123229804 (Year: 1998). [cited by examiner]
A. K. Pandey, A. Kumar, N. Malviya and B. Rajendran, “A Survey of Storage Replication Software,” 2014 3rd International Conference on Eco-friendly Computing and Communication Systems, Mangalore, India, 2014, pp. 45-50, … [cited by examiner]