Client-side fault tolerance in a publish-subscribe system
US-2016261480-A1 · Sep 8, 2016 · US
US10659330B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10659330-B2 |
| Application number | US-201816021903-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 28, 2018 |
| Priority date | Feb 24, 2017 |
| Publication date | May 19, 2020 |
| Grant date | May 19, 2020 |
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 assigning channels in a messaging system. An example method includes: providing a plurality of channels, wherein each channel includes an ordered plurality of messages; assigning each channel to a channel bucket to form a plurality of channel buckets, wherein each channel bucket includes at least two channels from the plurality of channels; and assigning each channel bucket to a node selected from a plurality of nodes, wherein the node includes one or more buffers for storing messages according to the order from the channel buckets of the node.
Opening claim text (preview).
What is claimed is: 1. A method, comprising: assigning, by one or more computer processors, each channel of a plurality of channels to a channel bucket to form a plurality of channel buckets, wherein each channel bucket comprises at least two channels from the plurality of channels; distributing, by the one or more computer processors, a listing of assignments of channels to channel buckets to a plurality of nodes processing the channels; and assigning, by the one or more computer processors, each channel bucket to a node selected from the plurality of nodes. 2. The method of claim 1 , wherein each channel comprises an ordered plurality of messages. 3. The method of claim 1 , wherein the node comprises one or more buffers for storing messages according to an order from the channel buckets of the node. 4. The method of claim 1 , wherein the node for the channel bucket comprises a chain of peer nodes, and wherein a copy of the messages for the channel bucket is stored in each peer node. 5. The method of claim 1 , comprising: migrating a first channel bucket from a first node to a second node within the plurality of nodes. 6. The method of claim 5 , wherein the first channel bucket is migrated from the first node to the second node to adjust a workload distribution among the plurality of nodes. 7. The method of claim 1 , comprising: monitoring a distribution of workloads of nodes among the plurality of nodes. 8. The method of claim 7 , wherein the node is selected for each channel bucket based on the distribution of workloads among the plurality of nodes. 9. The method of claim 1 , comprising: storing mapping information locally on each node of the plurality of nodes, wherein the mapping information comprises a mapping between channel buckets and nodes. 10. A system, comprising: one or more computer processors programmed to perform operations to: assign each channel of a plurality of channels to a channel bucket to form a plurality of channel buckets, wherein each channel bucket comprises at least two channels from the plurality of channels; distribute a listing of assignments of channels to channel buckets to a plurality of nodes processing the channels; and assign each channel bucket to a node selected from the plurality of nodes. 11. The system of claim 10 , wherein each channel comprises an ordered plurality of messages. 12. The system of claim 10 , wherein the node comprises one or more buffers for storing messages according to an order from the channel buckets of the node. 13. The system of claim 10 , wherein the node for the channel bucket comprises a chain of peer nodes, and wherein a copy of the messages for the channel bucket is stored in each peer node. 14. The system of claim 10 , wherein the operations further to: migrate a first channel bucket from a first node to a second node within the plurality of nodes. 15. The system of claim 10 , wherein the operations further to: monitor a distribution of workloads of nodes among the plurality of nodes. 16. The system of claim 15 , wherein the node is selected for each channel bucket based on the distribution of workloads among the plurality of nodes. 17. The system of claim 10 , wherein the operations further to: store mapping information locally on each node of the plurality of nodes, wherein the mapping information comprises a mapping between channel buckets and nodes. 18. A non-transitory computer-readable medium having instructions stored thereon that, when executed by one or more computer processors, cause the one or more computer processors to: assign each channel of a plurality of channels to a channel bucket to form a plurality of channel buckets, wherein each channel bucket comprises at least two channels from the plurality of channels; distribute a listing of assignments of channels to channel buckets to a plurality of nodes processing the channels; and assign each channel bucket to a node selected from the plurality of nodes.
in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46) · CPC title
based on a hash applied to IP addresses or costs · CPC title
based on parameters of servers, e.g. available memory or workload (monitoring of computer activity G06F11/30) · CPC title
Processing captured monitoring data, e.g. for logfile generation · CPC title
Electricity · mapped topic
Related publications grouped by family.
Answers are generated from the same data shown on this page.