Browse Prior Art Database

Application Shared Memory API for use with an Agent-Process-Pool-Based Database Manager Server

IP.com Disclosure Number: IPCOM000105768D
Original Publication Date: 1993-Sep-01
Included in the Prior Art Database: 2005-Mar-20
Document File: 4 page(s) / 123K

Publishing Venue

IBM

Related People

Edwards, WM: AUTHOR [+3]

Abstract

Disclosed is an invention which provides a set of Application Programming Interfaces (APIs) that allow local database application client processes to transparently obtain and use shared memory from a memory set shared with the Database Manager (DBM) engine processes. These services are expected to have a favorable impact on the performance of applications executing in the same node as the DBM server engine that they access. The reason for this is that memory allocated through these services will be directly accessible by both the DBM engine and the application, thus obviating the need for moving input or output data to private buffers.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 39% of the total text.

Application Shared Memory API for use with an Agent-Process-Pool-Based Database Manager Server

      Disclosed is an invention which provides a set of Application
Programming Interfaces (APIs) that allow local database application
client processes to transparently obtain and use shared memory from a
memory set shared with the Database Manager (DBM) engine processes.
These services are expected to have a favorable impact on the
performance of applications executing in the same node as the DBM
server engine that they access.  The reason for this is that memory
allocated through these services will be directly accessible by both
the DBM engine and the application, thus obviating the need for
moving input or output data to private buffers.

      The implementation of a DBM server using processes that run
separate from local application processes is a necessity for
integrity, security and capacity reasons.  The negative performance
impact of the interprocess communication overhead caused by this
separation can be overcome by providing the means for local
application programs and the SQL runtime library to transparently
access the shared memory used to communicate with the DBM engine
processes.  Such means are provided by this invention.

      The description of the invention disclosed consists of two
parts:  an API functional set, and the integrated design for the
underlaying support.  Each of these is explained in detail in the
paragraphs that follow.

     - API functional set: This functional set consists of a set of
five functions that allow application programs and the SQL runtime
library to obtain and free SQLDA structures as well as arbitrary size
buffers.  Each of these functions is described next, and a C language
template of each function is shown.  In the descriptions that follow,
the SQLDA, sqlvar and sqlca structures refer to the standard SQL
structures.  The SQL_API_FN qualifier is a portability element used
by all public DBM interface functions.

     - Function to obtain an SQLDA in shared memory: This function is
called by an application program to obtain an SQLDA having the number
of sqlvar structures indicated by the nvar parameter.  The dbhandle
parameter identifies the database connection whose memory set is to
be used in the allocation.  This handle is obtained through a new
database connection interface.  When the database connection has been
established through the existing interface, the dbhandle parameter is
set to the NULL value.  The address of the allocated SQLDA is
returned in the daptr output parameter.  Diagnostic information is
returned in the sqlca parameter.  This function sets the sqln field
of the SQLDA structure to the value of the nvars parameter.

     int SQL_API_FN sqlagsda(unsigned int    nvars,
                             void          * dbhandle,
                             struct sqlda ** daptr,
...