Routable Application Partitioning for OLTP Load Balancing

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveserver utilizationVSAvoidperformance
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #15Dynamics

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

Engineering Contradiction:
Improverequest orderingVSAvoidscalability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Device complexity

If partitions are statically assigned to servers, then system complexity is reduced, but load balancing and failover capability are limited

Engineering Contradiction:
Improvesystem complexityVSAvoidload balancing
Core Design Contradiction:
Device complexityVSProductivity

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS7356613B2Routable application partitioning
Publication Date: 2008.04.08 GOOGLE LLC
  • US7356613B2 patent drawing
  • US7356613B2 patent drawing
  • US7356613B2 patent drawing

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.