IP Library › Granted Patent US 9,740,708
Granted Patent B2
US 9,740,708 · App. 13/834,148 · Granted Aug 22, 2017

Systems and methods for distance and performance based load balancing

Inventors: Imad Mouline (Braintree, MA); William Ryan Breen (Melrose, MA); Timothy Frans Wills (Newton, MA); Paul Smith (Guernsey, GB)
Assignee: Everbridge, Inc.
G06F17/30241G06F17/3087H04L61/1511H04L61/609H04L67/1008H04L67/1021
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,740,708
App. No.
13/834,148
Granted
Aug 22, 2017
Kind
B2
Abstract

Systems and methods for a DNS management system utilize a distance-based and/or a performance-based A record. A DNS management system of embodiments receives a request from a client for an IP address associated with a domain name. A database of IP address location records is queried to determine a geographic location of the client in operation according to embodiments. An A record corresponding to the geographically closest available server node may thereafter be delivered to the client. A system operable according to embodiments may additionally or alternatively monitor the performance of available servers and deliver an A record corresponding to the best performing local server.

Claims (47)

1. A distance-based routing method of translating queries for domain names into internet protocol (IP) addresses, comprising:

determining performance information associated with applications hosted by available server nodes, wherein the performance information includes metrics representative of actual routing and performance of the available server nodes as experienced by client devices using the applications hosted by the available server nodes, wherein the metrics representative of the actual routing and performance of the available server nodes as experienced by the client devices include metrics accounting for: 1) actual routing and performance of data exchanged between the client devices and the available server nodes during use of the applications hosted by the available server nodes; and 2) actual routing and performance of data exchanged between the available server nodes and external systems responsive to the data exchanged between the client devices and the available server nodes during use of the applications hosted by the available server nodes;

receiving a request from a client device for an IP address associated with a domain name, the client device having a client IP address;

querying a database of IP address location records to determine a geographic location of the client device;

determining geographic distance to available server nodes based on the geographic location of the client device; and

determining a first list of domain name system (DNS) records associated with the available server nodes, wherein the first list of DNS records is ordered based on the geographic proximity of the available server nodes to the geographic location of the client device;

determining a second list of DNS records associated with the available server nodes, wherein the second list of DNS records is ordered based on the performance of the available server nodes as determined by the performance information;

comparing the performance of the server nodes identified in the first list of DNS records and the performance of the server nodes identified in the second list of DNS records to determine whether performance of the server nodes identified in the second list of DNS records provides a threshold performance improvement over the server nodes identified in the first list of DNS records; and

delivering the first list of DNS records to the client device when the performance of the server nodes identified in the second list of DNS records does not provide a threshold performance improvement over the server nodes identified in the first list of DNS records; and

delivering the second list of DNS records to the client device when the performance of the server nodes identified in the second list of DNS records provides a threshold performance improvement over the server nodes identified in the first list of DNS records.

2. The method of claim 1 , further comprising determining a geographic location of the available server nodes based on IP addresses of the available server nodes.

3. The method of claim 1 , further comprising calculating an approximate distance between the geographic location of the client device and each of the available server nodes based on latitude and longitude coordinates.

4. The method of claim 1 , further comprising delivering DNS records corresponding to equidistant or near equidistant available server nodes in a round-robin fashion.

5. The method of claim 1 , wherein the performance of the available server nodes is monitored using a network monitoring server which periodically probes the available server nodes.

6. The method of claim 1 , further comprising performing application performance monitoring to determine the performance information associated with the applications hosted by the available server nodes.

7. A non-transitory computer readable medium storing a program causing a computer to execute a process for translating queries for domain names into internet protocol (IP) addresses, the process comprising:

determining performance information associated with applications hosted by available server nodes, wherein the performance information includes metrics representative of actual routing and performance of the available server nodes as experienced by client devices using the applications hosted by the available server nodes, wherein the metrics representative of the actual routing and performance of the available server nodes as experienced by the client devices include metrics accounting for: 1) actual routing and performance of data exchanged between the client devices and the available server nodes during use of the applications hosted by the available server nodes; and 2) actual routing and performance of data exchanged between the available server nodes and external systems responsive to the data exchanged between the client devices and the available server nodes during use of the applications hosted by the available server nodes;

receiving a request from a client device for an IP address associated with a domain name, the client device having a client IP address;

querying a database of IP address location records to determine a geographic location of the client device;

determining geographic distance to available server nodes based on the geographic location of the client device;

