Abstract:
A method for a live migration in a multitenant clustered database aimed at providing efficient migration of transactional online databases with no service interruption or failed requests and minimal impact on quality of service. The migration is facilitated by a client connection pool, which migrates connections from the source node to the target node using a self-adapting algorithm to control the migration rate. The algorithm calculates a base migration rate according to the relative number of connections transferred to the target node. Once base migration rate is calculated, the algorithm accelerates or throttles the base migration rate based on workload behavior and system load, attempting to minimize impact on the migrated tenant, while keeping overall migration time low.
Abstract:
Implementations of PDB Sandboxing in layers and mapping to different operating systems are described. In exemplary implementations, one or more pluggable databases (PDBs) are encapsulated on common container databases to form one or more PDB sandboxes. Encapsulating PDBs forms an isolation boundary layer configured to dynamically regulate security and isolation of the PDB sandboxes. Access by processes and resources to and from the PDBs inside respective PDB sandboxes through the isolation boundary layer, and access within PDB sandboxes, is regulated using dynamic access processes that dynamically vary access to resources and process disposed within and external to the PDB sandboxes.
Abstract:
Implementations of PDB Sandboxing in layers and mapping to different operating systems are described. In exemplary implementations, one or more pluggable databases (PDBs) are encapsulated on common container databases to form one or more PDB sandboxes. Encapsulating PDBs forms an isolation boundary layer configured to dynamically regulate security and isolation of the PDB sandboxes. Access by processes and resources to and from the PDBs inside respective PDB sandboxes through the isolation boundary layer, and access within PDB sandboxes, is regulated using dynamic access processes that dynamically vary access to resources and process disposed within and external to the PDB sandboxes.
Abstract:
Embodiments provide a migration instruction that effectuates the migration of a pluggable database from a source database server instance to a destination database server instance. Upon receiving the migration instruction, the migrating pluggable database is opened at the destination instance. Connections are terminated at the source instance at a rate that is determined based on statistics maintained for one or more of: the migrating pluggable database, the source instance, the destination instance, a container database, etc. Furthermore, once the migration instruction is received, a certain amount of time is provided before the source instance flushes the dirty buffers for the migrating pluggable database from the buffer cache of the source instance. The delay in flushing dirty buffers from buffer cache allows the source instance to provide data blocks, of the migrating pluggable database, directly to the destination database server instance from the cache.
Abstract:
A method for a live migration in a multitenant clustered database aimed at providing efficient migration of transactional online databases with no service interruption or failed requests and minimal impact on quality of service. The migration is facilitated by a client connection pool, which migrates connections from the source node to the target node using a self-adapting algorithm to control the migration rate. The algorithm calculates a base migration rate according to the relative number of connections transferred to the target node. Once base migration rate is calculated, the algorithm accelerates or throttles the base migration rate based on workload behavior and system load, attempting to minimize impact on the migrated tenant, while keeping overall migration time low.
Abstract:
To schedule a software thread for execution on a CPU in a multiprocessor system, a scheduler uses both software and hardware utilization information. For a thread, resource demands (including software and hardware resource demands) are determined based on measuring resource usage while the thread executes on the multiprocessor system without being isolated from any other threads that may run concurrently. For at least two processor cores, resource usage is calculated based on any threads already running on it. The software thread is assigned to a strand in the processor core with optimum available resources given the thread's resource demands.
Abstract:
A system and method for a planned migration of service connections from a first database instance to a second database instance in a clustered database. In accordance with an embodiment, a data source and connection pool enable access by a software application to a service on the first database instance. The data source is associated with a parameter specifying a delay-for-planned-draining, and a parameter specifying a planned-draining-period, which are used to rebalance connections when relocating a service. When a service is stopped on the first database instance, the connection pool receives a “service down” event from a notification service, and maintains the connections up to a time corresponding to the delay-for-planned-draining. When a “service up” event is received, the connection pool spreads migration of the connections from the first to second database instance over the planned-draining-period.
Abstract:
To schedule a software thread for execution on a CPU in a multiprocessor system, a scheduler uses both software and hardware utilization information. For a thread, resource demands (including software and hardware resource demands) are determined based on measuring resource usage while the thread executes on the multiprocessor system without being isolated from any other threads that may run concurrently. For at least two processor cores, resource usage is calculated based on any threads already running on it. The software thread is assigned to a strand in the processor core with optimum available resources given the thread's resource demands.
Abstract:
A system and method for facilitating allocating computing resources to workloads, facilitating workload performance isolation. An example method includes determining one or more workloads to be allocated a set of computing resources in the computing environment, the one or more workloads characterized by metadata describing one or more workload properties; and using the one or more workload properties to calculate a binding between each of the one or more workloads and one or more corresponding portions of the computing resources. Plural competing workloads may be isolated by binding each workload to a disjunct set of Central Processing Units (CPUs) that share as few common hardware resources as possible given a topology the computing resources. Resource allocation adjustments need not require any reconfiguration of the system or adjustment to already provisioned workloads.
Abstract:
A system and method for facilitating allocating computing resources to workloads, facilitating workload performance isolation. An example method includes determining one or more workloads to be allocated a set of computing resources in the computing environment, the one or more workloads characterized by metadata describing one or more workload properties; and using the one or more workload properties to calculate a binding between each of the one or more workloads and one or more corresponding portions of the computing resources. Plural competing workloads may be isolated by binding each workload to a disjunct set of Central Processing Units (CPUs) that share as few common hardware resources as possible given a topology the computing resources. Resource allocation adjustments need not require any reconfiguration of the system or adjustment to already provisioned workloads.