System and method of performing snapshot isolation in distributed databases
First Claim
Patent Images
1. A computer-implemented method of performing snapshot isolation in distributed databases, comprising:
- implementing, on a plurality of hardware devices, a plurality of nodes that implement a distributed database;
storing, by the plurality of nodes, a plurality of local snapshot information, wherein for a particular node a corresponding local snapshot information enforces snapshot isolation for the particular node;
partially processing, by a first node of the plurality of nodes, a transaction, wherein the first node has no a-priori knowledge that the transaction is a distributed transaction;
determining, by the first node, that the transaction requires access to data from a second node and is the distributed transaction;
sending, by the first node to a hardware coordinator, a request to access a second node of the plurality of nodes;
receiving, by the first node from the hardware coordinator, a global commit identifier; and
continuing to process the distributed transaction, by the first node and the second node, in accordance with the global commit identifier, wherein continuing to process the distributed transaction includes;
checking, by the first node, that another distributed transaction has not committed;
transmitting, from the first node to the second node, the global commit identifier; and
processing the distributed transaction, by the second node, according to a snapshot of the plurality of local snapshot information on the second node that was made prior to the global commit identifier.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method of performing snapshot isolation in distributed databases. Each node stores local snapshot information that enforces snapshot isolation for that node. The method includes partially processing a distributed transaction by a first node, receiving a global commit identifier from a coordinator, and continuing to process the distributed transaction, by the first node and a second node, in accordance with the global commit identifier.
-
Citations
19 Claims
-
1. A computer-implemented method of performing snapshot isolation in distributed databases, comprising:
-
implementing, on a plurality of hardware devices, a plurality of nodes that implement a distributed database; storing, by the plurality of nodes, a plurality of local snapshot information, wherein for a particular node a corresponding local snapshot information enforces snapshot isolation for the particular node; partially processing, by a first node of the plurality of nodes, a transaction, wherein the first node has no a-priori knowledge that the transaction is a distributed transaction; determining, by the first node, that the transaction requires access to data from a second node and is the distributed transaction; sending, by the first node to a hardware coordinator, a request to access a second node of the plurality of nodes; receiving, by the first node from the hardware coordinator, a global commit identifier; and continuing to process the distributed transaction, by the first node and the second node, in accordance with the global commit identifier, wherein continuing to process the distributed transaction includes; checking, by the first node, that another distributed transaction has not committed; transmitting, from the first node to the second node, the global commit identifier; and processing the distributed transaction, by the second node, according to a snapshot of the plurality of local snapshot information on the second node that was made prior to the global commit identifier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A system for performing snapshot isolation in distributed databases, comprising:
-
a plurality of hardware devices that are configured to implement a plurality of nodes that implement a distributed database; and a hardware coordinator that is configured to generate a global commit identifier, wherein the plurality of nodes are configured to store a plurality of local snapshot information, wherein for a particular node a corresponding local snapshot information enforces snapshot isolation for the particular node, wherein a first node of the plurality of nodes is configured to partially process a transaction, wherein the first node has no a-priori knowledge that the transaction is a distributed transaction; wherein the first node is configured to determine that the transaction requires access to data from a second node and is the distributed transaction; wherein the first node is configured to send, to the hardware coordinator, a request to access a second node of the plurality of nodes, wherein the first node is configured to receive, from the hardware coordinator, the global commit identifier, and wherein the first node and the second node are configured to continue to process the distributed transaction in accordance with the global commit identifier, wherein continuing to process the distributed transaction includes; checking, by the first node, that another distributed transaction has not committed; transmitting, from the first node to the second node, the global commit identifier; and processing the distributed transaction, by the second node, according to a snapshot of the plurality of local snapshot information on the second node that was made prior to the global commit identifier. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A non-transitory computer readable medium storing instructions to control a computer system for performing snapshot isolation in distributed databases, comprising:
-
a distributed database component that is configured to control a plurality of hardware devices to implement a distributed database on a plurality of nodes; and a coordinator component that is configured to control a hardware coordinator to generate a global commit identifier, wherein the distributed database component is configured to control the plurality of nodes to store a plurality of local snapshot information, wherein for a particular node a corresponding local snapshot information enforces snapshot isolation for the particular node, wherein the distributed database component is configured to control a first node of the plurality of nodes to partially process a transaction, wherein the first node has no a-priori knowledge that the transaction is a distributed transaction, wherein the distributed database component is configured to control the first node to determine that the transaction requires access to data from a second node and is the distributed transaction; wherein the distributed database component is configured to control the first node to send, to the hardware coordinator, a request to access a second node of the plurality of nodes, wherein the distributed database component is configured to control the first node to receive, from the hardware coordinator, the global commit identifier, and wherein the distributed database component is configured to control the first node and the second node to continue to process the distributed transaction in accordance with the global commit identifier, wherein continuing to process the distributed transaction includes; checking, by the first node, that another distributed transaction has not committed; transmitting, from the first node to the second node, the global commit identifier; and processing the distributed transaction, by the second node, according to a snapshot of the plurality of local snapshot information on the second node that was made prior to the global commit identifier. - View Dependent Claims (19)
-
Specification