Client-side fault tolerance in a publish-subscribe system
US-2016261480-A1 · Sep 8, 2016 · US
US9843551B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9843551-B2 |
| Application number | US-201615291633-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 12, 2016 |
| Priority date | Oct 9, 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 storing and transferring messages. An example method includes providing a queue having an ordered plurality of storage blocks. Each storage block stores one or more respective messages and is associated with a respective time. The times increase from a block designating a head of the queue to a block designating a tail of the queue. The method also includes reading, by each of a plurality of first sender processes, messages from one or more blocks in the queue beginning at the head of the queue. The read messages are sent, by each of the plurality of first sender processes, to a respective recipient. One or more of the blocks are designated as old when they have associated times that are earlier than a first time. A block is designated as a new head of the queue when the block is associated with a time later than or equal to the first time. One or more of the first sender processes is allowed to read messages from the old blocks until a second time which is later than the first time. One or more of the old blocks are deleted at a time later than or equal to the second time.
Opening claim text (preview).
What is claimed is: 1. A method, comprising: providing a queue comprising an ordered plurality of blocks, wherein each block stores one or more respective messages and is associated with a respective time, and wherein the times increase from a block designating a head of the queue to a block designating a tail of the queue; designating, by one or more computer processors, as old one or more of the blocks having associated times that are earlier than a first time; designating, by the one or more computer processors, a block associated with a time later than or equal to the first time as a new head of the queue; allowing messages to be read from the old blocks until a second time which is later than the first time; and deleting from the queue one or more of the old blocks at a time later than or equal to the second time. 2. The method of claim 1 , wherein the queue comprises a channel queue. 3. The method of claim 1 , wherein the queue is for messages from at least one of a publisher and a multiple queue publisher. 4. The method of claim 1 , comprising: reading, by each of one or more sender processes, messages from one or more blocks in the queue beginning at the head of the queue; and sending, by each of the one or more sender processes, the read messages to a respective recipient. 5. The method of claim 4 , wherein a particular sender process comprises a multiple queue consumer. 6. The method of claim 4 , wherein a particular recipient comprises one of an MX node and a Q node. 7. The method of claim 4 , comprising: putting a sender process to sleep that has no more messages to read from the queue. 8. The method of claim 4 , comprising: deleting the queue when a sender process has not been active for more than a threshold period of time. 9. The method of claim 1 , comprising: inserting, by one or more publisher processes, one or more messages in the block designating the tail of the queue. 10. The method of claim 9 , wherein a particular publisher process comprises one of an MX node, a Q node, and a multiple queue publisher. 11. A system, comprising: a queue, wherein the queue comprises an ordered plurality of blocks, wherein each block to store one or more respective messages and is associated with a respective time, and wherein the times increase from a block designating a head of the queue to a block designating a tail of the queue; and one or more computer processors, operatively coupled with the queue, programmed to perform operations to: designate as old one or more of the blocks having associated times that are earlier than a first time; designate a block associated with a time later than or equal to the first time as a new head of the queue; allow messages to be read from the old blocks until a second time which is later than the first time; and delete from the queue one or more of the old blocks at a time later than or equal to the second time. 12. The system of claim 11 , wherein the queue comprises a channel queue. 13. The system of claim 11 , wherein the queue is for messages from at least one of a publisher and a multiple queue publisher. 14. The system of claim 11 , wherein the operations further to: read, by each of one or more sender processes, messages from one or more blocks in the queue beginning at the head of the queue; and send, by each of the one or more sender processes, the read messages to a respective recipient. 15. The system of claim 14 , wherein a particular sender process comprises a multiple queue consumer. 16. The system of claim 14 , wherein a particular recipient comprises one of an MX node and a Q node. 17. The system of claim 14 , wherein the operations further to: put a sender process to sleep that has no more messages to read from the queue. 18. The system of claim 11 , further to: insert, by one or more publisher processes, one or more messages in the block designating the tail of the queue. 19. The system of claim 18 , wherein a particular publisher process comprises one of an MX node, a Q node, and a multiple queue publisher. 20. 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: provide a queue comprising an ordered plurality of blocks, wherein each block to store one or more respective messages and is associated with a respective time, and wherein the times increase from a block designating a head of the queue to a block designating a tail of the queue; designate, by the one or more computer processors, as old one or more of the blocks having associated times that are earlier than a first time; designate, by the one or more computer processors, a block associated with a time later than or equal to the first time as a new head of the queue; allow messages to be read from the old blocks until a second time which is later than the first time; and delete from the queue one or more of the old blocks at a time later than or equal to the second time.
Arrangements for multi-party communication, e.g. for conferences (data switching systems for conference H04L12/18; arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities H04M3/56; television conferencing systems H04N7/15) · CPC title
User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail · CPC title
Streamlined, light-weight or high-speed protocols, e.g. express transfer protocol [XTP] or byte stream · CPC title
Multimedia information · CPC title
for peripheral storage systems, e.g. disk cache · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.