Persistent ticket operation

US10423464B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10423464-B2
Application numberUS-201615333820-A
CountryUS
Kind codeB2
Filing dateOct 25, 2016
Priority dateSep 30, 2016
Publication dateSep 24, 2019
Grant dateSep 24, 2019

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.

In one example in accordance with the present disclosure, a method may include performing a transactional operation such that if one step of the transactional operation is performed, each other step of the transactional operation is performed. The transactional operation may include making a first copy, stored in a first persistent memory, of a next ticket number stored in a second persistent memory and updating the next ticket number in the second persistent memory. The method may also include determining when to serve a first thread based on the first copy of the next ticket number.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method, comprising: performing a transactional operation, such that if one step of the transactional operation is performed, each other step of the transactional operation is performed, wherein the transactional operation includes: making a first copy, stored in a first persistent memory, of a next ticket number adjacent to a next ticket owner stored in a second persistent memory; updating the next ticket number and the next ticket owner in the second persistent memory with a double word compare-and-swap-operation; and determining when to serve a first thread based on the first copy of the next ticket number and the next ticket owner, wherein the next ticket number and the next ticket owner are global variables shared by each thread using a persistent ticket lock in the first persistent memory and in the second persistent memory. 2. The method of claim 1 wherein performing the transactional operation further comprises: blocking, using the persistent ticket lock, the next ticket number from being updated by threads other than the first thread; and unblocking the next ticket number from being updated by threads other than the first thread. 3. The method of claim 2 wherein an atomic operation is used to update the next ticket number and to perform one of blocking the next ticket number, and unblocking the next ticket number. 4. The method of claim 3 wherein the atomic operation is a double word compare-and-swap operation. 5. The method of claim 3 wherein the atomic operation is a double word atomic store operation. 6. The method of claim 2 wherein blocking the next ticket number from threads other than the first thread comprises setting the next ticket owner to a number associated with the first thread. 7. The method of claim 2 comprising: determining that the first thread is recovering from a crash incident; determining that the next ticket number is blocked from being updated by threads other than the first thread; making a second copy of the next ticket number; and unblocking the next ticket number. 8. The method of claim 2 , wherein the determining when to serve the first thread is also based on a now serving ticket number, the method comprising: requesting to release a ticket lock; and updating the now serving ticket number. 9. The method of claim 8 further comprising: determining that the now serving ticket number is equal to the first copy of the next ticket number; and determining to serve the first thread. 10. A system comprising: a first persistent memory; a second persistent memory; a processor to: make a copy, stored in a first persistent memory, of a next ticket number adjacent to a next ticket owner for a first thread, wherein the next ticket number is a global variable shared by each thread using a persistent ticket lock in the first persistent memory and in the second persistent memory stored in a second persistent memory, and update the next ticket number and the next ticket owner in the second persistent memory with a double word compare and swap operation; and a ticket server to determine when the copy matches a now serving ticket number. 11. The system of claim 10 wherein the processor blocks the next ticket number from being updated by threads other than the first thread and unblocks the next ticket number from being updated by threads other than the first thread. 12. The system of claim 11 wherein a single atomic operation is used both to update the next ticket number and to perform one of blocking the next ticket number and unblocking the next ticket number. 13. The system of claim 11 wherein blocking the next ticket number by the first thread comprises setting the next ticket owner to a number associated with the first thread. 14. The system of claim 11 comprising: a second processor to: determine that the first thread is recovering from a crash incident; determine that the next ticket number is blocked from being updated by threads other than the first thread; make a second copy of the next ticket number; and unblock the next ticket number. 15. A non-transitory machine-readable storage medium configured to store instructions which, when executed by a processor, cause a system to perform a method comprising: blocking, using a persistent ticket lock, a next ticket number from being updated by threads other than a first thread, wherein the next ticket number is a global variable shared by each thread accessing a first persistent memory and a second persistent memory; and performing a transactional operation, such that if one step of the transactional operation is performed, each other step of the transactional operation is performed, wherein the transactional operation includes: making a first copy, stored in the first persistent memory, of the next ticket number stored adjacent to a next ticket owner in the second persistent memory, and updating the next ticket number and the next ticket owner in the second persistent memory with a double word compare-and-swap operation; and determining when to serve the first thread based on the first copy of the next ticket number and the next ticket owner, wherein the next ticket number and the next ticket owner are global variables shared by each thread using a persistent ticket lock in the first persistent memory and in the second persistent memory. 16. The non-transitory machine-readable storage medium of claim 15 , wherein the method further includes: setting a next ticket owner variable to a number associated with the first thread as part of blocking the next ticket number from being updated by threads other than the first thread. 17. The non-transitory machine-readable storage medium of claim 15 wherein, in the method, blocking the next ticket number from being updated by threads other than the first thread is performed as part of performing the transactional operation. 18. The non-transitory machine-readable storage medium of claim 15 wherein, in the method, a single atomic operation is used to update the next ticket number and perform one of blocking the next ticket number from being accessed by threads other than the first thread and unblocking the next ticket number from being accessed by threads other than the first thread. 19. The non-transitory machine-readable storage medium of claim 15 , wherein, the method further comprises: determining that the first thread is recovering from a crash incident; determining that the next ticket number is blocked from being updated by threads other than the first thread; making a second copy of the next ticket number; and unblocking the next ticket number from being updated by threads other than the first thread. 20. The non-transitory machine-readable storage medium of claim 15 , wherein, in the method, determining when to serve the first thread is also based on a now serving ticket number and wherein the method further includes: requesting to release the persistent ticket lock; and updating the now serving ticket number.

Assignees

Inventors

Classifications

  • G06F9/466Primary

    Transaction processing · CPC title

  • Thread control instructions · CPC title

  • G06F9/52Primary

    Program synchronisation; Mutual exclusion, e.g. by means of semaphores · CPC title

  • Multiprogramming arrangements · CPC title

  • Task life-cycle, e.g. stopping, restarting, resuming execution (G06F9/4881 takes precedence) · 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 US10423464B2 cover?
In one example in accordance with the present disclosure, a method may include performing a transactional operation such that if one step of the transactional operation is performed, each other step of the transactional operation is performed. The transactional operation may include making a first copy, stored in a first persistent memory, of a next ticket number stored in a second persistent m…
Who is the assignee on this patent?
Hewlett Packard Entpr Dev Lp, Hewlett Packard Entpr Patent Development Lp
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 Sep 24 2019 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 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).