Systems and methods for messaging and processing high volume data over networks
US-2016219089-A1 · Jul 28, 2016 · US
US9942339B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9942339-B1 |
| Application number | US-201715586773-A |
| Country | US |
| Kind code | B1 |
| Filing date | May 4, 2017 |
| Priority date | Sep 23, 2016 |
| Publication date | Apr 10, 2018 |
| Grant date | Apr 10, 2018 |
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 device, for: receiving messages from a plurality of publishers; assigning each of the messages to one of a plurality of channels, wherein each channel comprises an ordered plurality of messages; storing messages of each of the channels in respective storage buffers according to the order, wherein each storage buffer comprises a respective time-to-live of a first time duration; for a particular channel, retrieving messages of the particular channel from respective storage buffers; storing the retrieved messages of the particular channel in a delivery buffer, the delivery buffer comprising data blocks, wherein each data block comprises a respective time-to-live of a second time duration; and providing the messages stored in the delivery buffer to a plurality of subscribers of the particular channel.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method, comprising: assigning each of a plurality of messages to one of a plurality of channels; storing messages of each of the channels in one or more respective storage buffers according to an order, wherein each storage buffer comprises a respective time-to-live of a first time duration; retrieving messages of a particular channel from respective storage buffers; storing the retrieved messages of the particular channel in a delivery buffer according to the order, wherein the delivery buffer comprises one or more data blocks, and wherein each data block comprises a respective time-to-live of a second time duration; and providing the messages stored in the delivery buffer to a plurality of subscribers of the particular channel. 2. The method of claim 1 , wherein storing the retrieved messages of the particular channel in the delivery buffer according to the order comprises: storing retrieved messages of the particular channel earlier in the order in data blocks having times-to-live that will expire sooner than data blocks used to store retrieved messages of the particular channel later in the order. 3. The method of claim 1 , wherein the delivery buffer comprises a linked list of the data blocks, and wherein retrieved messages last in the order of the particular channel are stored in a tail data block of the linked list. 4. The method of claim 1 , wherein providing the messages stored in the delivery buffer to the plurality of subscribers of the particular channel comprises: determining a connection status of a particular subscriber; and based thereon, providing one or more of the messages stored in the delivery buffer to the particular subscriber. 5. The method of claim 1 , wherein the delivery buffer resides on a first computing node, and wherein the storage buffers reside on respective second computing nodes that are different from the first computing node. 6. The method of claim 1 , wherein the delivery buffer comprises a visible area and an invisible area. 7. The method of claim 1 , further comprising: receiving the plurality of messages from a plurality of publishers. 8. The method of claim 3 , wherein storing the retrieved messages of the particular channel in the delivery buffer according to the order comprises: removing from the linked list one or more data blocks at a head of the linked list, wherein the removed data blocks comprise respective times-to-live that have expired. 9. The method of claim 6 , wherein a subscriber with a pre-existing connection is permitted to access data from both the visible area and the invisible area. 10. The method of claim 6 , wherein a subscriber with a new connection is permitted to access data from the visible area and not permitted to access data from the invisible area. 11. A system, comprising: one or more computer processors programmed to perform operations to: assign each of a plurality of messages to one of a plurality of channels; store messages of each of the channels in one or more respective storage buffers according to an order, wherein each storage buffer comprises a respective time-to-live of a first time duration; retrieve messages of a particular channel from respective storage buffers; store the retrieved messages of the particular channel in a delivery buffer according to the order, wherein the delivery buffer comprises one or more data blocks, and wherein each data block comprises a respective time-to-live of a second time duration; and provide the messages stored in the delivery buffer to a plurality of subscribers of the particular channel. 12. The system of claim 11 , wherein to store the retrieved messages of the particular channel in the delivery buffer according to the order, the one or more computer processors to: store retrieved messages of the particular channel earlier in the order in data blocks having times-to-live that will expire sooner than data blocks used to store retrieved messages of the particular channel later in the order. 13. The system of claim 11 , wherein the delivery buffer comprises a linked list of the data blocks, and wherein retrieved messages last in the order of the particular channel are stored in a tail data block of the linked list. 14. The system of claim 11 , wherein to provide the messages stored in the delivery buffer to the plurality of subscribers of the particular channel, the one or more computer processors to: determine a connection status of a particular subscriber; and based thereon, provide one or more of the messages stored in the delivery buffer to the particular subscriber. 15. The system of claim 11 , wherein the delivery buffer resides on a first computing node, and wherein the storage buffers reside on respective second computing nodes that are different from the first computing node. 16. The system of claim 11 , wherein the delivery buffer comprises a visible area and an invisible area. 17. The system of claim 13 , wherein to store the retrieved messages of the particular channel in the delivery buffer according to the order, the one or more computer processors to: remove from the linked list one or more data blocks at a head of the linked list, wherein the removed data blocks comprise respective times-to-live that have expired. 18. The system of claim 16 , wherein a subscriber device with a pre-existing connection is permitted to access data from both the visible area and the invisible area. 19. The system of claim 16 , wherein a subscriber device with a new connection is permitted to access data from the visible area and not permitted to access data from the invisible area. 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: assign each of a plurality of messages to one of a plurality of channels; store, by the one or more computer processors, messages of each of the channels in one or more respective storage buffers according to an order, wherein each storage buffer comprises a respective time-to-live of a first time duration; retrieve messages of a particular channel from respective storage buffers; store the retrieved messages of the particular channel in a delivery buffer according to the order, wherein the delivery buffer comprises one or more data blocks, and wherein each data block comprises a respective time-to-live of a second time duration; and provide, by the one or more computer processors, the messages stored in the delivery buffer to a plurality of subscribers of the particular channel.
Time to live · CPC title
at the destination endpoint, e.g. reservation of terminal resources or buffer space · CPC title
Electricity · mapped topic
using selective forwarding · CPC title
Delivery according to priorities · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.