Routable Application Partitioning for OLTP Load Balancing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current algorithms for distributing requests across multiple servers in online transaction processing (OLTP) applications lead to performance degradation due to handling varied requests, dependency on specific state access, and inability to process requests in order, resulting in single-server bottlenecks and failure points.
Innovation Solution
A method that determines active partitions of an application and assigns them among servers via a routing table, allowing clients to send requests to active partitions, with the ability to reassign partitions in case of server failure or loading imbalance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If requests are distributed across multiple servers using traditional algorithms, then server utilization is improved, but performance degrades due to inability to handle varied request types and maintain request ordering
Solution Approach 1:
The application is segmented into multiple partitions, each handled by a different server. This allows specialized handling of different request types while maintaining overall system distribution. Each partition can be independently managed and optimized for specific request patterns.
Solution Approach 2:
The system dynamically assigns partitions to servers based on current load conditions and request patterns. The routing table is updated in real-time to reflect current partition-to-server mappings, allowing the system to adapt to changing conditions and maintain optimal performance.
2Reliability
If all requests are routed to a single server, then request ordering and state access are maintained, but the system has a single point of failure and limited scalability
Solution Approach 1:
The application state is segmented into multiple partitions distributed across servers. Each partition maintains its own state and request ordering independently. This allows the system to scale horizontally while preserving the benefits of stateful processing within each partition.
Solution Approach 2:
A routing table acts as an intermediary between clients and servers, directing requests to the appropriate partition based on the current routing information. This mediator enables clients to access distributed partitions while maintaining the appearance of a unified system.
3Device complexity
If partitions are statically assigned to servers, then system complexity is reduced, but load balancing and failover capability are limited
Solution Approach 1:
The routing table provides dynamic partition-to-server mapping that can be updated without changing the fundamental system architecture. This allows load balancing and failover capabilities to be added with minimal increase in system complexity, as the routing layer handles dynamic behavior while servers maintain relatively simple roles.
Solution Approach 2:
The system monitors server load and partition performance, using this feedback to dynamically update the routing table. This feedback mechanism enables automatic load balancing and failover while maintaining manageable system complexity through centralized routing management.
Data Source
AI summary
A method, apparatus, system, and signal-bearing medium that in an embodiment determine the active partitions of an application and assign the active partitions among servers via a routing table. The routing table is sent to a client, who uses the routing table to send requests and/or messages to the active partitions. In an embodiment, the routing table includes identifiers of the active partitions and the associated partitions. If one of the servers fails or if the partitions have a loading imbalance, the partitions are reassigned via the routing table.


