Database Affinity Policy for Clustered Connection Management
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
3Reliability
If multiple affinity policies are supported, then application connectivity is optimized for different scenarios, but configuration complexity increases
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.
Data Source
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.


