Direct access to object state in a shared log
AssigneeVMware, Inc.
InventorsMichael Wei, Dahlia Malkhi, Medhavi Dhawan, Maithem Munshed, Anny Martinez Manzanilla, Roger Michoud, Zeeshan Altaf Lokhandwala
Life of this patent
Estimating the term…
Abstract
A shared log in a distributed system provides for direct access to the most current data state of an object stored in the shared log. Directly accessing the data state of an object obviates the need for a client to replay all the transactions stored in the shared log made on the object.
Claims17
A method in a computer system that provides a shared log, the shared log concurrently accessible by a plurality of clients, the method comprising:
- storing, by the computing system, a plurality of transactions in a corresponding plurality of log entries in the shared log, each transaction comprising one or more operations that update data states of one or more data objects;
- storing, by the computing system, state information for a plurality of data objects associated with transactions stored in the shared log, the state information for each of the plurality of data objects including a time reference of the latest update made to that data object, wherein the time reference of the latest update made to a particular data object identifies a log entry in the shared log that stores a most recent transaction that comprises one or more operations that update a data state of the particular data object;
- receiving, by the computing system, via an I/O interface a read request for a data object (target data object) to be read from the shared log;
- accessing, by the computing system, state information for the target data object;
- accessing, by the computing system, a log entry in the shared log based on the time reference of the accessed state information for the target data object;
- and
- providing, by the computing system, a data state of the target data object to a client that sent the read request, the data state included in a transaction stored in the accessed log entry, wherein the data state represents the latest update made to the target data object.
A non-transitory computer-readable storage medium having stored thereon computer executable instructions, which when executed by a computer device, cause the computer device to:
- store a plurality of transactions in a corresponding plurality of log entries in the shared log, each transaction comprising one or more operations that update data states of one or more data objects;
- store state information for a plurality of data objects associated with transactions stored in the shared log, the state information for each of the plurality of data objects including a time reference of the latest update made to that data object, wherein the time reference of the latest update made to a particular data object identifies a log entry in the shared log that stores a most recent transaction that comprises one or more operations that update a data state of the particular data object;
- receive via and I/O interface of the computer device a read request for a data object (target data object) to be read from the shared log;
- access state information for the target data object;
- access a log entry in the shared log based on the time reference of the accessed state information for the target data object;
- and
- provide a data state of the target data object to a client that sent the read request, the data state included in a transaction stored in the accessed log entry, wherein the data state represents the latest update made to the target data object.
An apparatus comprising:
- one or more computer processors;
- an I/O interface;
- and
- a computer-readable storage medium comprising instructions for controlling the one or more computer processors to be operable to:
- store a plurality of transactions in a corresponding plurality of log entries in the shared log, each transaction comprising one or more operations that update data states of one or more data objects;
- store state information for a plurality of data objects associated with transactions stored in the shared log, the state information for each of the plurality of data objects including a time reference of the latest update made to that data object, wherein the time reference of the latest update made to a particular data object identifies a log entry in the shared log that stores a most recent transaction that comprises one or more operations that update a data state of the particular data object;
- receive via the I/O interface a read request for a data object (target data object) to be read from the shared log;
- access state information for the target data object;
- access a log entry in the shared log based on the time reference of the accessed state information for the target data object;
- and
- provide a data state of the target data object to a client that sent the read request, the data state included in a transaction stored in the accessed log entry, wherein the data state represents the latest update made to the target data object.
Dependencies are inferred from the claim text.