Maintaining distributed state among stateless service clients

US10250694B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10250694-B2
Application numberUS-201615241918-A
CountryUS
Kind codeB2
Filing dateAug 19, 2016
Priority dateAug 19, 2016
Publication dateApr 2, 2019
Grant dateApr 2, 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.

Techniques for managing distributed state for stateless transactions are disclosed herein. In some embodiments a distributed state manager detects a state-changing event that corresponds to a stateless transaction between a node and an application server. The stateless transaction is generated from a first instance of an application that is executing on the node and hosted by the application server. The distributed state manager records the event in a blockchain comprising blocks that each record a batch of one or more events associated with execution of the application. The distributed state manager detects an update to the blockchain associated with the recorded event and modifies a state of a second instance of the application executing on at least one other node based, at least in part, on the update to the blockchain.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for managing distributed state for stateless transactions, said method comprising: detecting, by an application server, a first state-changing event that corresponds to a stateless transaction between a first node of a plurality of nodes and the application server, wherein the stateless transaction is generated from a first instance of an application that is executing on the first node, and wherein the application is hosted by the application server; broadcasting, by the application server, the first state-changing event to the plurality of nodes; initiating, by at least the first node and a second node of the plurality of nodes, generation of a block for entry into a blockchain based, at least in part, on the broadcasted first state-changing event, wherein the blockchain comprises blocks that each record a batch of one or more state-changing events associated with execution of the application; adding, by the first node, the block to a locally stored copy of the blockchain on the first node based, at least in part, on the first node completing generation of the block prior to the second node; based on detecting that the first node added the block, updating, by each of the plurality of nodes, a locally stored copy of the blockchain with the block generated by the first node to maintain synchronization among the blockchain copies; and modifying, by the second node, a state of a second instance of the application executing on the second node based, at least in part, on the update to the locally stored copy of the blockchain. 2. The method of claim 1 , wherein the application is a distributed application and wherein the blockchain maintains a chronological sequence of state-changing events processed by multiple instances of the distributed application. 3. The method of claim 1 , wherein said adding, by the first node, the block comprises recording metadata indicating context of the first state-changing event within the block. 4. The method of claim 1 , wherein said detecting that the first node added the block comprises: monitoring, by the plurality of nodes, the blockchain to detect addition of the block to the blockchain; and based on detecting the addition of the block, retrieving the block from the first node. 5. The method of claim 1 , further comprising: determining that the first state-changing event comprises selection of a data element generated by the application; and asserting, by at least the second node, an access lock on the data element based, at least in part, on determining that the first state-changing event specifies selection of the data element. 6. The method of claim 1 , further comprising determining that the first node has completed generation of the block based, at least in part, on the first node generating a hash sufficient to satisfy a security threshold. 7. The method of claim 1 , further comprising: determining, by a third node of the plurality of nodes, a type of event indicated in the block added to the blockchain by the first node; and based on determining that the type of event is a modification to a data element, modifying a corresponding data element for an instance of the application executing on the third node in accordance with the event indicated in the block. 8. The method of claim 1 , wherein the application server does not comprise a copy of the blockchain. 9. One or more non-transitory machine-readable storage media having program code for managing distributed state for stateless transactions, the program code configured to: detect, by an application server, a first state-changing event that corresponds to a stateless transaction between a first node of a plurality of nodes and the application server, wherein the stateless transaction is generated from a first instance of an application that is executing on the first node, and wherein the application is hosted by the application server; broadcast, by the application server, the first state-changing event to the plurality of nodes; initiate, by at least the first node and a second node of the plurality of nodes, generation of a block for entry into a blockchain based, at least in part, on the broadcasted first state-changing event, wherein the blockchain comprises blocks that each record a batch of one or more state-changing events associated with execution of the application; add, by the first node, the block to a locally stored copy of the blockchain on the first node based, at least in part, on the first node completing generation of the block prior to the second node; based on detecting that the first node added the block, update, by each of the plurality of nodes, a locally stored copy of the blockchain with the block generated by the first node to maintain synchronization among the blockchain copies; and modify, by the second node, a state of a second instance of the application executing on the second node based, at least in part, on the update to the locally stored copy of the blockchain. 10. The machine-readable storage media of claim 9 , wherein the application is a distributed application and wherein the blockchain maintains a chronological sequence of state-changing events processed by multiple instances of the distributed application. 11. The machine-readable storage media of claim 9 , wherein said program code configured to add, by the first node, the block comprises program code configured to record metadata indicating context of the state-changing event within the block. 12. The machine-readable storage media of claim 9 , wherein said program code configured to detect that the first node added the block comprises program code configured to: monitor, by the plurality of nodes, the blockchain to detect addition of the block to the blockchain; and based on detecting the addition of the block, retrieve the block from the first node. 13. The machine-readable storage media of claim 9 , further comprising program code configured to: determine, by at least the second node, that the first state-changing event comprises selection of a data element generated by the application; and assert, by at least the second node, an access lock on the data element based, at least in part, on determining that the first state-changing event specifies selection of the data element. 14. An apparatus comprising: a processor; and a machine-readable medium having program code executable by the processor to cause the apparatus to: detect, by an application server, a first state-changing event that corresponds to a stateless transaction between a first node of the plurality of nodes and the application server, wherein the stateless transaction is generated from a first instance of an application that is executing on the first node, and wherein the application is hosted by the application server; broadcast, by the application server, the first state-changing event to the plurality of nodes; initiate, by at least the first node and a second node of the plurality of nodes, generation of a block for entry into a blockchain based, at least in part, on the broadcasted first state-changing event, wherein the blockchain comprises blocks that each record a batch of one or more state-changing events associated with execution of the application; add, by the first node, the block to a locally stored copy of the blockchain on the first node based, at least in part, on the first node completing generation of the block prior to the second node; based on detecting that the first node added the block, update, by each of the plurality of nodes, a locally stored copy of the blockchain with the block generated by the firs

Assignees

Inventors

Classifications

  • H04L67/142Primary

    Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms · CPC title

  • in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46) · CPC title

  • based on web technology, e.g. hypertext transfer protocol [HTTP] · CPC title

  • Electricity · mapped topic

  • Electricity · mapped topic

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 US10250694B2 cover?
Techniques for managing distributed state for stateless transactions are disclosed herein. In some embodiments a distributed state manager detects a state-changing event that corresponds to a stateless transaction between a node and an application server. The stateless transaction is generated from a first instance of an application that is executing on the node and hosted by the application se…
Who is the assignee on this patent?
Ca Inc
What technology area does this patent fall under?
Primary CPC classification H04L67/142. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Apr 02 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 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).