摘要:
A method and apparatus allows clients to share ports on a server. The server can maintain more sessions than server ports. When a client sends a command directed to the server, a resource manager inserted between the clients and the server intercepts the command and directs the server to select the session associated with a client prior to or at the same time that the resource manager forwards the intercepted command to the server. Responses from the server are forwarded by the resource manager to the client that sent the command to which the response relates. The resource manager may be coupled to multiple clients, and one or more ports of one or more servers.
摘要:
A method and apparatus allows clients to share ports on a server. The server can maintain more sessions than server ports. When a client sends a command directed to the server, a resource manager inserted between the clients and the server intercepts the command and directs the server to select the session associated with a client prior to or at the same time that the resource manager forwards the intercepted command to the server. Responses from the server are forwarded by the resource manager to the client that sent the command to which the response relates. The resource manager may be coupled to multiple clients, and one or more ports of one or more servers.
摘要:
A method and apparatus for implementing segmented arrays in a database system. According to one embodiment of the invention, rather than allocating a contiguous block of memory for each array, the memory for storing at least selected arrays is broken into smaller pieces of memory referred to herein as memory segments. When the memory for an array is broken into memory segments, the array is referred to herein as a "segmented array." Each memory segment associated with a segmented array is divided into one or more memory areas, each of which represent an element of that array. The memory segments associated with a segmented array need not be contiguous. According to another aspect of the invention, the number of segments allocated for a segmented array can be increased or decreased during execution. According to yet another aspect of the invention, only some of the memory segments required to store a segmented array are initially allocated. The remainder of the memory segments required to store the array are allocated on an as needed basis. According to another aspect of the invention, database systems may implement all or only some arrays as segmented arrays. In a database system that supports both segmented and contiguous arrays, whether the memory for a particular array is segmented or contiguous can depend on any number of factors.
摘要:
The present invention discloses a method and apparatus for reducing the memory required to store bind variable descriptors in a database system. In embodiments of the invention, bind variable descriptors continue to be maintained in the shared cursor objects, but bind variables are no longer maintained in the instantiation objects. If the bind variables associated with an instantiation object are accurately described by the bind variable descriptors in a shared object to which the instantiation object is linked, then only data indicating the bind variables associated with the instantiation object are accurately described is maintained in the instantiation object. In contrast, if the bind variable descriptors associated with an instantiation object are not accurately described, only data describing how the attributes of the bind variables associated with the instantiation object differ from those associated with the shared cursor object are maintained in the instantiation object.
摘要:
Execution memory for use in processing a program unit for a database is allocated by inspecting an execution memory area pool for a previously allocated execution memory area. If a previously allocated execution memory area is found, then the previously allocated execution memory area is established as the execution memory area for executing the program unit. On the other hand, if a previously allocated execution memory area is not found, then a new execution memory area is allocated and configured for executing the program unit.