Efficient timestamp solution for analyzing concurrent software systems

US10620660B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10620660-B2
Application numberUS-201815935190-A
CountryUS
Kind codeB2
Filing dateMar 26, 2018
Priority dateMar 26, 2018
Publication dateApr 14, 2020
Grant dateApr 14, 2020

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.

A method may include obtaining a concurrent application including processes, each including operations, and obtaining an initial hybrid timestamp for an initial operation of a process. The initial hybrid timestamp may include a vector list timestamp including vector clocks, each including a clock value for each of the processes. The method may further include determining a synchronization category for a next operation of the process, and in response to the synchronization category indicating that the next operation does not require inter-process synchronization, generating a next hybrid timestamp for the next operation. The next hybrid timestamp may include a differential timestamp relative to the initial hybrid timestamp.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: obtaining a concurrent application comprising a plurality of processes, each comprising a plurality of operations; obtaining an initial hybrid timestamp for an initial operation of a first process of the plurality of processes, wherein the initial hybrid timestamp comprises an initial vector list timestamp comprising an initial plurality of vector clocks each comprising a clock value for each of the plurality of processes; determining, by a processor, a first synchronization category for a next operation of the first process; and in response to the first synchronization category indicating that the next operation does not require inter-process synchronization, generating a next hybrid timestamp for the next operation, wherein the next hybrid timestamp comprises a differential timestamp relative to the initial hybrid timestamp. 2. The method of claim 1 , further comprising: decompressing the next hybrid timestamp by generating a next vector list timestamp obtained by merging the differential timestamp into to the initial hybrid timestamp. 3. The method of claim 2 , wherein the next vector list timestamp comprises a next plurality of vector clocks each comprising a clock value for each of the plurality of processes, the next plurality of vector clocks comprising a first vector clock comprising a first clock value for the first process, wherein the differential timestamp comprises a differential clock value for the first process, and wherein merging the differential timestamp into to the initial hybrid timestamp comprises obtaining an updated clock value using the differential clock value and the first clock value. 4. The method of claim 3 , further comprising: obtaining another hybrid timestamp for a potentially conflicting operation of a second process of the plurality of processes; and determining a happens-before relation between the next operation and the potentially conflicting operation by comparing the next vector list timestamp and the another hybrid timestamp. 5. The method of claim 4 , wherein the another hybrid timestamp comprises another vector list timestamp comprising another plurality of vector clocks each comprising a clock value for each of the plurality of processes, the another plurality of vector clocks comprising a second vector clock comprising a second clock value for the second process, and wherein comparing the next hybrid timestamp and the another hybrid timestamp comprises comparing the updated clock value and the second clock value. 6. The method of claim 4 , further comprising: applying a dynamic partial order reduction analysis to the concurrent application using the happens-before relation. 7. The method of claim 1 , further comprising: determining a second synchronization category for another operation of the first process; and in response to the second synchronization category indicating that the another operation is synchronized with a second process of the plurality of processes, generating another hybrid timestamp for the another operation comprising another vector list timestamp. 8. The method of claim 7 , wherein the another vector list timestamp comprises another plurality of vector clocks each comprising a clock value for each of the plurality of processes, the another plurality of vector clocks comprising a second vector clock comprising a second clock value for the second process, wherein the method further comprises: in response to the second synchronization category indicating that the another operation is synchronized with the second process, updating the second clock value for the second process. 9. A system, comprising: a memory, coupled to a processor, comprising a repository comprising: a concurrent application comprising a plurality of processes, each comprising a plurality of operations, an initial hybrid timestamp for an initial operation of a first process of the plurality of processes, wherein the initial hybrid timestamp comprises an initial vector list timestamp comprising an initial plurality of vector clocks each comprising a clock value for each of the plurality of processes, and a next hybrid timestamp for a next operation of the first process, wherein the next hybrid timestamp comprises a differential timestamp relative to the initial hybrid timestamp; and a timestamp generator executing on the processor configured to: determine a first synchronization category for the next operation; and in response to the first synchronization category indicating that the next operation does not require inter-process synchronization, generate the next hybrid timestamp. 10. The system of claim 9 , wherein the timestamp generator is further configured to: decompress the next hybrid timestamp by generating a next vector list timestamp obtained by merging the differential timestamp into to the initial hybrid timestamp. 11. The system of claim 10 , wherein the next vector list timestamp comprises a next plurality of vector clocks each comprising a clock value for each of the plurality of processes, the next plurality of vector clocks comprising a first vector clock comprising a first clock value for the first process, wherein the differential timestamp comprises a differential clock value for the first process, and wherein merging the differential timestamp into to the initial hybrid timestamp comprises obtaining an updated clock value using the differential clock value and the first clock value. 12. The system of claim 11 , wherein the timestamp generator is further configured to: obtain another hybrid timestamp for a potentially conflicting operation of a second process of the plurality of processes; and determine a happens-before relation between the next operation and the potentially conflicting operation by comparing the next vector list timestamp and the another hybrid timestamp. 13. The system of claim 12 , wherein the another hybrid timestamp comprises another vector list timestamp comprising another plurality of vector clocks each comprising a clock value for each of the plurality of processes, the another plurality of vector clocks comprising a second vector clock comprising a second clock value for the second process, and wherein comparing the next hybrid timestamp and the another hybrid timestamp comprises comparing the updated clock value and the second clock value. 14. The system of claim 12 , further comprising a model checker configured to: apply a dynamic partial order reduction analysis to the concurrent application using the happens-before relation. 15. The system of claim 9 , wherein the timestamp generator is further configured to: determine a second synchronization category for another operation of the first process; and in response to the second synchronization category indicating that the another operation is synchronized with a second process of the plurality of processes: generate another hybrid timestamp for the another operation comprising another vector list timestamp comprising another plurality of vector clocks each comprising a clock value for each of the plurality of processes, the another plurality of vector clocks comprising a second vector clock comprising a second clock value for the second process; and update the second clock value for the second process. 16. A non-transitory computer readable medium comprising instructions that, when executed by a processor, perform: obtaining a concurrent application comprising a plurality of processes, each comprising a plurality of operations; obtaining an initial hybrid tim

Assignees

Inventors

Classifications

  • G06F1/12Primary

    Synchronisation of different clock signals {provided by a plurality of clock generators} · CPC title

  • Precedence · CPC title

  • G06F9/4881Primary

    Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues · 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 US10620660B2 cover?
A method may include obtaining a concurrent application including processes, each including operations, and obtaining an initial hybrid timestamp for an initial operation of a process. The initial hybrid timestamp may include a vector list timestamp including vector clocks, each including a clock value for each of the processes. The method may further include determining a synchronization categ…
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F1/12. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 14 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).