Systems and methods for providing nonlinear journaling
First Claim
Patent Images
1. A method of journaling data in a storage unit of a distributed storage system to provide a shadow buffer in the event that the distributed system aborts a transaction, the method comprising:
- receiving, via a computer processor, first data to be stored in a first journal, the first journal stored on a first storage unit;
journaling said first data in the first journal on the first storage unit, said first data associated with a first global transaction that the distributed storage system has committed to write, said first data designated to be written to a storage location in a memory of said first storage unit, but said first data has not yet been written to said storage location;
receiving second data to be stored in the first journal;
journaling said second data in said first storage unit, said second data associated with a second global transaction that the distributed storage system has not yet committed to write, said second data designated to be written to said storage location in the memory of said first storage unit, said second data superseding said first data;
receiving third data to be stored in a second journal, the second journal stored on a second storage unit, said second storage unit being a different storage unit than the first storage unit;
journaling said third data in the second journal on the second storage unit, said third data associated with the second global transaction, said third data designated to be written to a storage location in a memory of said second storage unit; and
preserving said first data for purposes of restoring said first data, in the event that the distributed storage system aborts said second global transaction;
wherein said first data is preserved at least until one of the following conditions is met;
the second global transaction commits the second data to being stored at the location on said first storage unit or the second global transaction aborts, wherein if the second global transaction aborts, the preserved first data is then designated to be written to said storage location in the memory of said first storage unit.
12 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment, systems and methods are provided for nonlinear journaling. In one embodiment, groups of data designated for storage in a data storage unit are journaled into persistent storage. In one embodiment, the journal data is recorded nonlinearly. In one embodiment, a linked data structure records data and data descriptors in persistent storage.
266 Citations
5 Claims
-
1. A method of journaling data in a storage unit of a distributed storage system to provide a shadow buffer in the event that the distributed system aborts a transaction, the method comprising:
-
receiving, via a computer processor, first data to be stored in a first journal, the first journal stored on a first storage unit; journaling said first data in the first journal on the first storage unit, said first data associated with a first global transaction that the distributed storage system has committed to write, said first data designated to be written to a storage location in a memory of said first storage unit, but said first data has not yet been written to said storage location; receiving second data to be stored in the first journal; journaling said second data in said first storage unit, said second data associated with a second global transaction that the distributed storage system has not yet committed to write, said second data designated to be written to said storage location in the memory of said first storage unit, said second data superseding said first data; receiving third data to be stored in a second journal, the second journal stored on a second storage unit, said second storage unit being a different storage unit than the first storage unit; journaling said third data in the second journal on the second storage unit, said third data associated with the second global transaction, said third data designated to be written to a storage location in a memory of said second storage unit; and preserving said first data for purposes of restoring said first data, in the event that the distributed storage system aborts said second global transaction; wherein said first data is preserved at least until one of the following conditions is met;
the second global transaction commits the second data to being stored at the location on said first storage unit or the second global transaction aborts, wherein if the second global transaction aborts, the preserved first data is then designated to be written to said storage location in the memory of said first storage unit. - View Dependent Claims (3)
-
-
2. A system that journals data for a data storage unit that provides a shadow buffer in the event that a transaction aborts, the system comprising:
-
a first data storage unit, the first data storage unit comprising; a first memory buffer, said memory buffer associated with a location on said first data storage unit; a first persistent memory, said first persistent memory associated with said first data storage unit; and a first program module configured to journal first data that is part of a first global transaction in said first persistent memory from said first memory buffer, and further configured to preserve, after said first memory buffer is overwritten with second data, the first data in said first persistent memory at least until one of the following conditions is met;
a transaction associated with the second data commits the second data to being stored at the location on said first data storage unit or a transaction associated with the second data aborts, wherein if a transaction associated with the second data aborts, the first program module is further configured to use the preserved first data in said first persistent memory to restore the first memory buffer; anda second data storage unit, said second data storage unit being a different data storage unit than the first data storage unit, the second data storage unit comprising; a second memory buffer, said memory buffer associated with a location on said second data storage unit; a second persistent memory, said second persistent memory associated with said second data storage unit; and a second program module configured to journal third data that is part of the first global transaction in said second persistent memory from said second memory buffer, and further configured to preserve, after said second memory buffer is overwritten with fourth data, the third data in said first persistent memory at least until one of the following conditions is met;
a transaction associated with the fourth data commits the fourth data to being stored at the location on said second data storage unit or a transaction associated with the fourth data aborts, wherein if a transaction associated with the fourth data aborts, the second program module is further configured to use the preserved third data in said second persistent memory to restore the second memory buffer. - View Dependent Claims (4, 5)
-
Specification