Method and system for detecting latency in a wide area network
AssigneePubNub, Inc.
InventorStephen L. Blum
Life of this patent
Estimating the term…
Abstract
A method of detecting latency in message delivery in a communication network is disclosed. One or more data centers receives messages that are to be published via the communication network. The system receives queries from subscribers, processes the queries and transmits messages to the subscribers in response to the queries. The subscribers acknowledge the messages. The system uses its own processing time and the acknowledgement time to assess latency in message delivery. The system also may use the information to determine which data center or geographic location is experiencing relatively higher latency than other data centers or locations.
Claims20
A method of detecting latency in a communication network, the method comprising:
- by a system comprising a processor and a first data center of a plurality of geographically distributed data centers:
- receiving a plurality of messages that are to be published via a communication network;
- receiving a plurality of queries from an electronic device of a first subscriber;
- in response to each query, transmitting one or more of messages from the first data center to the first subscriber via the communication network;
- for each query, determining a processing time (req_ti) that the system took to respond to the query;
- receiving, from the electronic device of the first subscriber for one or more of the transmitted messages, an acknowledgement of receipt;
- for each acknowledgement of receipt, determining a total time (timen) representing a time from when the system received an associated query from the first subscriber to a time at which the first data center received the acknowledgement;
- assessing latency of the communication network for the first subscriber as a function of the determined processing times (req_ti) and the determined total times (timen);
- in response to a plurality of queries from a plurality of additional subscribers, transmitting an additional one or more of the messages to each additional subscriber from the first data center via the communication network;
- for each query from each additional subscriber:
- determining a processing time (req_ti) that the system took to respond to the query from the additional subscriber, and
- determining a total time (timen) representing a time from when the system received the query from the additional subscriber to a time at which the first data center received an acknowledgement from the additional subscriber;
- and
- assessing an aggregated latency of the communication network as a function of the determined processing times (req_ti) and the determined total times (timen) for the queries from the additional subscribers;
- comparing the aggregated latency of the communication network with the assessed latency of the communication network for the first subscriber;
- and
- upon detecting that the assessed latency of the communication network for the first subscriber exceeds the aggregated latency of the communication network by a threshold, selecting, from the geographically distributed data centers, an alternate data center to transmit future messages to the first subscriber.
A communication system, comprising:
- a processor;
- and
- a computer readable storage medium containing programming instructions that are configured to cause the processor to:
- receive a plurality of messages that are to be published via a communication network,
- receive a plurality of queries from an electronic device of a first subscriber,
- in response to each query, transmit one or more of messages from a first data center of a plurality of geographically distributed data centers to the first subscriber via the communication network,
- for each query, determine a processing time (req_ti) that the system took to respond to the query,
- receive, from the electronic device of the first subscriber for one or more of the transmitted messages, an acknowledgement of receipt,
- for each acknowledgement of receipt, determine a total time (timen) representing a time from when the system received an associated query from the first subscriber to a time at which the data center received the acknowledgement,
- assess latency of the communication network for the first subscriber as a function of the determined processing time (req_ti) and the determined total times (timen),
- in response to a plurality of queries from a plurality of additional subscribers, transmit an additional one or more of the messages to each additional subscriber from the first data center via the communication network;
- for each query from each additional subscriber:
- determine a processing time (req_ti) that the system took to respond to the query from the additional subscriber;
- and
- determine a total time (timen) representing a time from when the system received the query from the additional subscriber to a time at which the first data center received an acknowledgement from the additional subscriber,
- assess an aggregated latency of the communication network as a function of the determined processing times (req_ti) and the determined total times (timen) for the queries from the additional subscribers, and
- compare the aggregated latency of the communication network with the assessed latency of the communication network for the first subscriber, and
- upon detecting that the assessed latency of the communication network for the first subscriber exceeds the aggregated latency of the communication network by a threshold, select, from the geographically distributed data centers, an alternate data center to transmit future messages to the first subscriber.
Dependencies are inferred from the claim text.