Systems and methods for providing nonlinear journaling
First Claim
Patent Images
1. A networked cluster of data storage nodes cooperating to execute transactions that are global to the networked cluster of data storage nodes, comprising:
- a plurality of storage nodes of a distributed file system for storing files distributed in portions among two or more of the storage nodes, the plurality of storage nodes configured to communicate via a network, wherein the distributed file system is configured to write a portion of a file to a first storage node in response to a first write request and to write a different portion of the file to a different storage node in response to a second write request, wherein both the first write request and the second write request are part of a single global transaction, each storage node comprising;
a processor;
at least one storage device configured to store the storage node'"'"'s respective portions of files stored in the distributed file system; and
persistent memory configured to store journal data; and
a plurality of journal modules, each one of said storage nodes having a different one of said plurality of journal modules associated therewith, wherein the journal module associated with each storage node is configured to record, in the associated persistent memory, journal data associated with the participation of the storage node in a global transaction, the journal data comprising data designated to be written to the at least one storage device of the storage node but not yet written to the at least one storage device, the global transaction including a write of a portion of a file to the storage node and a write of a different portion of the file to at least one other storage node, wherein the journal data includes information identifying all other storage nodes participating in the global transaction and a transaction state associated with the global transaction;
wherein a first journal module associated with the first storage node has only a portion of the information needed to recreate an entire global transaction and said first journal module must cooperate with a second journal module associated with a second storage node identified in journal data recorded by said first journal module as participating in the global transaction in order to recreate the global transaction;
the journal modules associated with each of two or more of the plurality of storage nodes configured to be collectively used to recreate the global transaction, wherein recreating the global transaction comprises;
the first journal module associated with the first storage node writing journal data recorded by the first journal module to at least one storage device of the first storage node; and
the second journal module associated with the second storage node identified in the journal data of the first journal module writing journal data recorded by the second journal module to at least one storage device of the second storage node.
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.
-
Citations
13 Claims
-
1. A networked cluster of data storage nodes cooperating to execute transactions that are global to the networked cluster of data storage nodes, comprising:
-
a plurality of storage nodes of a distributed file system for storing files distributed in portions among two or more of the storage nodes, the plurality of storage nodes configured to communicate via a network, wherein the distributed file system is configured to write a portion of a file to a first storage node in response to a first write request and to write a different portion of the file to a different storage node in response to a second write request, wherein both the first write request and the second write request are part of a single global transaction, each storage node comprising; a processor; at least one storage device configured to store the storage node'"'"'s respective portions of files stored in the distributed file system; and persistent memory configured to store journal data; and a plurality of journal modules, each one of said storage nodes having a different one of said plurality of journal modules associated therewith, wherein the journal module associated with each storage node is configured to record, in the associated persistent memory, journal data associated with the participation of the storage node in a global transaction, the journal data comprising data designated to be written to the at least one storage device of the storage node but not yet written to the at least one storage device, the global transaction including a write of a portion of a file to the storage node and a write of a different portion of the file to at least one other storage node, wherein the journal data includes information identifying all other storage nodes participating in the global transaction and a transaction state associated with the global transaction; wherein a first journal module associated with the first storage node has only a portion of the information needed to recreate an entire global transaction and said first journal module must cooperate with a second journal module associated with a second storage node identified in journal data recorded by said first journal module as participating in the global transaction in order to recreate the global transaction; the journal modules associated with each of two or more of the plurality of storage nodes configured to be collectively used to recreate the global transaction, wherein recreating the global transaction comprises; the first journal module associated with the first storage node writing journal data recorded by the first journal module to at least one storage device of the first storage node; and the second journal module associated with the second storage node identified in the journal data of the first journal module writing journal data recorded by the second journal module to at least one storage device of the second storage node. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A processor-implemented method of journaling data associated with global transactions in a distributed data storage system, the processor-implemented method comprising:
-
journaling, by processor, data in persistent memory that is stored on a data storage unit in the distributed data storage system, the data storage unit comprising a processor and at least one storage device configured to store the data storage unit'"'"'s respective portions of files stored in the distributed data storage system, said data associated with said data storage unit'"'"'s participation in a transaction that is global to the distributed data storage system, the journaled data comprising data designated to be written to the at least one storage device of the storage unit but not yet written to the at least one storage device, said transaction involving a write of a portion of a file to said associated data storage unit and a write of a different portion of the same file to at least one other data storage unit, wherein each data storage unit comprises a processor, persistent memory configured to store journal data, and at least one storage device; wherein the journaled data stored on a single data storage unit includes information identifying all other data storage units participating in the transaction and a transaction state associated with the transaction; wherein journaling said data comprises recording information sufficient to recreate the portion of the transaction corresponding to the associated data storage unit, wherein the journaled data associated with a first data storage unit has only a portion of the information needed to recreate a transaction that is global to the distributed data storage system, wherein said first data storage unit must cooperate with a second data storage unit identified in journal data recorded by said first data storage unit as participating in said transaction in order to recreate said transaction; wherein each data storage unit participating in the transaction is configured to be collectively used to recreate the transaction, wherein recreating the transaction comprises; the first data storage unit writing journal data recorded by the first data storage unit to at least one storage device of the first data storage unit; and the second data storage unit identified in journal data of the first data storage unit writing journal data recorded by the second data storage unit to at least one storage device of the second data storage unit. - View Dependent Claims (8, 9, 10)
-
-
11. A non transitory computer-readable storage medium having instructions stored thereon for implementing, when the instructions are executed, a journal for data associated with global transactions in a distributed data storage system, the instructions comprising:
-
journaling data in persistent memory that is stored on a data storage unit in the distributed data storage system, the data storage unit comprising a processor and at least one storage device configured to store the data storage unit'"'"'s respective portions of files stored in the distributed data storage system, said data associated with said data storage unit'"'"'s participation in a transaction that is global to the distributed data storage system, the journaled data comprising data designated to be written to the at least one storage device of the storage unit but not yet written to the at least one storage device, said transaction involving a write of a portion of a file to said data storage unit in response to a first write request and a write of a different portion of the file to at least one other data storage unit in response to a second write request, wherein both the first write request and the second write request are part of said transaction; wherein the journaled data stored on the data storage unit includes information identifying all other data storage units participating in the transaction and a transaction state associated with the transaction; wherein journaling said data comprises recording information sufficient to recreate the portion of the transaction corresponding to the associated data storage unit, wherein the journaled data associated with a first data storage unit has only a portion of the information needed to recreate a transaction that is global to the distributed data storage system, wherein said first data storage unit must cooperate with a second data storage unit identified in journal data recorded by said first data storage unit as participating in said transaction in order to recreate said transaction; wherein each data storage unit participating in the transaction is configured to be collectively used to recreate the transaction, wherein recreating the transaction comprises; the first data storage unit writing journal data recorded by the first data storage unit to at least one storage device of the first data storage unit; and the second data storage unit identified in journal data of the first data storage unit writing journal data recorded by the second data storage unit to at least one storage device of the second data storage unit. - View Dependent Claims (12, 13)
-
Specification