DYNAMIC CONFIGURATION AND SELF-TUNING OF INTER-NODAL COMMUNICATION RESOURCES IN A DATABASE MANAGEMENT SYSTEM
First Claim
1. A database management system for configuring communication resources that includes a plurality of nodes in a database instance, comprising:
- a communication manager on each node adapted to receive one of a communication resource reconfiguration request at one of a plurality of server partitions that forms a database management system (DBMS) server instance, the communication resource configuration request being received from one ofa client in the system,another server partition in the DBMS server instance, anda daemon in the one server partition;
dynamically configure a number of communication resource elements initialized in the one server partition for communication with one or more other server partitions in the DBMS server instance to satisfy the communication resource configuration request, dynamic configuration of the number of communication resource elements initialized in the one server partition being accomplished in real-time without having to stop and restart the DBMS server instance; and
,dynamically configure a number of communication resource elements initialized in the one server partition for communication with one or more other server partitions in the DBMS server instance to satisfy the communication resource configuration request, dynamic configuration of the number of communication resource elements initialized in the one server partition being accomplished in real-time without having to stop and restart the DBMS server instance;
and a communication daemon of the communication manager communicating the communication resource configuration request to at least one other server partition in the DBMS server instance using one or more communication resource elements initialized in the one server partition,wherein the communication resource configuration request received by the one server partition is a request to increase communication resources and dynamically configuring the number of communication resource elements initialized in the one server partition comprises;
computing a number of communication resource elements that needs to be initialized to satisfy the request to increase communication resources;
computing a number of memory blocks that needs to be allocated to accommodate the number of communication resource elements needed, each memory block accommodating a predefined number of communication resource elements;
determining whether there are any communication resource elements in a quarantine area of the one server partition; and
responsive to there being no communication resource element in the quarantine area of the one server partition,allocating the number of memory blocks needed from a shared memory set of the computer on which the one server partition is located, andinitializing the number of communication resource elements needed from the memory blocks allocated from the shared memory set of the computer on which the one server partition is located,wherein responsive to there being one or more communication resource elements in the quarantine area of the one server partition, the one or more communication resource elements in the quarantine area being associated with one or more memory blocks marked for dynamic de-allocation, dynamically configuring the number of communication resource elements initialized in the one server partition further comprises;
determining whether a number of communication resource elements in the quarantine area is greater than or equal to the number of communication resource elements needed;
responsive to the number of communication resource elements in the quarantine area being greater than or equal to the number of communication resource elements needed,releasing the number of communication resource elements needed from the quarantine area, andreturning the communication resource elements released from the quarantine area to a free resource pool of the one server partition, wherein responsive to the number of communication resource elements in the quarantine area being less than the number of communication resource elements needed, dynamically configuring the number of communication resource elements initialized in the one server partition further comprises;
releasing all communication resource elements in the quarantine area;
returning all communication resource elements released from the quarantine area to the free resource pool of the one server partition;
computing a number of additional communication resource elements that still needs to be initialized to satisfy the request to increase communication resources;
computing a number of additional memory blocks that still needs to be allocated to accommodate the number of additional communication resource elements still needed;
allocating the number of additional memory blocks still needed from the shared memory set of the computer on which the one server partition is located; and
initializing the number of additional communication resource elements still needed from the additional memory blocks allocated from the shared memory set of the computer on which the one server partition is located.
0 Assignments
0 Petitions
Accused Products
Abstract
A database management system in which a plurality of nodes form a database instance, each node including a communication manager for dynamically configuring inter-nodal communication resources. The communication manager receives communication resource allocation requests from clients or a self-tuning algorithm. A resource self-tuning mechanism allocates or de-allocates memory blocks used for communication resource elements dynamically in real time without cycling the instance. Memory blocks are de-allocated asynchronously by placing associated communication resource elements in quarantine until all communication resource elements associated with the memory block are quarantined.
43 Citations
6 Claims
-
1. A database management system for configuring communication resources that includes a plurality of nodes in a database instance, comprising:
-
a communication manager on each node adapted to receive one of a communication resource reconfiguration request at one of a plurality of server partitions that forms a database management system (DBMS) server instance, the communication resource configuration request being received from one of a client in the system, another server partition in the DBMS server instance, and a daemon in the one server partition; dynamically configure a number of communication resource elements initialized in the one server partition for communication with one or more other server partitions in the DBMS server instance to satisfy the communication resource configuration request, dynamic configuration of the number of communication resource elements initialized in the one server partition being accomplished in real-time without having to stop and restart the DBMS server instance; and
,dynamically configure a number of communication resource elements initialized in the one server partition for communication with one or more other server partitions in the DBMS server instance to satisfy the communication resource configuration request, dynamic configuration of the number of communication resource elements initialized in the one server partition being accomplished in real-time without having to stop and restart the DBMS server instance; and a communication daemon of the communication manager communicating the communication resource configuration request to at least one other server partition in the DBMS server instance using one or more communication resource elements initialized in the one server partition, wherein the communication resource configuration request received by the one server partition is a request to increase communication resources and dynamically configuring the number of communication resource elements initialized in the one server partition comprises; computing a number of communication resource elements that needs to be initialized to satisfy the request to increase communication resources; computing a number of memory blocks that needs to be allocated to accommodate the number of communication resource elements needed, each memory block accommodating a predefined number of communication resource elements; determining whether there are any communication resource elements in a quarantine area of the one server partition; and responsive to there being no communication resource element in the quarantine area of the one server partition, allocating the number of memory blocks needed from a shared memory set of the computer on which the one server partition is located, and initializing the number of communication resource elements needed from the memory blocks allocated from the shared memory set of the computer on which the one server partition is located, wherein responsive to there being one or more communication resource elements in the quarantine area of the one server partition, the one or more communication resource elements in the quarantine area being associated with one or more memory blocks marked for dynamic de-allocation, dynamically configuring the number of communication resource elements initialized in the one server partition further comprises; determining whether a number of communication resource elements in the quarantine area is greater than or equal to the number of communication resource elements needed; responsive to the number of communication resource elements in the quarantine area being greater than or equal to the number of communication resource elements needed, releasing the number of communication resource elements needed from the quarantine area, and returning the communication resource elements released from the quarantine area to a free resource pool of the one server partition, wherein responsive to the number of communication resource elements in the quarantine area being less than the number of communication resource elements needed, dynamically configuring the number of communication resource elements initialized in the one server partition further comprises; releasing all communication resource elements in the quarantine area; returning all communication resource elements released from the quarantine area to the free resource pool of the one server partition; computing a number of additional communication resource elements that still needs to be initialized to satisfy the request to increase communication resources; computing a number of additional memory blocks that still needs to be allocated to accommodate the number of additional communication resource elements still needed; allocating the number of additional memory blocks still needed from the shared memory set of the computer on which the one server partition is located; and initializing the number of additional communication resource elements still needed from the additional memory blocks allocated from the shared memory set of the computer on which the one server partition is located.
-
-
2. A database management system for configuring communication resources that includes a plurality of nodes in a database instance, comprising:
-
a communication manager on each node adapted to receive one of a communication resource reconfiguration request at one of a plurality of server partitions that forms a database management system (DBMS) server instance, the communication resource configuration request being received from one of a client in the system, another server partition in the DBMS server instance, and a daemon in the one server partition; dynamically configuring a number of communication resource elements initialized in the one server partition for communication with one or more other server partitions in the DBMS server instance to satisfy the communication resource configuration request, dynamic configuration of the number of communication resource elements initialized in the one server partition being accomplished in real-time without having to stop and restart the DBMS server instance; and and a communication daemon of the communication manager communicating the communication resource configuration request to at least one other server partition in the DBMS server instance using one or more communication resource elements initialized in the one server partition, wherein the communication resource configuration request received by the one server partition is a request to decrease communication resources and dynamically configuring the number of communication resource elements initialized in the one server partition comprises; computing a number of memory blocks that needs to be de-allocated to satisfy the request to decrease communication resources; resolving all communication resource elements in a free resource pool of the one server partition to a quarantine area of the one server partition; de-allocating each memory block in which all communication resource elements associated with the memory block are resolved in the quarantine area; determining whether the number of memory blocks that needs to be de-allocated has been de-allocated; and responsive to the number of memory blocks that needs to be de-allocated having been de-allocated, returning all communication resource elements that are not associated with a memory block marked for dynamic de-allocation from the quarantine area of the one server partition to the free resource pool of the one server partition, wherein responsive to the number of memory blocks that needs to be de-allocated not having been de-allocated, dynamically configuring the number of communication resource elements initialized in the one server partition further comprises; computing a number of additional memory blocks that still needs to be de allocated to satisfy the request to decrease communication resources; determining whether any memory blocks have been marked for dynamic de allocation; and responsive to no memory block having been marked for dynamic de-allocation, marking one or more memory blocks for dynamic de-allocation, a number of memory blocks marked for dynamic de-allocation being equal to the number of additional memory blocks still needed, each memory block marked for dynamic de-allocation being selected based on a number of communication resource elements associated with the memory block that is resolved in the quarantine area of the one server partition, and returning all communication resource elements that are not associated with a memory block marked for dynamic de-allocation from the quarantine area of the one server partition to the free resource pool of the one server partition, wherein responsive to one or more memory blocks having been marked for dynamic de-allocation, dynamically configuring the number of communication resource elements initialized in the one server partition further comprises; determining whether a number of memory blocks marked for dynamic de-allocation is greater than or equal to the number of additional memory blocks still needed; responsive to the number of memory blocks marked for dynamic de-allocation being greater than or equal to the number of additional memory blocks still needed, returning all communication resource elements that are not associated with a memory block marked for dynamic de-allocation from the quarantine area of the one server partition to the free resource pool of the one server partition. - View Dependent Claims (3)
-
-
4. A computer-readable medium storing computer executable instructions for configuring communication resources in database management systems, the computer executable instructions comprising:
-
receiving a communication resource configuration request at one of a plurality of server partitions that forms a database management system (DBMS) server instance, the communication resource configuration request being received from one of a client in the system, another server partition in the DBMS server instance, and a daemon in the one server partition; dynamically configuring a number of communication resource elements initialized in the one server partition for communication with one or more other server partitions in the DBMS server instance to satisfy the communication resource configuration request, dynamic configuration of the number of communication resource elements initialized in the one server partition being accomplished in real-time without having to stop and restart the DBMS server instance; and communicating the communication resource configuration request to at least one other server partition in the DBMS server instance using one or more communication resource elements initialized in the one server partition, wherein the communication resource configuration request received by the one server partition is a request to increase communication resources and dynamically configuring the number of communication resource elements initialized in the one server partition comprises; computing a number of communication resource elements that needs to be initialized to satisfy the request to increase communication resources; computing a number of memory blocks that needs to be allocated to accommodate the number of communication resource elements needed, each memory block accommodating a predefined number of communication resource elements; determining whether there are any communication resource elements in a quarantine area of the one server partition; and responsive to there being no communication resource element in the quarantine area of the one server partition, allocating the number of memory blocks needed from a shared memory set of the computer on which the one server partition is located, and initializing the number of communication resource elements needed from the memory blocks allocated from the shared memory set of the computer on which the one server partition is located, wherein responsive to there being one or more communication resource elements in the quarantine area of the one server partition, the one or more communication resource elements in the quarantine area being associated with one or more memory blocks marked for dynamic de-allocation, dynamically configuring the number of communication resource elements initialized in the one server partition further comprises; determining whether a number of communication resource elements in the quarantine area is greater than or equal to the number of communication resource elements needed; responsive to the number of communication resource elements in the quarantine area being greater than or equal to the number of communication resource elements needed, releasing the number of communication resource elements needed from the quarantine area, and returning the communication resource elements released from the quarantine area to a free resource pool of the one server partition, wherein responsive to the number of communication resource elements in the quarantine area being less than the number of communication resource elements needed, dynamically configuring the number of communication resource elements initialized in the one server partition further comprises; releasing all communication resource elements in the quarantine area; returning all communication resource elements released from the quarantine area to the free resource pool of the one server partition; computing a number of additional communication resource elements that still needs to be initialized to satisfy the request to increase communication resources; computing a number of additional memory blocks that still needs to be allocated to accommodate the number of additional communication resource elements still needed; allocating the number of additional memory blocks still needed from the shared memory set of the computer on which the one server partition is located; and initializing the number of additional communication resource elements still needed from the additional memory blocks allocated from the shared memory set of the computer on which the one server partition is located.
-
-
5. A computer-readable medium storing computer executable instructions for configuring communication resources in database management systems, the computer executable instructions comprising:
-
method for configuring communication resources in database management systems, the method comprising; receiving a communication resource configuration request at one of a plurality of server partitions that forms a database management system (DBMS) server instance, the communication resource configuration request being received from one of a client in the system, another server partition in the DBMS server instance, and a daemon in the one server partition; dynamically configuring a number of communication resource elements initialized in the one server partition for communication with one or more other server partitions in the DBMS server instance to satisfy the communication resource configuration request, dynamic configuration of the number of communication resource elements initialized in the one server partition being accomplished in real-time without having to stop and restart the DBMS server instance; and communicating the communication resource configuration request to at least one other server partition in the DBMS server instance using one or more communication resource elements initialized in the one server partition, wherein the communication resource configuration request received by the one server partition is a request to decrease communication resources and dynamically configuring the number of communication resource elements initialized in the one server partition comprises; computing a number of memory blocks that needs to be de-allocated to satisfy the request to decrease communication resources; resolving all communication resource elements in a free resource pool of the one server partition to a quarantine area of the one server partition; de-allocating each memory block in which all communication resource elements associated with the memory block are resolved in the quarantine area; determining whether the number of memory blocks that needs to be de-allocated has been de-allocated; and responsive to the number of memory blocks that needs to be de-allocated having been de-allocated, returning all communication resource elements that are not associated with a memory block marked for dynamic de-allocation from the quarantine area of the one server partition to the free resource pool of the one server partition, wherein responsive to the number of memory blocks that needs to be de-allocated not having been de-allocated, dynamically configuring the number of communication resource elements initialized in the one server partition further comprises; computing a number of additional memory blocks that still needs to be de allocated to satisfy the request to decrease communication resources; determining whether any memory blocks have been marked for dynamic de allocation; and responsive to no memory block having been marked for dynamic de-allocation, marking one or more memory blocks for dynamic de-allocation, a number of memory blocks marked for dynamic de-allocation being equal to the number of additional memory blocks still needed, each memory block marked for dynamic de-allocation being selected based on a number of communication resource elements associated with the memory block that is resolved in the quarantine area of the one server partition, and returning all communication resource elements that are not associated with a memory block marked for dynamic de-allocation from the quarantine area of the one server partition to the free resource pool of the one server partition, wherein responsive to one or more memory blocks having been marked for dynamic de-allocation, dynamically configuring the number of communication resource elements initialized in the one server partition further comprises; determining whether a number of memory blocks marked for dynamic de-allocation is greater than or equal to the number of additional memory blocks still needed; responsive to the number of memory blocks marked for dynamic de-allocation being greater than or equal to the number of additional memory blocks still needed, returning all communication resource elements that are not associated with a memory block marked for dynamic de-allocation from the quarantine area of the one server partition to the free resource pool of the one server partition. - View Dependent Claims (6)
-
Specification