IP Library Granted Patent US 9,367,457
Granted Patent B1
US 9,367,457 · App. 13/720,871 · Granted Jun 14, 2016

Systems and methods for enabling write-back caching and replication at different abstraction layers

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 9,367,457
App. No.
13/720,871
Granted
Jun 14, 2016
Kind
B1
Abstract

A computer-implemented method for enabling write-back caching and replication at different abstraction layers may include (1) identifying a cache abstraction layer that implements write-back caching to selectively cache at least one write to a backing store, (2) identifying a replication abstraction layer that replicates the backing store to a secondary storage system by replicating writes committed to the backing store to the secondary storage system, (3) receiving a request to create a point-in-time image of the backing store at the secondary storage system at a point at which the writes committed to the backing store are point-in-time consistent, (4) committing the cached write to the backing store to ensure that the writes committed to the backing store are point-in-time consistent, (5) marking the point at which the writes committed to the backing store are point-in-time consistent. Various other methods, systems, and computer-readable media are also disclosed.

Claims (81)

1. A computer-implemented method for enabling write-back caching and replication at different abstraction layers, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying a cache abstraction layer that implements write-back caching to selectively store in a cache at least one write from an application to a backing store, wherein the cache abstraction layer is not a part of the application;

identifying a replication abstraction layer that replicates the backing store to a secondary store at a remote secondary storage system by replicating writes committed to the backing store from the backing store to the secondary store at the remote secondary storage system, wherein:

the cache abstraction layer is not a part of the replication abstraction layer;

the replication abstraction layer is not a part of the cache abstraction layer;

receiving a request to create a point-in-time image of the backing store from data stored within the secondary store at the remote secondary storage system at a point at which the data stored within the secondary store represents a copy of the backing store wherein the writes committed to the backing store are point-in-time consistent;

committing, in response to the request, the write from the cache to the backing store to ensure that the writes committed to the backing store are point-in-time consistent;

marking, upon committing the write from the cache to the backing store, the point at which the writes committed to the backing store are point-in-time consistent so that, after the replication abstraction layer replicates the write to the secondary store at the remote secondary storage system, the point at which the data stored within the secondary store represents the copy of the backing store wherein the writes committed to the backing store are point-in-time consistent can be determined at the remote secondary storage system and the point-in-time image of the backing store can be created from the data stored within the secondary store, wherein the steps of committing the write and marking the point at which the writes committed to the backing store are point-in-time consistent are performed by the cache abstraction layer.

2. The method of claim 1 , wherein committing the write from the cache to the backing store comprises:

flushing the write from the cache to the backing store;

caching, while the write is flushed from the cache to the backing store, subsequent writes to the backing store at the cache abstraction layer, wherein the subsequent writes are not committed to the backing store until the write is flushed to the backing store.

3. The method of claim 1 , wherein committing the write to the backing store comprises:

flushing the write from the cache to the backing store;

implementing, while the write is flushed from the cache to the backing store, write-through caching at the cache abstraction layer to cache subsequent writes to the backing store.

4. The method of claim 1 , wherein:

marking the point at which the writes committed to the backing store are point-in-time consistent comprises writing a marker to the backing store at the point at which the writes committed to the backing store are point-in-time consistent;

the replication abstraction layer is configured to:

replicate the marker from the backing store to the secondary store at the remote secondary storage system;

interpret, at the remote secondary storage system, the replicated marker as an indication of the point at which the data stored within the secondary store represents the copy of the backing store wherein the writes committed to the backing store are point-in-time consistent.

5. The method of claim 1 , wherein marking the point at which the writes committed to the backing store are point-in-time consistent comprises:

sending a message to the replication abstraction layer that indicates that the writes committed to the backing store are point-in-time consistent;

relaying, via the replication abstraction layer, the message to the remote secondary storage system.

6. The method of claim 1 , further comprising:

determining, at the remote secondary storage system, the point at which the data stored within the secondary store represents the copy of the backing store wherein the writes committed to the backing store are point-in-time consistent;

creating, based on the determination, the point-in-time image of the backing store from the data stored within the secondary store.

7. The method of claim 1 , wherein:

the cache abstraction layer comprises a volume manager;

the replication abstraction layer comprises an intelligent storage array.

8. The method of claim 1 , wherein:

the cache abstraction layer comprises a file system manager;

the replication abstraction layer comprises an intelligent storage array.

9. The method of claim 1 , wherein:

the cache abstraction layer comprises a file system manager;

the replication abstraction layer comprises a volume manager.

10. A system for enabling write-back caching and replication at different abstraction layers, the system comprising:

an identification module programmed to:

identify a cache abstraction layer that implements write-back caching to selectively store in a cache at least one write from an application to a backing store, wherein the cache abstraction layer is not a part of the application;

identify a replication abstraction layer that replicates the backing store to a secondary store at a remote secondary storage system by replicating writes committed to the backing store from the backing store to the secondary store at the remote secondary storage system, wherein:

the cache abstraction layer is not a part of the replication abstraction layer;

the replication abstraction layer is not a part of the cache abstraction layer;

