IP Library Granted Patent US 9,934,242
Granted Patent B2
US 9,934,242 · App. 13/939,106 · Granted Apr 3, 2018

Replication of data between mirrored data sites

Inventors: Tad Hunt (Sunnyvale, CA); John Howe (Saratoga, CA)
Assignee: Exablox Corporation
G06F17/30174G06F11/1443G06F11/2064G06F11/2079G06F11/2094G06F11/2097G06F17/30575H04L67/1095G06F2201/855
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,934,242
App. No.
13/939,106
Granted
Apr 3, 2018
Kind
B2
Abstract

Computer-implemented methods and systems for replication of data between mirrored data sites are provided. An exemplary method may comprise receiving a data object at a mirrored data site, the mirrored data site including one or more data nodes. The data objects are replicated to the one or more data nodes internally. Then, a data object reference associated with the data object is generated. The reference referring to the data object is queued for transmission to all other mirrored data sites. The data object reference associated with the data object is transmitted to the other mirrored data sites. When the data object is received at each mirrored data site, it is replicated to one or more data nodes within the site. After transmitting the data object, the data object reference is discarded.

Claims (51)

1. A method for replication of data between mirrored data sites, the method comprising:

receiving a data object at a first mirrored data site including one or more data nodes;

replicating the data object to the one or more data nodes internally within the first mirrored data site;

generating a data object reference indicating a forthcoming transmission of the data object to a second mirrored data site, wherein the data object reference includes an identification of the first mirrored data site, which stores one or more replicas of the data object;

transmitting the data object reference to a proxy reference database; and

queuing the data object referred to by the data object reference in a data delivery queue for the forthcoming transmission to the second mirrored data site, wherein upon transmission of the data object referred to by the data object reference to the second mirrored data site, the data object is replicated to one or more data nodes associated with the second mirrored data site; and

discarding the data object reference from the proxy reference database in response to the data object being successfully written to the second mirrored data site; and

receiving at the second mirrored data site, a request for the data object;

determining, based on the data object reference in the proxy reference database, that the data object has not been received by the second mirrored data site; and

based on the determination, requesting the first mirrored data site referred to by the data object reference in the proxy reference database to serve the data object.

2. The method of claim 1 , further comprising retrying the data object for transmission when the data object cannot be immediately written to the nodes within the second mirrored data site due to current storage capacity constraints, wherein the data object reference is not discarded until available capacity is realized in the second mirrored data site.

3. The method of claim 1 , wherein the data object reference is generated by running a cryptographic hash function over a content associated with the data object.

4. The method of claim 3 , wherein the data object reference allows finding the data object based on the content associated with the data object.

5. The method of claim 1 , wherein the first mirrored data site and the second mirrored data site support an intra-site tier operation and an inter-site tier operation using the same data logic, the replicating of the data object to the one or more data nodes being performed by selecting the intra-site tier operation, and the replicating of the data object to the one or more data nodes in the second mirrored data site being performed by specifying the inter-site operation.

6. The method of claim 1 , further comprising synchronizing mirrored data sites, the synchronizing including:

comparing one or more data object references and data objects associated with the first mirrored data site to one or more data object references in the second mirrored data site and data objects associated with the second mirrored data site; and

requesting deliveries of the one or more data objects corresponding to the one or more data object references.

7. The method of claim 1 , wherein the mirrored data sites provide a consistent view of a file system.

8. The method of claim 1 , wherein each node in the first mirrored data site and in the second mirrored data sites are interconnected to form a complete mesh.

9. The method of claim 1 , wherein one data site includes an arbitrator node to arbitrate data replications between the mirrored data sites.

10. The method of claim 9 , wherein upon failure of a node hosting a Metadata Operational Processor (MOP), another node in that site is designated as the arbitrator node.

11. The method of claim 10 , wherein each mirrored data site includes respective gateway nodes configured to establish a gateway between the mirrored data sites.

12. The method of claim 11 , wherein upon a failure of one of the gateway nodes, an alternate gateway node is designated, the alternate gateway node using a pre-provisioned path to establish an alternate gateway between the mirrored data sites.

13. A system for replication between mirrored data sites, the system comprising:

a proxy reference database configured to store one or more data object references associated with one or more data objects;

a processor configured to:

receive a data object at a first mirrored data site including one or more data nodes;

replicate the data object to the one or more data nodes internally within the first mirrored data site;

generate a data object reference indicating a forthcoming transmission of the data object to a second mirrored data site, wherein the data object reference includes an identification of the first mirrored data site, which stores one or more replicas of the data object;

