Database Affinity Policy for Clustered Connection Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Clustered database environments face challenges in maintaining high availability and scalability, particularly in managing connections and ensuring application performance due to the complexity of configuration and management, as well as handling system failures and hardware issues.

Innovation Solution

A system that includes a data source configuration with a preferred affinity policy, such as session affinity, and a JDBC driver replay feature, which manages connections using a notification service to broadcast state changes and provides load-balancing and connection pooling, ensuring that database operations are directed to specific instances for improved performance and fault tolerance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If connection pooling is used to manage database connections, then connection management complexity is reduced and availability is improved, but connection allocation decisions become more complex requiring affinity policies

Engineering Contradiction:
ImproveavailabilityVSAvoidconnection management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments connection management into multiple affinity policies (session affinity, temporal affinity, data affinity) that can be independently configured and applied. Each policy handles specific aspects of connection allocation, allowing the system to manage complexity through structured division of responsibilities while maintaining high availability through connection pooling.

Inventive Principle:
Principle #1Segmentation

2Productivity

If session affinity policy is implemented to direct operations to specific instances, then application performance is improved through local cache utilization, but system flexibility is reduced

Engineering Contradiction:
Improveapplication performanceVSAvoidsystem flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic affinity policies that can be configured and changed at runtime. Session affinity can be enabled or disabled based on current system conditions, and the system can switch between different affinity policies (session, temporal, data) to balance performance optimization with system flexibility depending on operational requirements.

Inventive Principle:
Principle #15Dynamics

3Reliability

If multiple affinity policies are supported, then application connectivity is optimized for different scenarios, but configuration complexity increases

Engineering Contradiction:
Improveapplication connectivityVSAvoidconfiguration complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates a universal connection pool framework that can accommodate multiple affinity policies through a common interface. The same connection pool infrastructure supports session affinity, temporal affinity, and data affinity policies, allowing the system to optimize connectivity for different scenarios while managing configuration complexity through unified management mechanisms.

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

Data Source

PatentUS9064003B2System and method for improving application connectivity in a clustered database environment
Publication Date: 2015.06.23 ORACLE INT CORP
  • US9064003B2 patent drawing
  • US9064003B2 patent drawing
  • US9064003B2 patent drawing

AI summary

A clustered database environment includes multiple database instances that appear as one server. An application server can use a data source and connection pools to connect with the clustered database. A notification service broadcasts notifications describing state changes in the database instances, which are then used by the data source and connection pools to control access to the database instances. A data source configuration allows for specification of a preferred affinity policy. A session affinity policy is used to provide database instance affinity for database access made under the context of a web session, whereby database operations are directed to a particular instance for a period of time when the application may be performing multiple, related updates to a specific data set. Directing such operations to a single database instance can be used to improve application performance due to increased local cache utilization.