Connection Pool Tenant Limit Enforcement via Labeling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-tenant database environments, existing connection pool systems face challenges in efficiently managing the maximum number of connections per tenant and per database shard, leading to potential connection starvation and unfair resource distribution.

Innovation Solution

Implementing a connection pool system that enforces limits on the maximum number of connections per tenant and per database shard by using connection labeling and sharding techniques, allowing for efficient resource allocation and preventing overuse, while maintaining a parameter to track and enforce these limits.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a shared connection pool is used to improve resource utilization, then overall system efficiency is improved, but individual tenant connection limits cannot be enforced leading to unfair resource distribution

Engineering Contradiction:
Improveresource utilizationVSAvoidtenant connection limit enforcement
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The connection pool is segmented by introducing tenant identifiers and shard identifiers to connections. The system divides the shared pool into logical segments using labels, allowing enforcement of per-tenant and per-shard connection limits while maintaining physical sharing of the pool infrastructure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Labels are introduced as an intermediary mechanism between the connection pool and the tenant/shard identification system. These labels enable the pool to track and enforce connection limits for different tenants and shards without requiring separate physical pools, thus maintaining resource sharing while enabling control.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If connection limits per tenant are enforced to prevent resource starvation, then fairness is improved, but connection acquisition complexity increases

Engineering Contradiction:
Improveconnection limit enforcementVSAvoidconnection management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The connection pool performs self-service by automatically tracking connection counts per tenant and per shard, and by autonomously rejecting connections that would exceed configured limits. This eliminates the need for external monitoring and manual intervention, reducing operational complexity despite the added control mechanisms.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system implements feedback mechanisms where the connection pool continuously monitors the number of active connections per tenant and per shard, and uses this information to make real-time decisions about connection allocation. This automated feedback loop simplifies management by removing the need for external control systems.

Inventive Principle:
Principle #23Feedback

3Adaptability or versatility

If the connection pool scans sharded database topology to enforce shard limits, then connection distribution control is improved, but scan operation time increases

Engineering Contradiction:
Improveshard connection limit enforcementVSAvoidscan operation time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The connection pool performs preliminary actions by pre-establishing the sharded database topology map and maintaining it in memory. This allows the pool to quickly determine which shard a connection should access without performing scans at connection request time, thus reducing operational latency while maintaining enforcement capability.

Inventive Principle:
Principle #10Preliminary action

4Adaptability or versatility

If separate connection pools are created for each tenant to enforce limits, then connection control precision is improved, but overall resource utilization decreases

Engineering Contradiction:
Improveper-tenant connection controlVSAvoidresource utilization
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system merges multiple tenant connection requirements into a single shared physical connection pool, while using labels to maintain logical separation. This combining approach enables per-tenant connection limit enforcement while allowing idle connections from different tenants to be shared and reused, thus maintaining both control precision and resource utilization.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10909211B2System and method for control of maximum connections in a connection pool environment
Publication Date: 2021.02.02 ORACLE INT CORP
  • US10909211B2 patent drawing
  • US10909211B2 patent drawing
  • US10909211B2 patent drawing

AI summary

Described herein are systems and methods for providing access to a database in a multi-tenant environment, including the use of a connection pool, and support for limiting the maximum number of connections per tenant or per database shard. For example, when a tenant is associated with a service, configuring a maximum connections per service limit on a shared connection pool indicates to the system that the shared pool should not repurpose existing connections, or create new connections for a service, if the maximum connections per service limit has been reached for that particular service. The system can also maintain a parameter that keeps track of the total number of connections created to each shard of a sharded database. The connection pool can scan the sharded database topology, to determine which shard or sharded instance can satisfy the request, without exceeding the maximum limit for that shard.