IP Library Granted Patent US 11,360,693
Granted Patent B2
US 11,360,693 · App. 16/884,561 · Granted Jun 14, 2022

Identifying point-in-time asynchronous application data

Inventors: Brett A. Quinn (Lincoln, RI); Douglas E. LeCrone (Hopkinton, MA)
Assignee: EMC IP Holding Company LLC
G06F3/0653G06F3/061G06F3/067G06F3/0617H04L67/1097
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 11,360,693
App. No.
16/884,561
Granted
Jun 14, 2022
Kind
B2
Abstract

Maintaining a timestamp indicating when data transferred to a remote storage system was written by a host at a local storage system includes writing a timestamp file at the local storage system, the timestamp file being part of a first chunk of data corresponding to current writes to the local storage system by the host, providing a second chunk at the local storage system, the second chunk being different from the first chunk and corresponding to writes by the host that were begun prior to beginning any of the writes for the first chunk, and transferring the writes for the second chunk to the remote storage system. Each chunk may be assigned a sequence number. The remote storage system may acknowledge receipt after receiving all data for the second chunk. The second chunk may be written to the remote storage system after receiving all data for the second chunk.

Claims (34)

1. A method of maintaining a timestamp indicating when data transferred to a remote storage system was written by a host at a local storage system, comprising:

setting a sequence number to a first value;

the host writing data to a chunk of data on the local storage system only while the sequence number equals the first value;

periodically writing a timestamp file to the chunk of data while the sequence number equals the first value, wherein timestamp information in the timestamp file includes a current date and time at the local storage system that is independent of when the host writes data to the chunk of data;

setting the sequence number to a second value different from the first value;

the host writing data to different chunk of data at the local storage system only after the sequence number is set to the second value; and

transferring the data for the chunk from the local storage system to the remote storage system only after the sequence number is set to the second value.

2. A method, according to claim 1 , wherein the remote storage system acknowledges receipt after receiving all data for the chunk.

3. A method, according to claim 1 , wherein timestamp information for particular data is retrieved at the remote storage system by correlating the sequence number for the particular data with a particular timestamp file.

4. A method, according to claim 1 , wherein the timestamp information for particular data is retrieved at the remote storage system by retrieving a backup of the timestamp file having a same version as the particular data.

5. A method, according to claim 4 , wherein data at the remote storage system is backed up using a data protection product that maintains multiple versions of the data.

6. A method, according to claim 1 , wherein the timestamp information is written by the host.

7. A non-transitory computer readable medium containing software that maintains a timestamp indicating when data transferred to a remote storage system was written by a host at a local storage system, the software comprising:

executable code that sets a sequence number to a first value;

executable code that accepts data written by the host to a chunk of data on the local storage system only while the sequence number equals the first value;

executable code that periodically writes a timestamp file to the chunk of data while the sequence number equals the first value, wherein timestamp information in the timestamp file includes a current date and time at the local storage system that is independent of when the host writes data to the chunk of data;

executable code that sets the sequence number to a second value different from the first value;

executable code that accepts the host writing data to different chunk of data at the local storage system only after the sequence number is set to the second value; and

executable code that transfers the data for the chunk from the local storage system to the remote storage system only after the sequence number is set to the second value.

8. A non-transitory computer readable medium, according to claim 7 , wherein the remote storage system acknowledges receipt after receiving all data for the chunk.

9. A non-transitory computer readable medium, according to claim 7 , wherein timestamp information for particular data is retrieved at the remote storage system by correlating the sequence number for the particular data with a particular timestamp file.

10. A non-transitory computer readable medium, according to claim 7 , wherein the timestamp information for particular data is retrieved at the remote storage system by retrieving a backup of the timestamp file having a same version as the particular data.

11. A non-transitory computer readable medium, according to claim 10 , wherein data at the remote storage system is backed up using a data protection product that maintains multiple versions of the data.

12. A non-transitory computer readable medium, according to claim 7 , wherein the timestamp information is written by the host.

13. A storage system, comprising:

a plurality of storage units that store data;

a plurality of disk adapters coupled to the storage units;

a memory coupled to the disk adapters; and

a plurality of host adapters coupled to the memory that provide connectivity to a host, wherein the host adapters and the disk adapters are provided on one or more director boards having at least one processor thereon and having a non-transitory computer readable medium containing software that maintains a timestamp indicating when data transferred to a remote storage system coupled to the storage system was written by the host to the storage system, the software including executable code that sets a sequence number to a first value, executable code that accepts data written by the host to a chunk of data on the storage system only while the sequence number equals the first value, executable code that periodically writes a timestamp file to the chunk of data while the sequence number equals the first value, wherein timestamp information in the timestamp file includes a current date and time at the storage system that is independent of when the host writes data to the chunk of data, executable code that sets the sequence number to a second value different from the first value, executable code that accepts the host writing data to different chunk of data at the storage system only after the sequence number is set to the second value, and executable code that transfers the data for the chunk from the storage system to the remote storage system only after the sequence number is set to the second value.

14. A storage system, according to claim 13 , wherein the storage system receives an acknowledgement all data for the chunk has been transmitted.

15. A storage system, according to claim 13 , wherein timestamp information for particular data is retrieved at the remote storage system by correlating the sequence number for the particular data with a particular timestamp file.

16. A storage system, according to claim 13 , wherein the timestamp information for particular data is retrieved at the remote storage system by retrieving a backup of the timestamp file having a same version as the particular data.

17. A storage system, according to claim 16 , wherein data at the remote storage system is backed up using a data protection product that maintains multiple versions of the data.

18. A storage system, according to claim 13 , wherein the timestamp information is written by the host.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2020
From: QUINN, BRETT A.; LECRONE, DOUGLAS E.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052762/0035 →
Continuity (1)
Related Publication 20210373794A1 · Dec 2, 2021