Database Connection Governance for Multi-Tenant Networks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developing modern software applications that scale with databases while maintaining predictable performance at a reasonable cost and complexity is challenging, often requiring over-provisioning of database capacity, leading to resource wastage, increased complexity, and management overhead, with applications still facing overwhelm during unforeseen peaks.

Innovation Solution

A fully managed database connection governance system that intelligently reuses established database connections to serve multiple application requests, automatically scales capacity, and distributes workload across fault-tolerance zones, reducing the burden on developers by managing provisioning, updating, and fault tolerance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If database capacity is over-provisioned to handle peak utilization, then application performance during peak loads is improved, but resource wastage increases and management complexity increases

Engineering Contradiction:
Improveapplication performance during peak loadsVSAvoidmanagement complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

A connection governor service is introduced as an intermediary between applications and databases. This service manages database connections dynamically, allowing the system to handle peak loads without over-provisioning permanent database capacity. The governor service acts as a mediator that coordinates connection pooling, multiplexing, and governance across multiple tenants and applications.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system transitions from static database capacity provisioning to dynamic connection management. The connection governor dynamically allocates and releases database connections based on actual application needs, enabling the system to adapt to varying workloads in real-time without requiring over-provisioned static capacity.

Inventive Principle:
Principle #15Dynamics

2Speed

If database connections are kept open and idling to provide faster response, then application response time is improved, but resource wastage increases

Engineering Contradiction:
Improveapplication response timeVSAvoidresource wastage
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The connection governor implements intelligent connection pooling and reuse mechanisms. Instead of keeping all connections permanently open, the system discards idle connections after a timeout period and recovers them by reusing existing pooled connections when needed. This balances response time requirements with resource utilization efficiency.

Inventive Principle:
Principle #34Discarding and recovering

Solution Approach 2:

The system maintains database connections in a pooled state ready for rapid deployment, ensuring continuous availability of connections without permanent idle holding. The connection governor ensures that connections are continuously reused across multiple requests, extending the useful life of each connection while maintaining fast response capability.

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If database connections are multiplexed to serve multiple applications, then resource efficiency is improved, but connection management complexity increases

Engineering Contradiction:
Improveresource efficiencyVSAvoidconnection management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The connection governor service automates connection management tasks including allocation, pooling, multiplexing, and governance. The system performs self-service by automatically tracking connection states, managing tenant isolation, and coordinating resource allocation without requiring manual intervention or complex application-side implementation.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The connection governor serves multiple functions simultaneously: it manages connection pooling, handles tenant isolation, coordinates resource allocation, and provides governance across diverse applications and databases. This multi-functional approach consolidates complexity into a single service rather than requiring separate management mechanisms.

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

4Productivity

If connection pooling is implemented to reuse connections, then resource efficiency is improved, but system complexity increases

Engineering Contradiction:
Improveconnection reuse efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The connection governor acts as a centralized intermediary that implements connection pooling logic externally to applications. This mediator handles the complexity of connection tracking, state management, and pooling decisions, allowing applications to benefit from connection reuse without implementing pooling mechanisms themselves.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The connection governor continuously monitors connection usage patterns, idle times, and workload characteristics to dynamically adjust pooling parameters and connection allocation strategies. This feedback-driven approach optimizes connection reuse efficiency while adapting to changing system conditions without requiring manual tuning or complex configuration.

Inventive Principle:
Principle #23Feedback

Data Source

PatentEP4055493B1Multi-tenant provider network database connection management and governance
Publication Date: 2023.10.04 AMAZON TECH INC
  • EP4055493B1 patent drawingFigure 1
  • EP4055493B1 patent drawingFigure 2
  • EP4055493B1 patent drawingFigure 3

AI summary

Techniques for database connection management and governance in a multi-tenant provider network are described. One or more database proxy instances connect to client applications and can obtain database connections for these client applications. The database connections may be pinned to particular client applications and/or multiplexed and thus shared by multiple client connections.