×

Systems and methods for providing nonlinear journaling

  • US 8,356,150 B2
  • Filed: 09/30/2010
  • Issued: 01/15/2013
  • Est. Priority Date: 08/18/2006
  • Status: Active Grant
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.

View all claims
  • 12 Assignments
Timeline View
Assignment View
    ×
    ×