Abstract: Methods and systems for managing requests in a distributed computing system are provided. A plurality of requests are received by one or more of the plurality of computing nodes in the distributed computing system. A respective timestamp is assigned to each of the plurality of requests. A subset of the plurality of requests are assigned to an epoch, wherein the epoch corresponds to an interval of time comprising the respective timestamp of each request of the subset of the plurality of requests. A present time is compared to a closing time of the epoch. Based on the comparison, the subset of the plurality of requests are queued for execution in a waiting data structure by last-in, first-out (LIFO) ordering based on the respective timestamp of each request of the subset.
Abstract: Methods and systems for executing non-blocking transactions at a database are provided. The method includes receiving a write transaction that is directed to a partition of a table stored by a cluster of database nodes. The method includes generating, at a database node of the cluster, a synthetic timestamp based on a first time associated with the database node and a duration, wherein the synthetic timestamp exceeds the first time by the duration. The method includes executing, based on determining the synthetic timestamp, one or more operations of the write transaction at one or more replicas of the partition. The method includes committing, based on a threshold number of acknowledgements, the one or more operations of the write transaction at the one or more replicas. The method includes sending, based on a second time exceeding the synthetic timestamp, an indication of success of the write transaction.
Type:
Grant
Filed:
July 9, 2021
Date of Patent:
January 2, 2024
Assignee:
Cockroach Labs, Inc.
Inventors:
Nathan J. VanBenschoten, Andrei Matei, Andrew E. Kimball