Method and apparatus for reading and writing committed data
AssigneeMongoDB, Inc.
InventorsEliot Horowitz, Andrew Michalski Schwerin, Mathias Benjamin Stearn, Eric Andrew Milkie
Life of this patent
Estimating the term…
Loading patent…
AssigneeMongoDB, Inc.
InventorsEliot Horowitz, Andrew Michalski Schwerin, Mathias Benjamin Stearn, Eric Andrew Milkie
Estimating the term…
According to some aspects, a database system is provided. The database system may include at least one processor configured to execute a plurality of system components. The plurality of system components may include an interface component configured to receive a read commit command and provide a result, a snapshot component configured to generate a plurality of snapshots of data stored in a first data storage node of a plurality of data storage nodes and identify a committed snapshot representative of data that has been replicated on a majority of the plurality of data storage nodes, and a command processing component configured to read the committed snapshot responsive to receipt of the read commit command and generate the result.
A database system comprising:
A computerized method of performing operations in a computer database, comprising:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
Error detection or correction of the data by redundancy in operations: in transactions
Specifically adapted to achieve a particular effect: improving I/O performance
Improving the reliability of storage systems: in relation to data integrity, e.g. data losses, bit errors
Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems: replication mechanisms
About 11 years 1 month of term left · ends 1 Dec 2037 (estimated)
Databases may include multiple disks to store redundant data. The redundant storage of data in multiple disks may improve the rate at which data can be read from the database by spreading out read requests over multiple disks or systems. Further, the redundant storage of data may improve uptime of the database by making the database more robust to failures.
According to some aspects, systems and methods are provided to read and write commit data in a database that redundantly stores data. Committed data may include, for example, data that has been written to at least a predetermined number of storage devices in the database. In some embodiments, the system may identify committed data within the database and process certain read requests (e.g., read commit requests) by reading the identified committed data. Thereby, the database may provide an indication of what data has been replicated on at least a certain number of storage devices in the database. Further, the system may allow certain write requests (e.g., write commit requests) that provide a confirmation once the particular changes in the write request have been replicated on at least a predetermined number of storage devices in the database.
According to at least one aspect, a database system is provided. The database system includes at least one processor configured to execute a plurality of system components. The plurality of system components may include an interface component configured to receive a read commit command and provide a result, a snapshot component configured to generate a plurality of snapshots of data stored in a first data storage node of a plurality of data storage nodes and identify a committed snapshot representative of data that has been replicated on a majority of the plurality of data storage nodes, and a command processing component configured to read the committed snapshot responsive to receipt of the read commit command and generate the result using the committed snapshot.
Various aspects of at least one embodiment are discussed herein with reference to the accompanying figures, which are not intended to be drawn to scale. The figures are included to provide illustration and a further understanding of the various aspects and embodiments, and are incorporated in and constitute a part of this specification, but are not intended as a definition of the limits of the invention. Where technical features in the figures, detailed description or any claim are followed by references signs, the reference signs have been included for the sole purpose of increasing the intelligibility of the figures, detailed description, and/or claims. Accordingly, neither the reference signs nor their absence are intended to have any limiting effect on the scope of any claim elements. In the figures, each identical or nearly identical component that is illustrated in various figures is represented by a like numeral. For purposes of clarity, not every component may be labeled in every figure. In the figures:
FIG. 1 illustrates a block diagram of an example commit engine configured to process read and write commit commands, according to some embodiments;
FIG. 2 illustrates a block diagram of an example distributed database system, according to some embodiments;
According to one aspect, systems and methods are provided for reading and writing committed data in a database. In some embodiments, the database may follow an eventual consistency model and committed data may be data that has been replicated by more than a predetermined number of secondary nodes (e.g., half the secondary nodes) in the database. In these embodiments, data may be replicated from a primary node in the database to secondary nodes in the database over time, and the database may contain many groups of primary and secondary nodes. Thereby, one or more of the secondary nodes may have data that is not completely up-to-date relative to a respective primary node. Further, a client sending a read request to the database may receive data from a secondary node that is not completely up-to-date. The systems, as described herein according to some embodiments, provide clients an ability to read only committed from the database. The term “read commit” may refer to the command to read committed data from the database. For example, users may provide command line or execution instructions to read only committed data. Thereby, the system provides the client a view of the data that is being provided by a majority of the secondary nodes in response to read requests. Further, the systems may provide clients an ability to write data to the database and receive a confirmation once the data is replicated on a sufficient number of nodes in the database so as to be committed. The term “write commit” may refer to such a command.
In some embodiments, the system may monitor the latest data that has been committed to the database through the generation and management of snapshots. Snapshots may be captured periodically (or aperiodically) and be representative of the state of the data in the database at a particular point in time. The system may identify a committed snapshot that is representative of committed data (e.g., replicated by a threshold number of nodes (e.g., majority of nodes)). These snapshots may advantageously simplify processing of read commit and/or write commit commands. For example, read commit commands may be processed by simply reading from the committed snapshot. Similarly, write commit commands may be performed by determining whether the operation(s) included in the write commit command is included in the committed snapshot and returning a confirmation one the operation(s) are included in the committed snapshot.
Examples of the methods, devices, and systems discussed herein are not limited in application to the details of construction and the arrangement of components set forth in the following description or illustrated in the accompanying drawings. The methods and systems are capable of implementation in other embodiments and of being practiced or of being carried out in various ways. Examples of specific implementations are provided herein for illustrative purposes only and are not intended to be limiting. In particular, acts, components, elements and features discussed in connection with any one or more examples are not intended to be excluded from a similar role in any other examples.