# US 12,003,578 B2 · System and method for load balancing in a multitenant environment

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

- Number: US 12,003,578 B2
- Document ID: US12003578B2
- Status: Granted
- Kind: B2
- Application number: 18/161,695
- Filed: 2023-01-30
- Published: 2023-06-01
- Granted: 2024-06-04
- Earliest claimed: 2020-09-17
- Assignees: Open Text Holdings, Inc.
- Applicants: Open Text Holdings, Inc.
- Inventors: Anirudh Mahto; Ankit Kumar Mahto
- Web page: https://patentgrep.com/patent/US12003578B2

## CPC

- H04L 67/1008: based on parameters of servers, e.g. available memory or workload (monitoring of computer activity G06F11/30)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Embodiments provide systems and methods to load balance using tenant affinities. A method includes configuring a load balancer with a set of tenant affinities, the set of tenant affinities including a tenant affinity for each of a plurality of tenants with respect to each of a plurality of computing nodes that provide services to users in a multitenant environment. Load balancing may include receiving a user request, associated with a tenant, for a service provided by the computing nodes, determining a highest tenant affinity computing node for the tenant using the set of tenant affinities and directing the user request to the highest tenant affinity computing node for the tenant.

## Claims

### Claim 1

A method for load balancing, the method comprising:
configuring a load balancer with a set of tenant affinities including a tenant affinity for each of a plurality of tenants with respect to a plurality of computing nodes that provide services to users;
receiving a user request for a service of the provided services, the user request associated with a first tenant from the plurality of tenants;
determining a highest tenant affinity computing node having a highest tenant affinity for the first tenant from the plurality of computing nodes, using the set of tenant affinities; and
directing the user request to the highest tenant affinity computing node.

### Claim 2 (depends on 1)

The method of claim 1, wherein the highest tenant affinity computing node has a remaining capacity for handling the user request.

### Claim 3 (depends on 1)

The method of claim 1, wherein each tenant affinity in the set of tenant affinities is based on a number of users from an associated tenant assigned to an associated computing node.

### Claim 4 (depends on 3)

The method of claim 3, wherein each tenant affinity in the set of tenant affinities is based on a total number of users assigned to the associated computing node that are from the associated tenant.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
distributing a set of user requests to any of the plurality of computing nodes without using tenant affinity; and
based on a determination that a tenant affinity threshold has been reached, implementing load balancing using tenant affinity.

### Claim 6 (depends on 5)

The method of claim 5, wherein the tenant affinity threshold is a threshold number of user connections to the plurality of computing nodes.

### Claim 7 (depends on 1)

The method of claim 1, further comprising receiving the set of tenant affinities at the load balancer.

### Claim 8

A multitenant system comprising:
a plurality of computing nodes that provide services to users;
a load balancer comprising:
a set of tenant affinities including a tenant affinity for each of a plurality of tenants with respect to the plurality of computing nodes;
a processor; and
code executable by the processor, the code comprising instructions for:
receiving a user request for a service of the provided services, the user request associated with a first tenant from the plurality of tenants;
determining a highest tenant affinity computing node having a highest tenant affinity for the first tenant from the plurality of computing nodes, using the set of tenant affinities; and
directing the user request to the highest tenant affinity computing node.

### Claim 9 (depends on 8)

The multitenant system of claim 8, further comprising a second load balancer for directing user requests to any of the plurality of computing nodes without regard to tenant affinity until a tenant affinity threshold is reached.

### Claim 10 (depends on 9)

The multitenant system of claim 9, wherein the code of the load balancer is executable to override the second load balancer when the tenant affinity threshold is reached.

### Claim 11 (depends on 10)

The multitenant system of claim 10, wherein the tenant affinity threshold is a threshold number of user connections to the plurality of computing nodes.

### Claim 12 (depends on 8)

The multitenant system of claim 8, wherein the highest tenant affinity computing node has a remaining capacity for handling the user request.

### Claim 13 (depends on 8)

The multitenant system of claim 8, wherein each tenant affinity in the set of tenant affinities is based on a number of users from an associated tenant assigned to an associated computing node.

### Claim 14 (depends on 13)

The multitenant system of claim 13, wherein each tenant affinity in the set of tenant affinities is based on a total number of users assigned to the associated computing node that are from the associated tenant.

### Claim 15 (depends on 8)

The multitenant system of claim 8, wherein the load balancer receives the set of tenant affinities from the plurality of computing nodes.

### Claim 16

A non-transitory, computer-readable medium embodying thereon computer code for load balancing, said computer code comprising instructions for:
configuring a memory with a set of tenant affinities including a tenant affinity for each of a plurality of tenants with respect to a plurality of computing nodes that provide services to users in a multitenant environment;
receiving a user request for a service of the provided services, the user request associated with a first tenant from the plurality of tenants;
determining a highest tenant affinity computing node having a highest tenant affinity for the first tenant from the plurality of computing nodes, using the set of tenant affinities; and
directing the user request to the highest tenant affinity computing node.

### Claim 17 (depends on 16)

The non-transitory, computer-readable medium of claim 16, wherein the highest tenant affinity computing node has a remaining capacity for handling the user request.

### Claim 18 (depends on 16)

The non-transitory, computer-readable medium of claim 16, wherein each tenant affinity in the set of tenant affinities is based on a number of users from an associated tenant assigned to an associated computing node.

### Claim 19 (depends on 18)

The non-transitory, computer-readable medium of claim 18, wherein each tenant affinity in the set of tenant affinities is based on a total number of users assigned to the associated computing node that are from the associated tenant.

### Claim 20 (depends on 16)

The non-transitory, computer-readable medium of claim 16, wherein the computer code for load balancing comprises instructions for:
distributing a first set of user requests to any of the plurality of computing nodes without using tenant affinity; and
based on a determination that a tenant affinity threshold has been reached, implementing load balancing using tenant affinity.

### Claim 21 (depends on 20)

The non-transitory, computer-readable medium of claim 20, wherein the tenant affinity threshold is based on a number of user connections to the plurality of computing nodes.

### Claim 22 (depends on 16)

The non-transitory, computer-readable medium of claim 16, further comprising receiving the set of tenant affinities from the plurality of computing nodes.
