Abstract:
In accordance with an embodiment, described herein is a system and method for connection concentration in a database environment. A transparency engine provided between client applications and a database can include a connection pool (e.g., UCP connection pool). The transparency engine can operate as a proxy engine for the database and as a session abstraction layer for the client applications, to enable the client applications to utilize features provided by the connection pool without code changes. The transparency engine can receive application connections from the client applications, and concentrate the application connections on a smaller number of database connections maintained in the connection pool.
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:
In accordance with an embodiment, described herein is a system and method for use of a non-blocking process with a resource pool, for example a connection pool, or another type of computing environment. A generic wait-free approach can be used with a variety of different types of resource pools and pool elements. Threads which require access to a collection of resources do not have to wait for a lock on that collection of resources to become available. Although a borrowing thread may still be required to wait for a particular resource to be released, the wait-free approach allows the thread to browse through a list of available resources. The approach can be used with connection pools, or with other types of computing environments, to provide improved scalability in such systems.
Abstract:
Transactional and non-transactional data for maintaining session state is described. In a session, a server instance receives, from a client, a request to execute transactional commands and non-transactional commands. The server instance sends at least one first directive executable at the client to store, in a first set of information, one or more first items representing one or more particular transactional commands that are open but not yet committed. The first set of information is maintained separately from a second set of information including one or more second items representing one or more particular non-transactional commands that have been processed. Based on committing one or more particular transactional commands, the server instance sends at least one second directive executable at the client to purge, from the first set of information, the one or more first items without purging, from the second set of information, the one or more second items.
Abstract:
In accordance with an embodiment, described herein is a system and method for connection concentration in a database environment. A transparency engine provided between client applications and a database can include a connection pool (e.g., UCP connection pool). The transparency engine can operate as a proxy engine for the database and as a session abstraction layer for the client applications, to enable the client applications to utilize features provided by the connection pool without code changes. The transparency engine can receive application connections from the client applications, and concentrate the application connections on a smaller number of database connections maintained in the connection pool.
Abstract:
In accordance with an embodiment, a system enables multidimensional search within a resource pool, to support complex borrow operations such as, for example, specifying ranges for particular connection properties. As threads access the pool, attempting to borrow connections having particular connection properties, one or more skipped pool elements can be represented as skip lists within a k-dimensional tree (KD-tree) or other data structure that enables searching across multiple dimensions. In response to receiving a request to borrow a connection having particular connection properties, a multidimensional search can be performed within the KD-tree to determine the availability of a connection having the requested properties.
Abstract:
A system and method for reducing communications overhead in a distributed transaction processing environment such as an XA environment. In accordance with an embodiment communication overhead is reduced in a transaction start method by deferring a transaction start communication. The deferred transaction start communication is determined from a subsequent transaction processing communication thereby reducing the number of networks calls required for each transaction and enhancing system performance.
Abstract:
A security solution provides secure communication in a multi-tenant environment which includes a connection-based fabric, storage cells holding data associated with different tenants, database servers which provide a plurality of database services using said data, application servers hosting database service consumers. The fabric is configured into partitions isolating the storage cells from the database service consumers. The application servers securely associate unique database service consumer identities with each database service consumer and all communications with the database servers. The database servers reject all communications from the application servers which do not include an identity and use an access control list to control access from the database service consumers to the database services using address resolution access control, connection establishment access control, and data exchange access control based on said access control list. DoS attack prevention can also be performed based on consumer identities included in packets.
Abstract:
A security solution provides secure communication in a multi-tenant environment which includes a connection-based fabric, storage cells holding data associated with different tenants, database servers which provide a plurality of database services using said data, application servers hosting database service consumers. The fabric is configured into partitions isolating the storage cells from the database service consumers. The application servers securely associate unique database service consumer identities with each database service consumer and all communications with the database servers. The database servers reject all communications from the application servers which do not include an identity and use an access control list to control access from the database service consumers to the database services using address resolution access control, connection establishment access control, and data exchange access control based on said access control list. DoS attack prevention can also be performed based on consumer identities included in packets.