Client-Side Load Balancing via DNS Range Selection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current network load balancing (NLB) techniques, both hardware and software, face limitations in scalability and reliability, often resulting in bottlenecks and adverse user experiences, particularly in large server clusters where centralized load balancing can become inefficient and expensive.

Innovation Solution

Implementing client-side load balancing through a Domain Name System (DNS) that distributes range information about real IP addresses associated with a virtual IP address, allowing clients to statistically select a server for connection, thereby shifting the load balancing from centralized servers to distributed clients.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If centralized network load balancing (hardware or software) is used to manage server clusters, then load distribution can be achieved, but scalability is limited and bottlenecks occur under high traffic conditions

Engineering Contradiction:
Improveload balancing capabilityVSAvoidsystem scalability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the centralized load balancing function into distributed client-side operations. Instead of a single centralized controller, each client independently performs load balancing decisions using local DNS resolution, dividing the system's load balancing capability across multiple independent nodes.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent inverts the traditional architecture where servers centrally manage load balancing. Instead, clients perform DNS resolution and select servers independently, reversing the control flow from server-centric to client-centric load balancing.

Inventive Principle:
Principle #13The other way round (Inversion)

2Ease of operation

If hardware network load balancing devices are deployed to manage large server clusters, then centralized control is achieved, but system cost increases and single points of failure are created

Engineering Contradiction:
Improvecentralized controlVSAvoidsystem reliability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent implements self-service load balancing where clients autonomously perform DNS resolution and server selection without requiring centralized hardware controllers. Each client independently makes load balancing decisions, eliminating the need for external load balancing appliances.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent makes standard DNS infrastructure universal for load balancing purposes. The existing DNS system, already present in all client environments, is extended to carry additional server range information and perform load balancing functions, eliminating the need for specialized hardware devices.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Device complexity

If all cluster members receive all incoming requests in software load balancing, then simple implementation is achieved, but overall scalability remains unsatisfactory

Engineering Contradiction:
Improveload balancing implementationVSAvoidsystem scalability
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent performs preliminary filtering at the DNS resolution stage before requests reach the cluster. By resolving DNS names to specific server IP ranges in advance and allowing clients to select from multiple ranges, the system pre-distributes traffic before it reaches the servers, improving scalability without complex per-request filtering.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7930427B2Client-side load balancing
Publication Date: 2011.04.19 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7930427B2 patent drawing
  • US7930427B2 patent drawing
  • US7930427B2 patent drawing

AI summary

An exemplary method for load balancing includes accessing a range of values for IP addresses associated with a virtual IP address associated with a domain name; selecting, using a local statistical algorithm, a value in the range; and, based at least in part on the selected value, connecting to a remote resource at one of the IP addresses. In such a method, a client can perform local load balancing when connecting to one of many fungible resources “behind” a virtual IP address. With many such clients, the task of load balancing is distributed as opposed to being centralized at a server farm or cluster. Other methods, devices and systems are also disclosed.