determining a first list of domain name system (DNS) records associated with the available server nodes, wherein the first list of DNS records is ordered based on the geographic proximity of the available server nodes to the geographic location of the client device;

determining a second list of DNS records associated with the available server nodes, wherein the second list of DNS records is ordered based on the performance of the available server nodes as determined by the performance information;

comparing the performance of the server nodes identified in the first list of DNS records and the performance of the server nodes identified in the second list of DNS records to determine whether performance of the server nodes identified in the second list of DNS records provides a threshold performance improvement over the server nodes identified in the first list of DNS records; and

delivering the first list of DNS records to the client device when the performance of the server nodes identified in the second list of DNS records does not provide a threshold performance improvement over the server nodes identified in the first list of DNS records; and

delivering the second list of DNS records to the client device when the performance of the server nodes identified in the second list of DNS records provides a threshold performance improvement over the server nodes identified in the first list of DNS records.

8. The non-transitory computer readable medium of claim 7 , wherein the process further comprises calculating an approximate distance between the client device and each of the available server nodes based on latitude and longitude coordinates.

9. The non-transitory computer readable medium of claim 7 , wherein the process further comprises delivering DNS records corresponding to equidistant or near-distant available server nodes in a round-robin fashion.

10. The non-transitory computer readable medium of claim 7 , wherein the process further comprises determining a geographic location of an available server node based on its associated IP address.

11. The non-transitory computer readable medium of claim 10 , wherein the process further comprises selecting an order of the DNS records based on geographic location and performance data.

12. The non-transitory computer readable medium of claim 7 , wherein the performance information is received from a network monitoring server which periodically probes the available server nodes.

13. The non-transitory computer readable medium of claim 7 , wherein the process further comprises monitoring the performance of the available servers using a network monitoring server which periodically probes the available servers.

14. A system for translating queries for domain names into internet protocol (IP) addresses, the system comprising:

one or more servers, each of the one or more servers comprising a memory and one or more processors communicatively coupled to the memory, wherein each of the one or more servers is configured to perform operations to translate queries for domain names into IP addresses, the operations comprising:

determining performance information associated with applications hosted by available server nodes, wherein the performance information includes metrics representative of actual routing and performance of the available server nodes as experienced by client devices using the applications hosted by the available server nodes, wherein the metrics representative of the actual routing and performance of the available server nodes as experienced by the client devices include metrics accounting for: 1) actual routing and performance of data exchanged between the client devices and the available server nodes during use of the applications hosted by the available server nodes; and 2) actual routing and performance of data exchanged between the available server nodes and external systems responsive to the data exchanged between the client devices and the available server nodes during use of the applications hosted by the available server nodes;

receiving a request from a client device for an IP address associated with a domain name, the client device having a client IP address;

querying a database of IP address location records to determine a geographic location of the client device;

determining geographic distance to available server nodes based on the geographic location of the client device;

determining a first list of domain name system (DNS) records associated with the available server nodes, wherein the first list of DNS records is ordered based on the geographic proximity of the available server nodes to the geographic location of the client device;

determining a second list of DNS records associated with the available server nodes, wherein the second list of DNS records is ordered based on the performance of the available server nodes as determined by the performance information;

comparing the performance of the server nodes identified in the first list of DNS records and the performance of the server nodes identified in the second list of DNS records to determine whether performance of the server nodes identified in the second list of DNS records provides a threshold performance improvement over the server nodes identified in the first list of DNS records; and

delivering the first list of DNS records to the client device when the performance of the server nodes identified in the second list of DNS records does not provide a threshold performance improvement over the server nodes identified in the first list of DNS records; and

delivering the second list of DNS records to the client device when the performance of the server nodes identified in the second list of DNS records provides a threshold performance improvement over the server nodes identified in the first list of DNS records.

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

selecting the distance-based DNS records as a default; and

selecting the performance-based DNS records if certain criteria are met.

16. The system of claim 15 , wherein said criteria include performance, cost, and availability.

17. The system of claim 14 , wherein the operations further comprise receiving the performance information associated with the applications hosted by the available server nodes from an application performance monitoring service provider.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2023
From: EVERBRIDGE, INC.
To: CLOUDFLOORDNS, LLC
Reel/Frame 065453/0232 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2014
From: MOULINE, IMAD; BREEN, WILLIAM R.; WILLS, TIMOTHY F.; SMITH, PAUL
To: EVERBRIDGE, INC.
Reel/Frame 032357/0540 →
Continuity (2)
Provisional Application 61641270 · May 1, 2012
Related Publication 20130297596A1 · Nov 7, 2013