IP Library Granted Patent US 8,356,150
Granted Patent B2
US 8,356,150 · App. 12/895,619 · Granted Jan 15, 2013

Systems and methods for providing nonlinear journaling

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 8,356,150
App. No.
12/895,619
Granted
Jan 15, 2013
Kind
B2
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.

Claims (34)

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.

2. The networked cluster of data storage nodes of claim 1 , wherein the at least one storage device comprises a hard-disk drive.

3. The networked cluster of data storage nodes of claim 1 , wherein the system is configured to recreate the global transaction following a failure to at least one of said storage nodes.

4. The networked cluster of data storage nodes of claim 3 , wherein a hard-disk drive of the at least one of said storage nodes is in an inconsistent state following the failure of the at least one of said storage nodes such that it is unclear whether data associated with the global transaction was written to a disk platter of the hard-disk drive of the at least one of said storage nodes.

5. The networked cluster of data storage nodes of claim 1 , wherein said persistent memory is nonvolatile random access memory.

6. The networked cluster of data storage nodes of claim 1 , wherein the information regarding the transaction state is recorded with an atomic write.

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.

8. The processor-implemented method of claim 7 , wherein journaling said data comprises recording information sufficient to recreate the transaction following a failure to at least one of the data storage units participating in the transaction.

9. The processor-implemented method of claim 8 , wherein a hard-disk drive of the at least one of said data storage units is in an inconsistent state following the failure of the at least one of said storage units such that it is unclear whether data associated with the transaction was written to a disk platter of the hard-disk drive of the at least one of said data storage units.

10. The processor-implemented method of claim 7 , wherein said persistent memory is nonvolatile random access memory on the data storage unit.

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.

12. The non transitory computer-readable storage medium of claim 11 , wherein the system is configured to recreate the transaction following a failure to at least one of said data storage units.

13. The non transitory computer-readable storage medium of claim 12 , wherein a hard-disk drive of the at least one of said data storage units is in an inconsistent state following the failure of the at least one of said data storage units such that it is unclear whether data associated with the transaction was written to a disk platter of the hard-disk drive of the at least one of said data storage units.

Assignments (13)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
MERGER Recorded May 12, 2011
From: ISILON SYSTEMS, INC.
To: ISILON SYSTEMS LLC
Reel/Frame 026268/0232 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2011
From: IVY HOLDING, INC.
To: EMC CORPORATION
Reel/Frame 026267/0562 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2011
From: ISILON SYSTEMS LLC
To: IVY HOLDING, INC.
Reel/Frame 026267/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2011
From: FACHAN, NEAL T.; GODMAN, PETER J.; HUSTED, JUSTIN M.; PASSEY, AARON J.
To: ISILON SYSTEMS, INC.
Reel/Frame 026251/0824 →