# US 11,909,612 B2 · Partitioning health monitoring in a global server load balancing system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,909,612 B2
- Document ID: US11909612B2
- Status: Granted
- Kind: B2
- Application number: 18/102,696
- Filed: 2023-01-28
- Published: 2023-06-01
- Granted: 2024-02-20
- Earliest claimed: 2019-05-30
- Assignees: VMware, Inc.
- Applicants: VMware LLC
- Inventors: Murali Basavaiah; Anand Parthasarathy; Sreeram Iyer; Sambit Kumar Das; Narasimhan Gomatam Mandeyam
- Web page: https://patentgrep.com/patent/US11909612B2

## CPC

- H04L 43/065: related to network devices
- H04L 43/0805: by checking availability
- H04L 43/10: Active monitoring, e.g. heartbeat, ping or trace-route
- H04L 47/783: Distributed allocation of resources, e.g. bandwidth brokers
- H04L 47/828: {Allocation of resources per group of connections, e.g. per group of users}
- H04L 61/4511: using domain name system [DNS]
- H04L 67/1021: based on client or server locations
- H04L 67/1031: Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
- H04L 67/1036: Load balancing of requests to servers for services different from user content provisioning, e.g. load balancing across domain name servers
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Some embodiments provide a novel method of performing health monitoring for resources associated with a global server load balancing (GSLB) system. This system is implemented by several domain name system (DNS) servers that perform DNS services for resources located at several geographically separate sites. The method identifies several different groupings of the resources. It then assigns the health monitoring of the different resource groups to different DNS servers. The method then configures each particular DNS server (1) to send health monitoring messages to the particular group of resources assigned to the particular DNS server, (2) to generate data by analyzing responses to the sent health monitoring messages, and (3) to distribute the generated data to the other DNS servers. The method in some embodiments is performed by a set of one or more controllers.

## Claims

### Claim 1

For a global server load balancing (GSLB) that is performed by a plurality of domain name system (DNS) servers to perform DNS services for a plurality of resources located at a plurality of geographically separate sites, a method for collecting health monitoring, the method comprising:
partitioning the plurality of resources into a plurality of sets of resources;
assigning each particular set of resources to a different particular DNS server; and
configuring each particular DNS server (i) to receive a list of resources that need monitoring, (ii) to perform a look-up operation that computes a value for an identifier of each particular resource on the received list of resources and uses each particular resource's computed value as an index into a look-up table that specifies whether the particular DNS server is assigned the task of monitoring the health of the particular resource, (iii) to send health monitoring messages to each particular resource on the list of resources that is assigned to the particular DNS server based on the look-up operation, (iv) to generate data by analyzing responses to the sent health monitoring messages, and (v) to distribute the generated data to the other DNS servers.

### Claim 2 (depends on 1)

The method of claim 1, wherein the set of resources comprises a plurality of load balancers that forward data messages to backend servers.

### Claim 3 (depends on 1)

The method of claim 1, wherein the set of resources comprises different sets of load balancers that forward data messages to different sets of backend servers located at different geographical sites.

### Claim 4 (depends on 3)

The method of claim 3, wherein each set of load balancers is at the same geographical site as the set of backend servers to which it forwards data messages.

### Claim 5 (depends on 1)

The method of claim 1, wherein the set of resources comprises a plurality of backend servers that process and respond to data message flows.

### Claim 6 (depends on 5)

The method of claim 5, wherein the DNS servers receive DNS requests for at least one application executed by each of the backend servers and in response to the DNS requests, provide network addresses to access the backend servers.

### Claim 7 (depends on 6)

The method of claim 6, wherein the network addresses comprise virtual IP (Internet Protocol) addresses that direct the data message flows to a plurality of load balancers that distribute the load among the backend servers.

### Claim 8 (depends on 1)

The method of claim 1, wherein the health monitoring messages comprise one of ping messages, TCP messages, UDP messages, https messages, and http messages.

### Claim 9 (depends on 1)

The method of claim 1, wherein the data generated by analyzing responses to the health monitoring messages is used to identify a set of resources that have failed.

### Claim 10 (depends on 1)

The method of claim 1, wherein the data generated by analyzing responses to the health monitoring messages is used to identify a set of resources that have operational characteristics that fail to meet desired operational metrics.

### Claim 11

A non-transitory machine readable medium storing a program for execution by a set of processing units to collect health monitoring data in a global server load balancing (GSLB) system includes a plurality of domain name system (DNS) servers that perform DNS services for a plurality of resources located at a plurality of geographically separate sites, the program comprising sets of instructions for:
partitioning the plurality of resources into a plurality of sets of resources;
generating a look-up table to assign each particular set of resources to a different particular DNS server; and
configuring each particular DNS server (i) to receive a list of resources that need monitoring, (ii) to examine the look-up table to determine whether the particular DNS server is assigned the task of monitoring the health of each particular resource on the list of resources, (iii) to send health monitoring messages to each particular resource on the list of resources that is assigned to the particular DNS server based on the examination of the look-up table, (iv) to generate data by analyzing responses to the sent health monitoring messages, and (v) to distribute the generated data to the other DNS servers.

### Claim 12 (depends on 11)

The non-transitory machine readable medium of claim 11, wherein the set of resources comprises a plurality of load balancers that forward data messages to backend servers.

### Claim 13 (depends on 11)

The non-transitory machine readable medium of claim 11, wherein the set of resources comprises different sets of load balancers that forward data messages to different sets of backend servers located at different geographical sites.

### Claim 14 (depends on 13)

The non-transitory machine readable medium of claim 13, wherein each set of load balancers is at the same geographical site as the set of backend servers to which it forwards data messages.

### Claim 15 (depends on 11)

The non-transitory machine readable medium of claim 11, wherein the set of resources comprises a plurality of backend servers that process and respond to data message flows.

### Claim 16 (depends on 15)

The non-transitory machine readable medium of claim 15, wherein the DNS servers receive DNS requests for at least one application executed by each of the backend servers and in response to the DNS requests, provide network addresses to access the backend servers.

### Claim 17 (depends on 16)

The non-transitory machine readable medium of claim 16, wherein the network addresses comprise virtual IP (Internet Protocol) addresses that direct the data message flows to a plurality of load balancers that distribute the load among the backend servers.

### Claim 18 (depends on 11)

The non-transitory machine readable medium of claim 11, wherein the health monitoring messages comprise one of ping messages, TCP messages, UDP messages, https messages, and http messages.

### Claim 19 (depends on 11)

The non-transitory machine readable medium of claim 11, wherein the data generated by analyzing responses to the health monitoring messages is used to identify a set of resources that have failed.

### Claim 20 (depends on 11)

The non-transitory machine readable medium of claim 11, wherein the data generated by analyzing responses to the health monitoring messages is used to identify a set of resources that have operational characteristics that fail to meet desired operational metrics.
