Cloud Database Connection Multiplexing via URI Routing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Cloud computing database scalability is limited by the number of virtual machines, leading to increased costs and overhead due to resource sharing, as each virtual machine requires a full solution stack, restricting the number of tenants that can be serviced effectively.
Innovation Solution
Implementing techniques for routing and multiplexing connections to a cloud database using uniform resource identifiers (URIs), allowing multiple user processes to share the same database instance, thereby increasing scalability and reducing costs by optimizing resource utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If each consumer is provided with their own database instance in a virtual machine, then resource isolation and security are improved, but scalability and cost efficiency deteriorate due to the overhead of full solution stacks and limited virtual machine capacity
Solution Approach 1:
Multiple database instances are merged into a single shared database instance, allowing multiple tenants to access the same database through connection pooling and multiplexing. This eliminates the need for separate virtual machines for each database instance while maintaining logical separation through connection management, thereby improving scalability without sacrificing security.
Solution Approach 2:
A single database instance serves multiple tenants simultaneously through connection multiplexing and pooling. The database instance becomes universal, handling requests from multiple consumers through a shared connection pool, which eliminates the overhead of multiple full solution stacks while maintaining service isolation through connection management.
2Adaptability or versatility
If multiple virtual machines are deployed to service more tenants, then the number of serviced tenants increases, but infrastructure costs and operational overhead increase proportionally
Solution Approach 1:
Multiple virtual machine infrastructure instances are merged into a single shared database instance with connection pooling. This consolidation allows the same infrastructure to serve multiple tenants simultaneously through multiplexed connections, reducing the number of virtual machines needed while increasing the number of tenants serviced.
Solution Approach 2:
Instead of copying entire virtual machine instances for each tenant, the system creates logical copies through connection pooling where multiple connection handles reference the same physical database instance. This allows tenants to have isolated connection contexts without requiring separate physical or virtual infrastructure instances.
3Productivity
If connection pooling and multiplexing are implemented, then resource utilization and scalability improve, but connection management complexity increases
Solution Approach 1:
A connection pool manager acts as an intermediary between tenants and the database instance, handling connection creation, pooling, multiplexing, and termination. This intermediary abstracts the complexity of connection management from individual tenant applications while maximizing resource utilization through shared connections and multiplexed access.
Data Source
AI summary
Techniques are described herein for routing requests for database cloud services. In an embodiment, a different Uniform Resource Identifier (URI) is assigned to each respective database schema of a plurality of database schemas in one or more databases. For each respective database schema, mapping data is stored that maps at least a portion of the URI to the respective database schema. In response to receiving a first request that includes a URI and a set of one or more database commands, a target database schema in a target database is identified based on the mapping data and the URI. A connection is established for accessing the target database schema in the target database. The set of one or more database commands is sent over the connection to access the target database schema in the target database.


