Systems and methods for storing and transferring message data
US-9407593-B1 · Aug 2, 2016 · US
US9860186B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9860186-B1 |
| Application number | US-201715433525-A |
| Country | US |
| Kind code | B1 |
| Filing date | Feb 15, 2017 |
| Priority date | Jul 6, 2016 |
| Publication date | Jan 2, 2018 |
| Grant date | Jan 2, 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 medium, for receiving from a plurality of publishers messages of a first channel of a plurality of distinct channels wherein each channel comprises an ordered plurality of messages, storing messages of the first channel in one or more first buffers according to the order, each first buffer having a respective time-to-live, for one or more connections, determining a respective sampling rate based on a data type of the first channel and a determined latency of the connection, receiving from a subscriber through a first connection a request for messages of the first channel, selecting messages in the first buffers according to the order and the sampling rate, and sending the selected messages using the first connection to the subscriber according to the order.
Opening claim text (preview).
What is claimed is: 1. A method, comprising: storing messages of a channel of a plurality of channels in one or more buffers according to an order, wherein each buffer comprises a respective time-to-live; for one or more connections, determining, by one or more computer processors, a respective sampling rate based on one of a data type of the channel and a determined latency of each connection; receiving a request for messages of the channel from a subscriber through a connection of the one or more connections; selecting messages from the one or more buffers according to the sampling rate; and sending the selected messages to the subscriber according to the order using the connection. 2. The method of claim 1 , comprising: receiving messages of the channel from a plurality of publishers. 3. The method of claim 2 , wherein the order comprises the order in which messages of the channel were received. 4. The method of claim 1 , wherein determining the respective sampling rate based on the data type of the channel comprises: identifying a time-varying data field in messages of the channel; obtaining respective data values in the time-varying data field from two or more messages of the channel; and determining a magnitude of changes in the respective data values with respect to time to determine the respective sampling rate for each connection. 5. The method of claim 1 , wherein determining the respective sampling rate based on the data type of the channel comprises: identifying one or more messages of the channel having a prioritized message data type, wherein sampling does not skip messages having the prioritized message data type for delivery to the subscriber. 6. The method of claim 1 , comprising: determining the latency of the connection based on an indication of at least one of a delay and a missing delivery to the subscriber of one or more messages of the channel. 7. The method of claim 6 , wherein the indication is received from the subscriber. 8. The method of claim 1 , comprising: determining the latency of the connection based on an indication of at least one of a delay and a missing delivery to the subscriber of one or more messages of another channel of the plurality of channels. 9. The method of claim 1 , comprising: determining a second latency of the connection; and adjusting the sampling rate for the connection based on the second latency. 10. The method of claim 1 , wherein messages are selected from the one or more buffers that have not expired. 11. A system, comprising: one or more computer processors programmed to: store messages of a channel of a plurality of channels in one or more buffers according to an order, wherein each buffer comprises a respective time-to-live; for one or more connections, determine a respective sampling rate based on one of a data type of the channel and a determined latency of each connection; receive a request for messages of the channel from a subscriber through a connection of the one or more connections; select messages from the one or more buffers according to the sampling rate; and send the selected messages to the subscriber according to the order using the connection. 12. The system of claim 11 , wherein the one or more computer processors further programmed to receive messages of the channel from a plurality of publishers. 13. The system of claim 12 , wherein the order comprises the order in which messages of the channel were received. 14. The system of claim 11 , wherein to determine the respective sampling rate based on the data type of the channel, the one or more computer processors are programmed to: identify a time-varying data field in messages of the channel; obtain respective data values in the time-varying data field from two or more messages of the channel; and determine a magnitude of changes in the respective data values with respect to time to determine the respective sampling rate for each connection. 15. The system of claim 11 , wherein to determine the respective sampling rate based on the data type of the channel, the one or more computer processors are programmed to: identify one or more messages of the channel having a prioritized message data type, wherein sampling does not skip messages having the prioritized message data type for delivery to the subscriber. 16. The system of claim 11 , wherein the one or more computer processors further programmed to: determine the latency of the connection based on an indication of at least one of a delay and a missing delivery to the subscriber of one or more messages of the channel. 17. The system of claim 11 , wherein the one or more computer processors further programmed to: determine the latency of the connection based on an indication of at least one of a delay and a missing delivery to the subscriber of one or more messages of another channel of the plurality of channels. 18. The system of claim 11 , wherein one or more computer processors further programmed to: determine a second latency of the connection; and adjust the sampling rate for the connection based on the second latency. 19. The system of claim 11 , wherein messages are selected from the one or more buffers that have not expired. 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: store messages of a channel of a plurality of channels in one or more buffers according to an order, wherein each buffer comprises a respective time-to-live; for one or more connections, determine, by the one or more computer processors, a respective sampling rate based on one of a data type of the channel and a determined latency of each connection; receive a request for messages of the channel from a subscriber through a connection of the one or more connections; select messages from the one or more buffers according to the sampling rate; and send the selected messages to the subscriber according to the order using the connection.
Time to live · CPC title
by adapting the transmission rate · CPC title
with rate being modified by the source upon detecting a change of network conditions · CPC title
QOS or priority aware · CPC title
Round trip delays · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.