transmit the data object reference to the proxy reference database, wherein the proxy reference database is associated with the second mirrored data site, the first mirrored data site and the second mirrored data site having one or more pre-provisioned interconnections; and

queue the data object referred to by the data object reference in a data delivery queue for the forthcoming transmission to the second mirrored data site, wherein upon transmission of the data object referred to by the data object reference to the second mirrored data site, the data object reference is discarded from the proxy reference database in response to the data object being successfully written to the second mirrored data site; and

receive at the second mirrored data site, a request for the data object;

determine, based on the data object reference in the proxy reference database, that the data object has not been received by the second mirrored data site; and

based on the determination, request the first mirrored data site referred to by the data object reference in the proxy reference database to serve the data object.

14. The system of claim 13 , wherein the data object reference is generated by running a cryptographic hash function over a content associated with the data object.

15. The system of claim 14 , wherein the data object reference allows finding the data object based on the content associated with the data object.

16. The system of claim 13 , wherein the first mirrored data site and the second mirrored data sites support an intra-site tier operation and an inter-site tier operation using the same data logic, the replicating of the data object to the one or more data nodes being performed by selecting the intra-site tier operation and the replicating of the data object to the one or more data nodes in the second mirrored data sites being performed by selecting the inter-site tier operation.

17. The system of claim 13 , wherein the processor is further configured to synchronize the first mirrored data site and the second mirrored data site, the synchronizing including:

comparing one or more data object references and data objects associated with one of the mirrored data sites to one or more data object references and data objects associated with the other mirrored data site; and

requesting deliveries of the one or more data objects corresponding to the one or more data object references.

18. The system of claim 13 , wherein one of the mirrored data sites includes an arbitrator node to arbitrate data replications between all mirrored data sites.

19. A non-transitory processor-readable medium having instructions stored thereon, which when executed by one or more processors, causes the one or more processors to:

receive a data object at a first mirrored data site including one or more data nodes;

replicate the data object to the one or more data nodes internally within the first mirrored data site;

generate a data object reference indicating a forthcoming transmission of the data object to a second mirrored data site, wherein the data object reference includes an identification of the first mirrored data site, which stores one or more replicas of the data object;

transmit the data object reference to a proxy reference database; and

queue the data object referred to by the data object reference in a data delivery queue for the forthcoming transmission to the second mirrored data site, wherein upon transmission of the data object referred to by the data object reference to the second mirrored data site, the data object is replicated to one or more data nodes associated with the second mirrored data site; and

discard the data object reference from the proxy reference database in response to the data object being successfully written to the second mirrored data site; and

receive at the second mirrored data site, a request for the data object;

determine, based on the data object reference in the proxy reference database, that the data object has not been received by the second mirrored data site; and

based on the determination, request the first mirrored data site referred to by the data object reference in the proxy reference database to serve the data object.

Assignments (6)
CHANGE OF NAME Recorded Aug 16, 2024
From: STORAGECRAFT TECHNOLOGY CORPORATION
To: STORAGECRAFT TECHNOLOGY LLC
Reel/Frame 068660/0176 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2024
From: MONROE CAPITAL MANAGEMENT ADVISORS, LLC; ARCSTOR MIDCO LLC; ARCSERVE ACQUISITION COMPANY LLC; ARCSERVE (USA) LLC; STORAGECRAFT TECHNOLOGY, LLC
To: STORAGECRAFT, LLC
Reel/Frame 068660/0208 →
SECURITY INTEREST Recorded Mar 16, 2021
From: ARCSERVE (USA) LLC; STORAGECRAFT TECHNOLOGY LLC; ZETTA, LLC
To: MONROE CAPITAL MANAGEMENT ADVISORS, LLC, AS COLLATERAL AGENT
Reel/Frame 055603/0219 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT Recorded Mar 16, 2021
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: EXABLOX CORPORATION; STORAGECRAFT TECHNOLOGY CORPORATION; STORAGECRAFT INTERMEDIATE HOLDINGS, INC.; STORAGECRAFT ACQUISITION CORPORATION
Reel/Frame 055614/0852 →
SECURITY INTEREST Recorded Mar 27, 2017
From: EXABLOX CORPORATION; STORAGECRAFT INTERMEDIATE HOLDINGS, INC.; STORAGECRAFT ACQUISITION CORPORATION; STORAGECRAFT TECHNOLOGY CORPORATION
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 041748/0849 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2013
From: HUNT, TAD; HOWE, JOHN
To: EXABLOX CORPORATION
Reel/Frame 030977/0207 →
Continuity (1)
Related Publication 20150019491A1 · Jan 15, 2015