Abstract:
In accordance with an embodiment, the system enables access to a sharded database using a cache and a shard topology. A shard-aware client application connecting to a sharded database can use a connection pool (e.g., a Universal Connection Pool, UCP), to store or access connections to different shards or chunks of the sharded database within a shared pool. As new connections are created, a shard topology layer can be built at the database driver layer, which learns and caches shard key ranges to locations of shards. The shard topology layer enables subsequent connection requests from a client application to use a fast key path access to the appropriate shard or chunk.
Abstract:
Described herein are systems and methods for providing access to a database in a multi-tenant environment, including the use of a connection pool, with support for efficient repurposing of connections. In accordance with an embodiment, a software application can request that a connection be provided, to enable access to the database. In response to receiving the request, the connection pool can first determine if a particular connection with the exact desired attributes already exists within the pool, but is borrowed at the time of the request. If such a connection exists, then the connection pool can wait a period of time for that particular connection to become available, referred to herein as a double-wait. Subsequently, if the particular connection is not made available within the double-wait time period, the connection pool resumes its usual operation, for example by repurposing other connections.
Abstract:
Techniques are provided for creating, organizing, and maintaining a sharded database. A sharded database can be created using user-defined sharding, system-managed sharding, or composite sharding. The sharded database is implemented with relational database techniques. The techniques described can be used to route database requests and process queries in a sharded database.
Abstract:
Described herein are systems and methods for providing access to a database in a multi-tenant environment, including the use of a connection pool, with support for efficient repurposing of connections. In accordance with an embodiment, a software application can request that a connection be provided, to enable access to the database. In response to receiving the request, the connection pool can first determine if a particular connection with the exact desired attributes already exists within the pool, but is borrowed at the time of the request. If such a connection exists, then the connection pool can wait a period of time for that particular connection to become available, referred to herein as a double-wait. Subsequently, if the particular connection is not made available within the double-wait time period, the connection pool resumes its usual operation, for example by repurposing other connections.
Abstract:
Described herein is a system and method for providing a level 2 connection cache for use with a database environment. In accordance with an embodiment, a second level, or level 2 (L2), connection cache is used to cache no-session connections for use with a database. When a connection is requested, a no-session connection (NSC) can be retrieved from the cache and a database session is attached. Later, when the connection is closed, the database session is logged off and the no-session connection returned to the cache for subsequent use.
Abstract:
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.
Abstract:
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 efficient connection validation. For example, the system can support a “seconds to trust idle connection” functionality, which enables lazy validation of connections in the connection pool. The seconds to trust idle connection is the time period, expressed, for example, as a number of seconds, within a particular connection usage, that the connection pool trusts that the connection is still viable, and if so will skip a connection validation test before delivering the connection to a requesting application.
Abstract:
Described herein is a system and method for providing a level 2 connection cache for use with a database environment. In accordance with an embodiment, a second level, or level 2 (L2), connection cache is used to cache no-session connections for use with a database. When a connection is requested, a no-session connection (NSC) can be retrieved from the cache and a database session is attached. Later, when the connection is closed, the database session is logged off and the no-session connection returned to the cache for subsequent use.
Abstract:
Described herein is a system and method for providing a shareable global cache for use with a database environment. In accordance with an embodiment, a shareable global cache is used for caching connections to database instances. When a request is received for a particular service, the system looks for an idle connection to that service, and, if none is available, locates an existing connection to a database instance serving that service and switches a service on the existing connection to that service.
Abstract:
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 server-side connection pool multiple tagging. For example, the system can provide a capability to associate multiple connection properties with a particular server-side connection in, e.g., an Oracle Database Resident Connection Pooling (DRCP) environment; look up a connection with one or multiple properties; and provide information about a returned connection so that a requesting application can review the properties associated with the returned connection, in order to determine how best to “fix-up” or otherwise use that connection.