Distributed asynchronous ordered replication
First Claim
1. A method of maintaining committal of I/O data to achieve distributed asynchronous ordered replication, the method comprising:
- creating a first journal for a first set of I/O data to be committed to a local storage device, the first journal comprising entries, the entries comprising a first counter value that is the same for all entries of the first journal and the order of entries in the first journal being independent of the order of the first set of I/O data committed to the local storage;
creating a second journal for a second set of I/O data to be committed to the local storage device, the second journal comprising entries, the entries comprising a second counter value that is the same for all entries of the second journal and the order of entries in the second journal being independent of the order of the second set of I/O data committed to the local storage;
temporarily preventing committal, to the local storage device, of the second set of I/O data until the second journal is created; and
beginning committal of the second set of I/O data to the local storage device before the first set of I/O data is finished committal.
3 Assignments
0 Petitions
Accused Products
Abstract
Described are methods, systems, and apparatus, including computer program products, for achieving distributed asynchronous ordered replication. Distributed asynchronous ordered replication includes creating a first journal for a first set of I/O data, creating a second journal for a second set of I/O data, and temporarily preventing committal, of the second set of I/O data until the second journal is created. In some examples, the first and second journals comprise entries. The entries of the first and second journals include counter values. The entries of the first journal typically have a different counter value than the entries of the second journal.
91 Citations
26 Claims
-
1. A method of maintaining committal of I/O data to achieve distributed asynchronous ordered replication, the method comprising:
-
creating a first journal for a first set of I/O data to be committed to a local storage device, the first journal comprising entries, the entries comprising a first counter value that is the same for all entries of the first journal and the order of entries in the first journal being independent of the order of the first set of I/O data committed to the local storage; creating a second journal for a second set of I/O data to be committed to the local storage device, the second journal comprising entries, the entries comprising a second counter value that is the same for all entries of the second journal and the order of entries in the second journal being independent of the order of the second set of I/O data committed to the local storage; temporarily preventing committal, to the local storage device, of the second set of I/O data until the second journal is created; and beginning committal of the second set of I/O data to the local storage device before the first set of I/O data is finished committal. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A system for distributed asynchronous ordered replication, the system comprising:
-
a fast path for performing journal operations; a control path; and a first storage device comprising a first journal for a first set of I/O data, the first journal comprising journal entries, the entries comprising a first counter value that is the same for all entries of the first journal, the order of entries in the first journal being independent of the order of the first set of I/O data committed to the local storage, and representing an I/O operation of the first set of I/O data performed by the fast path; and a second journal for a second set of I/O data, the second journal comprising journal entries, the entries comprising a second counter value that is the same for all entries of the second journal, and the order of entries in the second journal being independent of the order of the second set of I/O data committed to the local storage, and representing I/O operation of the second set of I/O data performed by the fast path; wherein the second counter value is different than the first counter value and wherein the control path temporarily prevents the fast path from performing the second set of I/O data until the second journal is created, allowing for performance of the second set of I/O data before finishing performance of the first set of I/O data. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
-
25. A computer program product, tangibly embodied in a machine-readable storage device, for maintaining committal of I/O data to achieve distributed asynchronous ordered replication, the computer program product including instructions being operable to cause a data processing apparatus to:
-
create a first journal for a first set of I/O data to be committed to a local storage device, the first journal comprising entries, the entries comprising a first counter value that is the same for all entries of the first journal and the order of entries in the first journal being independent of the order of the first set of I/O data committed to the local storage; create a second journal for a second set of I/O data to be committed to the local storage device, the second journal comprising entries, the entries comprising a second counter value that is the same for all entries of the second journal and the order of entries in the second journal being independent of the order of the second set of I/O data committed to the local storage; temporarily prevent committal, to the local storage device, of the second set of I/O data until the second journal is created; and begin committal of the second set of I/O data to the local storage device before the first set of I/O data is finished committal.
-
-
26. A system for maintaining committal of I/O data to achieve distributed asynchronous ordered replication without using a universal timestamp for ordering journal entries, the system comprising:
-
a local storage device; means for creating a first journal for a first set of I/O data to be committed to the local storage device, the first journal comprising entries, the entries comprising a first counter value that is the same for all entries of the first journal and the order of entries in the first journal being independent of the order of the first set of I/O data committed to the local storage; means for creating a second journal for a second set of I/O data to be committed to the local storage device, the second journal comprising entries, the entries comprising a second counter value that is the same for all entries of the second journal and the order of entries in the second journal being independent of the order of the second set of I/O data committed to the local storage; means for temporarily preventing committal, to the local storage device, of the second set of I/O data until the second journal is created; and means for beginning committal of the second set of I/O data to the local storage device before the first set of I/O data is finished committal.
-
Specification