a receiving module programmed to receive a request to create a point-in-time image of the backing store from data stored within the secondary store at the remote secondary storage system at a point at which the data stored within the secondary store represents a copy of the backing store wherein the writes committed to the backing store are point-in-time consistent;

a committing module programmed to commit, in response to the request, the write from the cache to the backing store to ensure that the writes committed to the backing store are point-in-time consistent;

a marking module programmed to mark, upon committing the write from the cache to the backing store, the point at which the writes committed to the backing store are point-in-time consistent so that, after the replication abstraction layer replicates the write to the secondary store at the remote secondary storage system, the point at which the data stored within the secondary store represents the copy of the backing store wherein the writes committed to the backing store are point-in-time consistent can be determined at the remote secondary storage system and the point-in-time image of the backing store can be created from the data stored within the secondary store;

at least one processor configured to execute the identification module, the receiving module, the committing module, and the marking module, wherein the committing module and the marking module are part of the cache abstraction layer.

11. The system of claim 10 , wherein the committing module is programmed to commit the write to the backing store by:

flushing the write from the cache to the backing store;

caching, while the write is flushed from the cache to the backing store, subsequent writes to the backing store at the cache abstraction layer, wherein the subsequent writes are not committed to the backing store until the write is flushed to the backing store.

12. The system of claim 10 , wherein the committing module is programmed to commit the write to the backing store by:

flushing the write from the cache to the backing store;

implementing, while the write is flushed from the cache to the backing store, write-through caching at the cache abstraction layer to cache subsequent writes to the backing store.

13. The system of claim 10 , wherein:

the marking module is programmed to mark the point at which the writes committed to the backing store are point-in-time consistent by writing a marker to the backing store at the point at which the writes committed to the backing store are point-in-time consistent;

the replication abstraction layer is configured to:

replicate the marker from the backing store to the secondary store at the remote secondary storage system;

interpret, at the remote secondary storage system, the replicated marker as an indication of the point at which the data stored within the secondary store represents the copy of the backing store wherein the writes committed to the backing store are point-in-time consistent.

14. The system of claim 10 , wherein the marking module is programmed to mark the point at which the writes committed to the backing store are point-in-time consistent by:

sending a message to the replication abstraction layer that indicates that the writes committed to the backing store are point-in-time consistent;

relaying, via the replication abstraction layer, the message to the remote secondary storage system.

15. The system of claim 10 , further comprising a backup module programmed to:

determine, at the remote secondary storage system, the point at which the data stored within the secondary store represents the copy of the backing store wherein the writes committed to the backing store are point-in-time consistent;

create, based on the determination, the point-in-time image of the backing store from the data stored within the secondary store.

16. The system of claim 10 , wherein:

the cache abstraction layer comprises a volume manager;

the replication abstraction layer comprises an intelligent storage array.

17. The system of claim 10 , wherein:

the cache abstraction layer comprises a file system manager;

the replication abstraction layer comprises an intelligent storage array.

18. The system of claim 10 , wherein:

the cache abstraction layer comprises a file system manager;

the replication abstraction layer comprises a volume manager.

19. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

identify a cache abstraction layer that implements write-back caching to selectively store in a cache at least one write from an application to a backing store, wherein the cache abstraction layer is not a part of the application;

identify a replication abstraction layer that replicates the backing store to a secondary store at a remote secondary storage system by replicating writes committed to the backing store from the backing store to the secondary store at the remote secondary storage system, wherein:

the cache abstraction layer is not a part of the replication abstraction layer;

the replication abstraction layer is not a part of the cache abstraction layer;

receive a request to create a point-in-time image of the backing store from data stored within the secondary store at the remote secondary storage system at a point at which the data stored within the secondary store represents a copy of the backing store wherein the writes committed to the backing store are point-in-time consistent;

commit, in response to the request, the write from the cache to the backing store to ensure that the writes committed to the backing store are point-in-time consistent;

mark, upon committing the write from the cache to the backing store, the point at which the writes committed to the backing store are point-in-time consistent so that, after the replication abstraction layer replicates the write to the secondary store at the remote secondary storage system, the point at which the data stored within the secondary store represents the copy of the backing store wherein the writes committed to the backing store are point-in-time consistent can be determined at the remote secondary storage system and the point-in-time image of the backing store can be created from the data stored within the secondary store, wherein the steps of committing the write and marking the point at which the writes committed to the backing store are point-in-time consistent are performed by the cache abstraction layer.

20. The non-transitory computer-readable medium of claim 19 , wherein the one or more computer-executable instructions cause the computing device to commit the write to the backing store by:

flushing the write from the cache to the backing store;

caching, while the write is flushed from the cache to the backing store, subsequent writes to the backing store at the cache abstraction layer, wherein the subsequent writes are not committed to the backing store until the write is flushed to the backing store.

Assignments (14)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
SECURITY INTEREST Recorded Mar 17, 2025
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070530/0497 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038483/0203 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037693/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2012
From: PENDHARKAR, NIRANJAN
To: SYMANTEC CORPORATION
Reel/Frame 029504/0689 →