Ensuring globally consistent transactions

US9569253B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9569253-B1
Application numberUS-201313905637-A
CountryUS
Kind codeB1
Filing dateMay 30, 2013
Priority dateJun 4, 2012
Publication dateFeb 14, 2017
Grant dateFeb 14, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

The present technology proposes techniques for ensuring globally consistent transactions. This technology may allow distributed systems to ensure the causal order of read and write transactions across different partitions of a distributed database. By assigning causally generated timestamps to the transactions based on one or more globally coherent time services, the timestamps can be used to preserve and represent the causal order of the transactions in the distributed system. In this regard, certain transactions may wait for a period of time after choosing a timestamp in order to delay the start of any second transaction that might depend on it. The wait may ensure that the effects of the first transaction are not made visible until its timestamp is guaranteed to be in the past. This may ensure that a consistent snapshot of the distributed database can be determined for any past timestamp.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method, comprising: identifying a set of transaction events originating from one or more database clients in a distributed computing system; receiving a first time interval from at least one globally coherent time service, the first time interval determined based on timestamps generated by a plurality of time masters serving as references in the distributed computing system for the database clients, the first time interval including a current true time and representing a difference between an earliest one of the plurality of time masters and a latest one of the plurality of time masters; determining, using a processor, a causal timestamp based on the first time interval; associating the causal timestamp with the set of transaction events; waiting a period of time for a given transaction event, the period of time corresponding to when the first time interval will pass the causal timestamp; executing the given transaction event; and publishing a result of the given transaction event after the period of time. 2. The method of claim 1 , further comprising: identifying a second set of transaction events; receiving a second time interval from at least one globally coherent time service, wherein the second time interval is after the first time interval; determining, using the processor, a second causal timestamp based on the second time interval; associating the second causal timestamp with the second set of transaction events; waiting a period of time for a second given transaction event from the second set of transaction events; executing the second given transaction event; and publishing a result of the second given transaction event. 3. The method of claim 2 , further comprising assuming a causal dependency of the second set of transaction events on the first set of transaction events. 4. The method of claim 1 , wherein determining a causal timestamp comprises selecting a latest time from the first time interval. 5. The method of claim 2 , wherein determining a second causal timestamp comprises selecting a latest time from the second time interval. 6. The method of claim 1 , wherein waiting comprises executing a consensus protocol to determine whether the given transaction event can occur, and wherein executing the consensus protocol comprises determining whether a predetermined number of devices agree on executing the given transaction event. 7. The method of claim 1 , wherein the given transaction event comprises reading information from a database. 8. The method of claim 1 , wherein the given transaction event comprises writing information to a database. 9. A system, comprising: a memory; and a processor coupled to the memory, the processor configured to: identify a set of transaction events originating from one or more database clients in a distributed computing system; receive a first time interval from at least one globally coherent time service, the first time interval determined based on timestamps generated by a plurality of time masters serving as references in the distributed computing system for the database clients, the first time interval including a current true time and representing a difference between an earliest one of the plurality of time masters and a latest one of the plurality of time masters; determine a causal timestamp based on the first time interval; associate the causal timestamp with the set of transaction events; wait a period of time for a given transaction event, the period of time corresponding to when the first time interval will pass the causal timestamp; execute the given transaction event; and publish a result of the given transaction event after the period of time. 10. The system of claim 9 , wherein the processor is further configured to: identify a second set of transaction events; receive a second time interval from at least one globally coherent time service, wherein the second time interval is after the first time interval; determine, using the processor, a second causal timestamp based on the second time interval; associate the second causal timestamp with the second set of transaction events; wait a second period of time for a second given transaction event from the second set of transaction events; execute the second given transaction event; and publish a result of the second given transaction event. 11. The system of claim 9 , wherein to determine a causal timestamp the processor is further configured to select a latest time from the first time interval. 12. The system of claim 10 , wherein to determine a second causal timestamp the processor is further configured to select a latest time from the second time interval. 13. The system of claim 9 , wherein the given transaction event comprises processor instruction to read information from a database. 14. The system of claim 9 , wherein the given transaction event comprises processor instruction to write information to a database. 15. A non-transitory computer-readable storage medium comprising instructions that, when executed by a processor, cause the processor to implement a method of ordering transactions, the method, comprising: identifying a set of transaction events originating from one or more database clients in a distributed computing system; receiving a first time interval from at least one globally coherent time service, the first time interval determined based on timestamps generated by a plurality of time masters serving as references in the distributed computing system, the first time interval including a current true time and representing a difference between an earliest one of the plurality of time masters and a latest one of the plurality of time masters; determining, using the processor, a causal timestamp based on the first time interval; associating the causal timestamp with the set of transaction events; waiting a period of time for a given transaction event, the period of time corresponding to when the first time interval will pass the causal timestamp; executing the given transaction event; and publishing a result of the given transaction event after the period of time. 16. The computer-readable storage medium of claim 15 , wherein the method further comprising: identifying a second set of transaction events; receiving a second time interval from at least one globally coherent time service, wherein the second time interval is after the first time interval; determining, using the processor, a second causal timestamp based on the second time interval; associating the second causal timestamp with the second set of transaction events; waiting a period of time for a second given transaction event from the second set of transaction events; executing the second given transaction event; and publishing a result of the second given transaction event. 17. The computer-readable storage medium of claim 15 , wherein the method further comprises assuming a causal dependency of the second set of transaction events on the first set of transaction events. 18. The computer-readable storage medium of claim 15 , wherein waiting comprises executing a consensus protocol to determine whether the given transaction event can occur, and wherein executing the consensus protocol comprises determining whether a predetermined number of devices agree on executing the given transaction event. 19. The method of claim 1 , further comprising determining when the period of time is over, the determining comprising: receiving a second time interval; and determinin

Assignees

Inventors

Classifications

  • G06F9/466Primary

    Transaction processing · CPC title

  • File search processing · CPC title

  • using timestamps · CPC title

  • Updates performed during online database operations; commit processing · CPC title

  • Temporal data queries · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9569253B1 cover?
The present technology proposes techniques for ensuring globally consistent transactions. This technology may allow distributed systems to ensure the causal order of read and write transactions across different partitions of a distributed database. By assigning causally generated timestamps to the transactions based on one or more globally coherent time services, the timestamps can be used to p…
Who is the assignee on this patent?
Google Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/466. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 14 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).