Nova Patents
EP2997490B1

Transaction ordering

Abstract

This record has no abstract on file.

EP2997490B1, drawing sheet 1
Sheet 1 of 8

Term

7.6 yearsleft in the term

Expires 13 May 2034.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

12 claims: 7 independent, 5 dependent

  1. 1
    A system, comprising:a plurality of computing nodes, each of which comprises at least one processor and a memory, wherein the plurality of computing nodes are configured to collectively implement a database service;wherein a first node (320) of the plurality of computing nodes is configured to: receive (610) a write request directed to a particular data record of a particular data page in a database table, wherein the write request specifies a modification to be made to the particular data record, and assign (620) a commit time to the write request, wherein the commit time is based on a clock maintained by the first node and is indicative of a time to commit the modification;and wherein a second node (320) of the plurality of computing nodes is configured to: receive (610) a read request to read the particular data page in the database table, assign (620) a read consistency point time to the read request, wherein the read consistency point time is based on a clock maintained by the second node and is indicative of a consistency point of a read, determine (630) that the read consistency point time is within an accuracy window of the commit time, and in response to determining that the read consistency point time is within an accuracy window of the commit time, cause (640) execution of the read request to be performed after the modification specified by the write request is committed, regardless of whether the read consistency point time is indicative of an earlier point in time than the commit time, wherein the accuracy window corresponds to a non-zero difference in clocks in the first and second nodes.
  2. 5
    A method, comprising:performing, by multiple computing nodes configured to collectively implement a database service: receiving (610), from one or more clients, a read request to perform a read from a particular data page in a database table, and an update request to perform an update to a particular data record of the particular data page in the database table, wherein the update request is received by a first node (320) of the multiple nodes, wherein the read request is received by a second, different node (320) of the multiple nodes, wherein the first and second nodes each maintain a respective clock;associating (620) a first indication of time with the update based on the clock maintained by the first node, wherein the first indication of time is indicative of a commit time of the update request;associating (620) a second indication of time with the read based on the clock maintained by the second node, wherein the second indication of time is indicative of a consistency point time of the read request;detecting a potential read anomaly based on a determination (630) that the first indication of time is within an accuracy window of the consistency point time, wherein the accuracy window corresponds to a non-zero difference in clocks in the first and second nodes;and in response to said detecting the potential read anomaly, causing (640) the read, specified by the read request, to be performed after the update specified by the update request, regardless of whether the second indication of time is indicative of an earlier point in time than the first indication of time.
  3. 7
    The method of any one of claims 5-6, wherein said detecting the potential read anomaly is further based on a third indication of time, wherein the third indication of time is also associated with the update request.
  4. 9
    The method of any one of claims 5-8, wherein the potential read anomaly is a potential fuzzy read.
  5. 10
    The method of any one of claims 5-9, further comprising:modifying the threshold value based, at least in part, on a frequency of retry.
  6. 11
    The method of any one of claims 5-10, wherein said detecting is performed for a read request that includes the read of the record and either a read of another record or a second read of the record.
  7. 12
    A computer program product comprising program instructions, wherein the program instructions are computer-executable by the one or more processors to implement the method of any one of claims 5 to 11.