SYSTEMS AND METHODS FOR PROVIDING NONLINEAR JOURNALING
First Claim
Patent Images
1. A processor-implemented method of journaling data being written to a first storage unit, wherein said first storage unit is part of a system comprising a plurality of storage units that execute transactions global to the system, the method comprising:
- storing a plurality of groups of data in a journal located in persistent storage, the data groups associated with data to be written to the first storage unit, wherein each data group is associated with a different global transaction and each global transaction is distributed among two or more storage units, such that each global transaction is associated with a request to write data to the first storage unit and a request to write different data to at least one other storage unit;
storing information about the location and status of each of said plurality of groups of data, wherein the information about the status of a group of data includes a transaction state of the associated global transaction;
providing a data structure associating the stored groups of data and the information about each of said stored groups of data; and
providing for the removal from the data structure of any data group and its corresponding stored information, wherein a data group can be removed from the data structure regardless of the order in which the data group was stored in the journal.
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.
139 Citations
20 Claims
-
1. A processor-implemented method of journaling data being written to a first storage unit, wherein said first storage unit is part of a system comprising a plurality of storage units that execute transactions global to the system, the method comprising:
-
storing a plurality of groups of data in a journal located in persistent storage, the data groups associated with data to be written to the first storage unit, wherein each data group is associated with a different global transaction and each global transaction is distributed among two or more storage units, such that each global transaction is associated with a request to write data to the first storage unit and a request to write different data to at least one other storage unit; storing information about the location and status of each of said plurality of groups of data, wherein the information about the status of a group of data includes a transaction state of the associated global transaction; providing a data structure associating the stored groups of data and the information about each of said stored groups of data; and providing for the removal from the data structure of any data group and its corresponding stored information, wherein a data group can be removed from the data structure regardless of the order in which the data group was stored in the journal. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A journal data structure for recording data to be written to a data storage unit, comprising:
-
a plurality of journal blocks, wherein each journal block of the plurality of journal blocks comprises data to be written to the data storage unit; a plurality of block descriptors, each block descriptor comprising a link to at least one of said journal blocks and at least one respective address in the data storage unit to which the at least one journal block is to be written; and a plurality of transaction descriptors, each transaction descriptor comprising a link to one or more of the plurality of block descriptors, wherein the one or more of the plurality of block descriptors are associated with a given transaction. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A system for journaling data to be written to a data storage node, comprising:
-
a processor; persistent memory configured to store journal data; and a journal module configured to; record, in the associated persistent memory, a plurality of journal blocks, wherein each journal block of the plurality of journal blocks comprises data to be written to the data storage node; record a plurality of block descriptors, each block descriptor comprising a link to at least one of said journal blocks and at least one respective address in the data storage node to which the at least one journal block is to be written; and record a plurality of transaction descriptors, each transaction descriptor comprising a link to one or more of the plurality of block descriptors, wherein the one or more of the plurality of block descriptors are associated with a given transaction. - View Dependent Claims (19, 20)
-
Specification