IP Library Granted Patent US 9,608,928
Granted Patent B1
US 9,608,928 · App. 15/202,908 · Granted Mar 28, 2017

Multiple-speed message channel of messaging system

Inventor: Lev Walkin (Santa Clara, CA)
Assignee: Machine Zone, Inc.
H04L47/564H04L1/0002H04L43/0864H04L47/622
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,608,928
App. No.
15/202,908
Granted
Mar 28, 2017
Kind
B1
Abstract

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.

Claims (69)

1. A computer-implemented method comprising:

performing by one or more computers:

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.

2. The method of claim 1 further comprising:

determining the latency of the first connection using a round-trip delay time of the connection.

3. The method of claim 1 further comprising:

determining the latency of the first connection based on an indication of delay or missing delivery to the subscriber of one or more messages of the first channel.

4. The method of claim 3 further comprising receiving the indication from the subscriber.

5. The method of claim 3 wherein determining a latency of the first connection is further based on a second indication of delay or missing delivery to the subscriber of one or more messages of a second channel of the plurality of distinct channels.

6. The method of claim 1 further comprising:

determining a second latency of the first connection based on delay or missing delivery to the subscriber of one or more or the selected messages; and

adjusting the respective sampling rate for the first connection based on the second latency.

7. The method of claim 6 wherein adjusting the respective sampling rate for the first connection further comprises:

changing the respective sampling rate inversely to a change from the previously determined latency for the selected messages to the second latency.

8. The method of claim 1 wherein determining a respective sampling rate based on a data type further comprises:

identifying a time-varying data field of messages of the first channel;

obtaining respective data values in the time-varying data field from two or more messages of the first channel; and

determining a magnitude of changes with respect to time in the respective data values and, based thereon, determining a respective sampling rate for a particular connection.

9. A system comprising:

one or more computers programmed to perform operations comprising:

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.

10. The system of claim 9 wherein the operations further comprise:

determining the latency of the first connection using a round-trip delay time of the connection.

11. The system of claim 9 wherein the operations further comprise:

determining the latency of the first connection based on an indication of delay or missing delivery to the subscriber of one or more messages of the first channel.

12. The system of claim 11 wherein the operations further comprise receiving the indication from the subscriber.

13. The system of claim 11 wherein determining a latency of the first connection is further based on a second indication of delay or missing delivery to the subscriber of one or more messages of a second channel of the plurality of distinct channels.

14. The system of claim 9 wherein the operations further comprise:

determining a second latency of the first connection based on delay or missing delivery to the subscriber of one or more or the selected messages; and

adjusting the respective sampling rate for the first connection based on the second latency.

15. The system of claim 14 wherein adjusting the respective sampling rate for the first connection further comprises:

changing the respective sampling rate inversely to a change from the previously determined latency for the selected messages to the second latency.

16. The system of claim 9 wherein determining a respective sampling rate based on a data type further comprises:

identifying a time-varying data field of messages of the first channel;

obtaining respective data values in the time-varying data field from two or more messages of the first channel; and

determining a magnitude of changes with respect to time in the respective data values and, based thereon, determining a respective sampling rate for a particular connection.

17. An article comprising:

a non-transitory machine-readable medium having instructions stored thereon that, when executed by one or more computers, cause the computers to perform operations comprising:

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.

18. The article of claim 17 wherein the operations further comprise:

determining the latency of the first connection using a round-trip delay time of the connection.

19. The article of claim 17 wherein the operations further comprise:

determining the latency of the first connection based on an indication of delay or missing delivery to the subscriber of one or more messages of the first channel.

20. The article of claim 19 wherein the operations further comprise receiving the indication from the subscriber.

21. The article of claim 19 wherein determining a latency of the first connection is further based on a second indication of delay or missing delivery to the subscriber of one or more messages of a second channel of the plurality of distinct channels.

22. The article of claim 17 wherein the operations further comprise:

determining a second latency of the first connection based on delay or missing delivery to the subscriber of one or more or the selected messages; and

adjusting the respective sampling rate for the first connection based on the second latency.

23. The article of claim 22 wherein adjusting the respective sampling rate for the first connection further comprises:

changing the respective sampling rate inversely to a change from the previously determined latency for the selected messages to the second latency.

24. The article of claim 17 wherein determining a respective sampling rate based on a data type further comprises:

identifying a time-varying data field of messages of the first channel;

obtaining respective data values in the time-varying data field from two or more messages of the first channel; and

determining a magnitude of changes with respect to time in the respective data values and, based thereon, determining a respective sampling rate for a particular connection.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded May 19, 2020
From: COMERICA BANK
To: SATORI WORLDWIDE, LLC
Reel/Frame 052707/0769 →
RELEASE OF SECURITY INTEREST Recorded May 19, 2020
From: MGG INVESTMENT GROUP LP, AS COLLATERAL AGENT
To: MACHINE ZONE, INC.; SATORI WORLDWIDE, LLC; COGNANT LLC
Reel/Frame 052706/0917 →
SECURITY INTEREST Recorded May 22, 2018
From: SATORI WORLDWIDE, LLC
To: COMERICA BANK
Reel/Frame 046215/0159 →
NOTICE OF SECURITY INTEREST -- PATENTS Recorded Feb 2, 2018
From: MACHINE ZONE, INC.; SATORI WORLDWIDE, LLC; COGNANT LLC
To: MGG INVESTMENT GROUP LP, AS COLLATERAL AGENT
Reel/Frame 045237/0861 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2017
From: MACHINE ZONE, INC.
To: SATORI WORLDWIDE, LLC
Reel/Frame 044428/0652 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2016
From: WALKIN, LEV
To: MACHINE ZONE, INC.
Reel/Frame 039236/0916 →