Multi-node data store management
AssigneeDataCore Software Corporation
InventorsNicholas C. Connolly, Robert Bassett, Ziya Aral, Roni J. Putra
Life of this patent
Estimating the term…
Abstract
A node based architecture that supports arbitrary access to any node in a system for data representation and access, while still providing virtual volume coherency that is global to all of the nodes in the system, and while providing underlying data management services that are also variously accessible from any node in the system.
Claims17
A method for processing storage transactions in a node-based system having a plurality of nodes, the method comprising:
- receiving, by at least one processing unit, write transactions directed to a volume at any of the nodes, the write transactions having differing numbers of blocks;
- storing, at any of the nodes, a stream including a sequence of the write transactions according to an order in which the write transactions are received for the volume between a first point in time and a second point in time after the first point in time, wherein individual entries in the stream represent respective individual instances of the write transactions and the differing numbers of blocks occurring in the sequence of the write transactions;
- generating a stream image corresponding to the stream for an intermediate point in time that is between the first point in time and the second point in time;
- and
- in response to a read request that occurs after the intermediate point in time, retrieving data presented by the volume as of the intermediate point in time by accessing the stream image and the stream, the stream image providing a representation of the data in the volume, the stream image referencing a non-contiguous subset of the sequence of the write transactions in the stream in reverse time order starting at the intermediate point in time, wherein said referencing the noncontiguous subset of the sequence of the write transactions comprises excluding at least one entry in the sequence of the write transactions between the intermediate point in time and the first point in time, wherein the at least one entry that is excluded exists at the time of the read request.
A non-transitory computer readable medium storing program code for processing storage transactions in a node-based system having a plurality of nodes, the program code being executable by a processor to perform operations comprising:
- receiving write transactions directed to a volume at any of the nodes, the write transactions having differing numbers of blocks;
- storing, at any of the nodes, a stream including a sequence of the write transactions according to an order in which the write transactions are received for the volume between a first point in time and a second point in time after the first point in time, wherein individual entries in the stream represent respective individual instances of the write transactions and the differing numbers of blocks occurring in the sequence of the write transactions;
- generating a stream image corresponding to the stream for an intermediate point in time that is between the first point in time and the second point in time;
- and
- in response to a read request that occurs after the intermediate point in time, retrieving data presented by the volume as of the intermediate point in time by accessing the stream image and the stream, the stream image providing a representation of the data in the volume, the stream image referencing a non-contiguous subset of the sequence of the write transactions in the stream in reverse time order starting at the intermediate point in time, wherein said referencing the noncontiguous subset of the sequence of the write transactions comprises excluding at least one entry in the sequence of the write transactions between the intermediate point in time and the first point in time, wherein the at least one entry that is excluded exists at the time of the read request.
An apparatus for data representation in a node-based data representation system having a plurality of nodes, the apparatus comprising:
- a processor;
- and
- a memory, the memory storing program code executable by the processor to perform operations comprising:
- receiving write transactions directed to a volume at any of the nodes, the write transactions having differing numbers of blocks;
- storing, at any of the nodes, a stream including a sequence of the write transactions according to an order in which the write transactions are received for the volume between a first point in time and a second point in time after the first point in time, wherein individual entries in the stream represent respective individual instances of the write transactions and the differing numbers of blocks occurring in the sequence of the write transactions;
- generating a stream image corresponding to the stream for an intermediate point in time that is between the first point in time and the second point in time;
- and
- in response to a read request that occurs after the intermediate point in time, retrieving data presented by the volume as of the intermediate point in time by accessing the stream image and the stream, the stream image providing a representation of the data in the volume, the stream image referencing a non-contiguous subset of the sequence of the write transactions in the stream in reverse time order starting at the intermediate point in time, wherein said referencing the noncontiguous subset of the sequence of the write transactions comprises excluding at least one entry in the sequence of the write transactions between the intermediate point in time and the first point in time, wherein the at least one entry that is excluded exists at the time of the read request.
Dependencies are inferred from the claim text.