Client-side fault tolerance in a publish-subscribe system
US-2016261480-A1 · Sep 8, 2016 · US
US9843640B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9843640-B2 |
| Application number | US-201715436217-A |
| Country | US |
| Kind code | B2 |
| Filing date | Feb 17, 2017 |
| Priority date | Aug 7, 2015 |
| Publication date | Dec 12, 2017 |
| Grant date | Dec 12, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for receiving a write request from a publisher comprising a channel name wherein the channel identified by the channel name comprises an ordered plurality of messages stored in buffers, each buffer having a predetermined time-to-live and being assigned to a respective node, identifying a first node and a first buffer stored on the first node based on the channel name of the request that has available storage for storing messages and wherein the first buffer has a time-to-live that has not expired, and sending a write grant to the publisher wherein the grant comprises identification of the first node and the first buffer, and wherein the publisher is configured to send messages to the first node for storage in the first buffer based on the grant until the first buffer is full or its time-to-live has expired.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method, comprising: allocating a first buffer for storing messages associated with a channel, the first buffer residing on a first node and having a time-to-live; granting a write request to a publisher to write one or more messages to the first buffer; determining that the first buffer is no longer available for writing messages when the first buffer is full, and, in response: (i) selecting a second node from a plurality of nodes based on a respective workload of each node in the plurality of nodes; and (ii) allocating a second buffer for storing messages associated with the channel, the second buffer residing on the second node; and determining that messages in the first buffer are no longer available for reading when the time-to-live for the first buffer has expired. 2. The method of claim 1 , comprising: granting a read request to a subscriber to read one or more messages from the first buffer before the time-to-live for the first buffer expires. 3. The method of claim 2 , wherein granting the read request to the subscriber comprises: providing the subscriber with an identification of the first node and the first buffer. 4. The method of claim 2 , wherein the subscriber is configured to receive messages from the first buffer. 5. The method of claim 1 , comprising: granting read requests to a plurality of subscribers to concurrently read one or more messages from the first buffer before the time-to-live for the first buffer expires. 6. The method of claim 1 , wherein granting the write request to the publisher comprises: providing the publisher with an identification of the first node and the first buffer. 7. The method of claim 1 , wherein the publisher is configured to send one or more messages to the first node for storage in the first buffer. 8. The method of claim 1 , wherein selecting the second node comprises: identifying the second node as a least-loaded node among the plurality of nodes. 9. The method of claim 1 , comprising: maintaining a list of active buffers for the channel, wherein each buffer stores messages that are available to be read by one or more subscribers to the channel. 10. The method of claim 1 , wherein the first node and the second node reside on different physical computers. 11. A system, comprising: one or more computer processors programmed to perform operations comprising: allocating a first buffer for storing messages associated with a channel, the first buffer residing on a first node and having a time-to-live; granting a write request to a publisher to write one or more messages to the first buffer; determining that the first buffer is no longer available for writing messages when the first buffer is full, and, in response: (i) selecting a second node from a plurality of nodes based on a respective workload of each node in the plurality of nodes; and (ii) allocating a second buffer for storing messages associated with the channel, the second buffer residing on the second node; and determining that messages in the first buffer are no longer available for reading when the time-to-live for the first buffer has expired. 12. The system of claim 11 , wherein the operations comprise: granting a read request to a subscriber to read one or more messages from the first buffer before the time-to-live for the first buffer expires. 13. The system of claim 12 , wherein the operation of granting the read request to the subscriber comprises: providing the subscriber with an identification of the first node and the first buffer. 14. The system of claim 12 , wherein the subscriber is configured to receive messages from the first buffer. 15. The system of claim 11 , wherein the operations comprise: granting read requests to a plurality of subscribers to concurrently read one or more messages from the first buffer before the time-to-live for the first buffer expires. 16. The system of claim 11 , wherein the operation of granting the write request to the publisher comprises: providing the publisher with an identification of the first node and the first buffer. 17. The system of claim 11 , wherein the publisher is configured to send one or more messages to the first node for storage in the first buffer. 18. The system of claim 11 , wherein the operation of selecting the second node comprises: identifying the second node as a least-loaded node among the plurality of nodes. 19. The system of claim 11 , wherein the operations comprise: maintaining a list of active buffers for the channel, wherein each buffer stores messages that are available to be read by one or more subscribers to the channel. 20. An article, comprising: a non-transitory computer-readable medium having instructions stored thereon that, when executed by one or more computer processors, cause the computer processors to perform operations comprising: allocating a first buffer for storing messages associated with a channel, the first buffer residing on a first node and having a time-to-live; granting a write request to a publisher to write one or more messages to the first buffer; determining that the first buffer is no longer available for writing messages when the first buffer is full, and, in response: (i) selecting a second node from a plurality of nodes based on a respective workload of each node in the plurality of nodes; and (ii) allocating a second buffer for storing messages associated with the channel, the second buffer residing on the second node; and determining that messages in the first buffer are no longer available for reading when the time-to-live for the first buffer has expired.
Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange · CPC title
Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms · CPC title
Queue scheduling · CPC title
Electricity · mapped topic
for unicast · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.