Enhanced shared memory based communication driver for improved performance and scalability
First Claim
1. A method, comprising:
- creating, by a client, a shared memory segment for a database server instance, wherein the database server instance and the client reside on a same computing device, and wherein the creating further comprises allocating the shared memory segment within a local memory of a first NUMA (Non-Uniform Memory Access) node of a plurality of NUMA nodes residing on the computing device;
establishing a first database connection to the database server instance using a pre-configured communication end point;
sending an identifier of the shared memory segment to the database server instance, wherein the database server instance listens to subsequent connection requests generated on the shared memory segment;
establishing a second database connection to the database server instance using the shared memory segment; and
closing the first database connection upon a successful connection of the second database connection;
allocating, within a local memory of a second NUMA node of the plurality of NUMA nodes residing on the computing device, an additional shared memory segment corresponding to an additional database server instance dynamically as the corresponding additional database server instance starts; and
establishing a database connection between an additional client and the additional database server instance using the shared memory segment.
1 Assignment
0 Petitions
Accused Products
Abstract
Enhanced shared memory based communication driver for improved performance and scalability is described. An example method includes creating a shared memory segment for a database server instance. The database server instance and a client reside on a same computing device. A first database connection is established to the database server instance using a pre-configured communication end point. An identifier of the shared memory segment for the database server instance is sent to the database server instance and the database server instance listens to subsequent connection requests generated on the shared memory segment. Moreover, a second database connection to the database server instance is established using the shared memory segment as a communication end point. Upon a successful connection of the second database connection, the first database connection is closed.
-
Citations
17 Claims
-
1. A method, comprising:
-
creating, by a client, a shared memory segment for a database server instance, wherein the database server instance and the client reside on a same computing device, and wherein the creating further comprises allocating the shared memory segment within a local memory of a first NUMA (Non-Uniform Memory Access) node of a plurality of NUMA nodes residing on the computing device; establishing a first database connection to the database server instance using a pre-configured communication end point; sending an identifier of the shared memory segment to the database server instance, wherein the database server instance listens to subsequent connection requests generated on the shared memory segment; establishing a second database connection to the database server instance using the shared memory segment; and closing the first database connection upon a successful connection of the second database connection; allocating, within a local memory of a second NUMA node of the plurality of NUMA nodes residing on the computing device, an additional shared memory segment corresponding to an additional database server instance dynamically as the corresponding additional database server instance starts; and establishing a database connection between an additional client and the additional database server instance using the shared memory segment. - View Dependent Claims (2, 3, 4, 16)
-
-
5. A method, comprising:
-
receiving, by a database server instance, a first database connection from a client using a pre-configured communication end point, wherein the client and the database server instance reside on a same computing device; receiving, by the database server instance an identifier of a shared memory segment from the client, wherein the client creates the shared memory segment on the same computing device, and wherein the shared memory segment is allocated within a local memory of a first NUMA node of a plurality of NUMA nodes residing on the computing device; sending an acknowledgement to the client based on successful receipt of the identifier; listening to client connection requests generated on the shared memory segment; receiving, by the database server instance, a second database connection from the client using the shared memory segment, wherein the first database connection is terminated upon a successful connection of the second database connection; receiving, by an additional database server instance, an identifier of an additional shared memory segment from an additional client, wherein the additional shared memory segment is allocated within a local memory of a second NUMA node of the plurality of NUMA nodes residing on the computing device, and wherein the additional shared memory segment is allocated dynamically as the additional database server instance starts; and receiving, by the additional database server instance, a database connection from the additional client using the additional shared memory segment. - View Dependent Claims (6, 7)
-
-
8. A system, comprising:
-
a memory; and at least one processor coupled to the memory and configured to; create a shared memory segment for a database server instance, wherein the database server instance and a client reside on a same computing device, and wherein to create the shared memory segment the at least one processor is further configured to allocate the shared memory segment within a local memory of a first NUMA node of a plurality of NUMA nodes residing on the computing device; establish a first database connection to the database server instance using a pre-configured communication end point; send an identifier of the shared memory segment to the database server, wherein the database server instance listens to subsequent connection requests generated on the shared memory segment; establish a second database connection to the database server instance using the shared memory segment; close the first database connection upon a successful connection of the second database connection; allocate, within a local memory of a second NUMA node of the plurality of NUMA nodes residing on the computing device, an additional shared memory segment corresponding to an additional database server instance dynamically as the corresponding additional database server instance starts; and establish a database connection to the additional database server instance using the additional shared memory segment. - View Dependent Claims (9, 10, 11, 17)
-
-
12. A system, comprising:
-
a memory; and at least one processor coupled to the memory and configured to; receive a first database connection from a client using a pre-configured communication end point, wherein the client and a database server instance reside on a same computing device; receive an identifier of a shared memory segment from the client, wherein the client creates the shared memory segment on the same computing device, and wherein the shared memory segment is allocated within a local memory of a first NUMA node of a plurality of NUMA nodes residing on the computing device; send an acknowledgement to the client based on the successful receipt of the identifier; listen to subsequent connection requests generated on the shared memory segment from the client; receive a second database connection from the client using the shared memory segment, wherein the first database connection is terminated upon a successful connection of the second database connection; receive an identifier of an additional shared memory segment from an additional client for an additional database server instance, wherein the additional shared memory segment is allocated within a local memory of a second NUMA node of the plurality of NUMA nodes residing on the computing device, and wherein the shared memory segment is allocated dynamically as the database server instance starts; and receiving a database connection from the additional client using the additional shared memory segment. - View Dependent Claims (13, 14)
-
-
15. A non-transitory computer readable storage medium having instructions encoded thereon, execution of which, by a processor, cause the processor to perform operations comprising:
-
creating, by a client, a shared memory segment for a database server instance, wherein the database server instance and the client reside on a same computing device, and wherein the creating further comprises allocating the shared memory segment within a local memory of a first NUMA (Non-Uniform Memory Access) node of a plurality of NUMA nodes residing on the computing device; establishing a first database connection to the database server instance using a pre-configured communication end point; sending an identifier of the shared memory segment to the database server, wherein the database server instance listens to connection requests generated on the shared memory segment; establishing a second database connection to the database server instance using the shared memory segment; and closing the first database connection upon a successful connection of the second database connection; allocating, within a local memory of a second NUMA node of the plurality of NUMA nodes residing on the computing device, an additional shared memory segment corresponding to an additional database server instance dynamically as the corresponding additional database server instance starts; and establishing a database connection between an additional client and the additional database server instance using the shared memory segment.
-
Specification