Decentralized Request Routing via Client-Side Feedback
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current service-oriented architecture (SOA) systems face issues with load balancing across server fleets, as clients selecting host servers can lead to overburdening and processing delays, and hardware load balancers introduce single points of failure, cost, and maintenance challenges.
Innovation Solution
Implementing decentralized request routing logic on client and host servers, using a registry server to dynamically select host servers based on feedback information and routing algorithms, eliminating the need for hardware load balancers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If clients select host servers using DNS records with random or round robin techniques, then clients can access available host servers, but server loads become unbalanced causing processing delays and potential failures
Solution Approach 1:
The patent implements dynamic server selection where clients continuously monitor server response times and adjust their routing decisions based on real-time performance data. This dynamic approach replaces static DNS-based selection with adaptive client-side load balancing that responds to changing server conditions, resolving the contradiction by maintaining ease of operation while improving reliability through load distribution.
Solution Approach 2:
The system incorporates feedback mechanisms where clients measure server response times and use this information to make informed routing decisions. Server performance metrics are fed back to clients, enabling them to select healthier servers and avoid overloaded ones, thus balancing load while maintaining operational simplicity.
2Reliability
If hardware load balancers are deployed to balance requests across host servers, then server load balancing improves, but single points of failure, cost, and maintenance requirements increase
Solution Approach 1:
The patent extracts the load balancing functionality from centralized hardware devices and relocates it to the client side through software implementation. This eliminates the need for dedicated hardware load balancers, removing single points of failure while maintaining load balancing capabilities through distributed client-side logic that monitors and routes requests based on server performance.
Solution Approach 2:
Clients perform their own load balancing by monitoring server response times and making intelligent routing decisions independently. This self-service approach eliminates dependency on external load balancer infrastructure, reducing complexity and maintenance requirements while achieving effective load distribution across the server fleet.
3Productivity
If a fleet of hardware load balancers is deployed to handle high request volumes, then capacity limitations are addressed, but cost and maintenance time increase significantly
Solution Approach 1:
The patent replaces physical hardware load balancers with virtual software-based load balancing clients distributed across the client fleet. Each client copies the load balancing logic locally, enabling parallel processing of routing decisions without requiring centralized hardware capacity. This software-based approach scales with the number of clients rather than requiring additional hardware infrastructure.
Solution Approach 2:
The system transitions from hardware-based load balancing with fixed capacity to software-based load balancing where capacity scales dynamically with the number of clients. By changing the fundamental parameter from physical hardware resources to distributed software instances, the system achieves unlimited scalability while eliminating maintenance overhead associated with hardware fleets.
Data Source
AI summary
Systems and methods provide logic for decentralized request routing. In one implementation, a computer-implemented method routes a request. The method includes receiving, by a client server, the request. The client server evaluates feedback information received by the client server from at least one of a plurality of host servers. The client server selects one of the plurality of host servers to process the request, based on the evaluation, and transmits the request to the selected one of the plurality of host servers.


