The present invention generally relates to computer networking and network environments including node computers and computer components. More particularly, and without limitation, the invention relates to accessing a persistent database system to effect reading, writing and/or mutating accesses to one or more electronic databases, the one or more databases having a minimum access time.
Many organizations base their business on networked computers, in which numerous computer software application programs, which are executed or called by users, access the resources (e.g., hardware or software or infrastructure) of a network of computers via middleware, operating systems, and other computer program components. There exist organization models where practically all of the data relevant for carrying out the business is maintained in one or more highly available electronic databases managed by one or more database engines. Access to such databases may be effected through Standard Query Language (SQL) calls. In large entities (e.g., public administrations, financial institutions, insurance companies, etc.) this can amount to millions of SQL calls per day to be carried out during the normal operation in the computer databases of that entity. Depending on the implemented architecture of the computer network and the structure of the data repository containing the databases, these SQL calls can amount to a significant share of computer processing load. Effecting such SQL calls requires the necessary data processing capacities (i.e., CPU time) which are then not available for other tasks.
It is an ever-present requirement to maintain low response times of databases. It is also a requirement to optimally employ the required resources (e.g., hardware or software or infrastructure) of the computer network.
In accordance with an embodiment of the invention, a computer-implemented system is provided in a network comprised of several node computers and a plurality of program components, having access to a highly available, persistent database system to effect reading, writing and/or mutating accesses to one or more databases, the one or more databases having a minimum access time. Separate and distinct from the database system, a data space system is also provided which is organized as one or more data space system segments. This data space system has a minimum access time which is lower than the minimum access time of the database system.
In accordance with a further embodiment, a computer software program module is provided that is programmed and suited to provide, upon a call to obtain a certain information record from a database system by an application software program, the following functionality: sending a retrieving demand for a demanded information record to a data space system, and if the demanded information record can be retrieved from the data space system, then pasting the demanded information record out of the data space system, providing the demanded information record to the application software program, and setting a status identifier in a status record to ‘successful’. In case the status identifier in the status record is not set to ‘successful’, retrieving the demanded information record from the database system, providing the demanded information record to the application software program, and copying the demanded information record to the data space system. An expiration period entry may be attached to the information record copied to the data space system.
A persistent database system may be hosted on a mainframe or other types of computers like central data centers which provide high availability. High availability can be measured in fully functional uptime or in downtime. For example, if measured in uptime, an uptime of 99.999% may be the guaranteed minimum that is required. As a further example, if measured in downtime, 0.001% may be the maximum downtime tolerated for such highly available central data centers. Accessing information in such central data centers via SQL calls is relatively time-consuming and processor capacity intensive. Embodiments of the invention may be useful and most noticeable when a data space in the data space system is provided for information data that is often-times read but relatively rarely modified. Significant speed gains are achievable by accessing this information data via the computer software program module from the data space system having shared memory instead of reading this information data from a database system in the central data centers via SQL calls.
Examples of information records or data particularly suited for being held in and read-out from the afore-described data space system include data records that do not change too often (e.g., one time per day), but is required to be read out a large number of times. Data records like calendar data, time zone data, number of decimal positions of currency conversion rates, reference data, network resource configuration data, or the like, meet this categorization.
In accordance with an embodiment of the invention, the data space system can be maintained using a computer software data space manager program which provides the possibility to maintain and use such data spaces. These data spaces are then used to store heavily used, but very rarely changed data. Significant execution speed gains may be achieved by accessing this data kept in shared memory instead of reading from a highly available, persistent database system.
In accordance with another embodiment of the invention, a computer network environment is provided with multiple logical partitions. A computer software data space manager program is executed as a started task on every logical partition. On start-up, the computer software data space manager program can establish a cross memory environment to allow other address spaces to effect synchronous cross memory communication. A cross memory environment can be described by tables and linkages that connect a service provider's address space to a user's address space and by tables and linkages that provide the necessary authorization for the service provider. The cross memory environment also encompasses program call numbers used to initiate cross memory communication. User requests are handled by program call routines within the computer software data space manager address space. The information needed to call these program call routines is provided to the users by programs that allow to share data between two programs running under the same task, or between two or more tasks or address spaces.
In a yet a further embodiment of the invention, configuring of data space system segments (herein also referred to as “clipboards”) is done by a configuration program module that can be programmed and suited to receive from an application software program a parameter profile comprising the name of the data space system segment, and an expiration period after which an entry expires, and/or a key length for retrieving an information record, and/or a maximum record length of a data space system segment, and/or a maximum number of records to keep in a data space system segment.
Consistent with embodiments of the invention, the computer software program module can be programmed prior to providing demanded information record(s) pasted out of the data space system to the application software program, examining the expiration period entry attributed to the data space system segment from which the information record is to be retrieved, and if the expiration period entry has expired, not providing the information record from the data space system segment to the application software program.
The computer software program module can also be programmed and be suited to effect on the data space system one or more of the following requests: create data space segment, copy data space segment, activate data space segment, clear data space segment, list data space segment(s), put data to passive data space segment, get data from data space segment, put data to active data space segment, and search information record in data space segment.
In one embodiment, the information needed to configure a data space segment is the clipboard name (e.g., maximum 8 characters), the time (e.g., in minutes) after which an entry in this clipboard expires, the length of the key (e.g., maximum 256 characters), the maximum length of an information data record in a data space segment (e.g., maximum 1,048,576 bytes), and the number of records to keep in a data space segment. The maximum number of records per clipboard may be dependent on: the requirements of the application software program, the maximum record length, and/or the maximum size of a data space. The range for the maximum number of records per clipboard can range from 1 to over one million. In one embodiment, these five items (clipboard name, expiration time in minutes after which an entry expires, key length, maximum length of a clipboard record, maximum number of records to keep in a clipboard) may form—amongst others—the header of each data space segment, that is the clipboard header.
In certain embodiments, the computer software program module can utilize the computer software program data space manager to provide an easier interface to the data space segments for application programs. Main functions of the computer software program module to access the clipboards may include, for example, copy, paste and refresh. With the copy-function, the application software program can copy some data with an expiration time, identified by a key and a clipboard name, to a non-persistent storage. With the paste-function, the application software program can paste some data, identified by a key and a clipboard name, from a non-persistent storage. With the refresh-function, the application software program can set all entries within a clipboard to have a certain name on all logical partitions present in the system to the status ‘invalid’.
In one embodiment, on a refresh request from a user, the refresh counter, which is another item within the clipboard header, is incremented by one. This value also is stored in the header of every clipboard entry during a copy request. Therefore, these two values can be compared during a paste request. If both values, the one in the clipboard header and the one from the clipboard entry, are identical, no refresh has been carried out since the last copy of this clipboard entry (i.e., the data record). If a refresh has not been carried out, the complete field must be compared.
In another embodiment, prior to using the clipboards, an application program applies for or requests a data space segment. Requested data space segments are initialized at the time the entire system is (re)started. The relevant information of all configured clipboards is held within an extended common service area. The common service area contains pageable and fixed data areas that are addressable by all active virtual storage address spaces. The common service area normally contains data referenced by a number of system address spaces, enabling address spaces to communicate by referencing the same piece of common service area data. The computer software program module uses the computer software program data space manager to create a data space and to put header information into it. The computer software program data space manager returns to the computer software program module an access list entry token. The access list entry token identifies the access list entry that points to the data space just created. The computer software program module therefore can access the data space segment with the access list entry token returned by the computer software program data space manager, rather than accessing it via cross memory communication. This technique is faster because no time-consuming switching of the address space is necessary.
In yet another embodiment of the invention, the procedure of using the data space segments can be as follows: an application program tries—prior to actually effecting an SQL call—to paste an information data record with a given key out of a data space segment by using the computer software program. If the computer software program module returns the information data record, the application program can use it. If the computer software program module does not return the information data record, the application program will retrieve the information data record by effecting an SQL call from somewhere else and copy it, before or after using it, to the data space segment where it will be available for the next paste request. Every data space segment has an expiration period. If a record in a data space segment has expired, the computer software program module will not return this record on a paste request even if it were available. If the persistent data source of an information data record changes, the application program can request a refresh of the corresponding data space segment. In systems with several logical partitions, the refresh can either be effected asynchronously or synchronously.
Further details, possible modifications or alternatives, and improvements will become evident in connection with the following detailed description and referenced drawings.
Further details and advantages will become apparent when reference is made to the following detailed description and the accompanying drawings.
a is a schematic illustration of a conventional network architecture including a database.
b is a schematic illustration of a network architecture, consistent with an embodiment of the invention, that includes a database and a data space used for avoiding access to the database by providing a data space segment from where information data can be retrieved.
a is a schematic illustration of a conventional procedure to access a database.
b is a schematic illustration of an approach, consistent with an embodiment of the invention, to avoid access to a database by providing a data space segment from where information data can be retrieved.
In the following description, for purposes of explanation and not limitation, specific techniques and embodiments are set forth, such as particular sequences of steps, interfaces and configurations, in order to provide a thorough understanding of the techniques presented herein. While the techniques and embodiments will primarily be described in context with the Internet and the IP standard, it is clear that the techniques and embodiments can also be practiced in other network types and using different communication protocols.
Those skilled in the art will further appreciate that the functions explained herein below may be implemented using software functioning in conjunction with a programmed microprocessor or general purpose computer. It will also be appreciated that while the following techniques and embodiments are primarily described in the form of methods and apparatuses, the techniques and embodiments may also be implemented in computer program products as well as in systems comprising a computer processor and a memory coupled to the processor, wherein the memory is encoded with one or more programs that may realize the functions disclosed herein.
a depicts a conventional network comprised of several node computers 10a, . . . 10c and a plurality of application program components hosted on respective servers ASP having access to a highly available, persistent database system DBS. The application program components can directly or indirectly effect accesses to one or more databases DB1, DB2 hosted/managed by the database system mainframe DBS through SQL calls, as outlined in the schematic of
b depicts a network, consistent with an embodiment of the invention, that is comprised of several node computers 10a, . . . 10c and a plurality of application program components hosted on respective servers ASP having access to a highly available, persistent database system DBS. The application program components can directly or indirectly effect reading, writing and/or mutating accesses to one or more databases DB1, DB2 hosted/managed by the database system mainframe DBS through SQL calls, as outlined in the schematic of
A computer software program module, i.e., Clipboard Service (see
Before the Clipboard Service can be used by an application, it has to order a clipboard Profile. In one embodiment, there are five parameters needed to configure a clipboard:
To call the Clipboard Service, the copybook CCRCFACD has to be inserted within the working-storage of the calling module. This copybook contains the module name of the Clipboard Service.
All Clipboard Service functions can be called the following way (in COBOL):
If the Clipboard Service is not initialized or the requested Clipboard-Name is not configured, a non-zero status will be returned in the status-field RESULT-RC1. The Parameter SVC-STD is passed as the first argument on the Clipboard Service Call. It contains, among others, a RESULT-RC1 status field. This field is checked only in a Clipboard-Paste function to check if a record was returned or not. After all other functions (e.g., Clipboard-Refresh or Clipboard-Copy), the return status does not need to be checked. If a check is necessary, a RESULT-RC2 field explains the reason if RESULT-RC1 is 4.
The Parameter CCRCBAPI is passed as the second argument on the Clipboard Service call. The contents of its individual fields are explained in the following sections.
The Parameter User-Record is passed as the third argument on the functions Clipboard-Copy and Clipboard-Paste. The data within this User-Record will be written to, or read from the Clipboard—depending on the function. This argument can be omitted in a Clipboard-Refresh call.
The following sections describe all the Clipboard Service functions in detail.
With the ClipBoard-Copy function, the record “User-Record” will be copied to the Clipboard named “name”, with a key of “key”. Its calling sequence can be as follows:
With the Clipboard-Paste function, the record “User-Record” will be read from the Clipboard named “name”, with a key of “key”. If the record can not found within the Clipboard, a non-zero status (i.e., not ‘successful’) will be returned in RESULT-RC1 and the record is to be retrieved from the databases DB1, DB2 and copied afterwards to the Clipboard. Its calling sequence can be as follows:
If the RESULT-RC1 is zero, the requested User-Record with a key of ‘key’ was retrieved from the Clipboard named ‘name’. There are no other checks needed after a Clipboard-Paste call.
With the Clipboard-Refresh function, all Clipboard entries of the Clipboard named ‘name’ will be invalidated. The refresh may be done asynchronously and on all logical partitions of a system. Its calling sequence can be as follows:
The function Clipboard-Paste-Size can be used by programs with dynamic buffer allocation. As the size of a Clipboard record can be unknown, the program first can retrieve the size of a Clipboard record, allocate space for the data and thereafter call the function ClipBoard-Paste with the size returned on the call before. Its calling sequence can be as follows:
If the RESULT-RC1 is zero, the size of the Clipboard record with a key of ‘key’ is returned from the Clipboard named ‘name’ in field Clipboard-Rec-Len. There are no other checks needed after a ClipBoard-Paste-Size call.
Summarizing, the Application Program Interface (API) can be as follows:
The copybook CCRCFACD is copied to the working-storage of the module which seeks to use the clipboard Service. The copybook CCRCBAPI may be used on all calls of the Clipboard Service as the second Parameter.
If the RESULT-RC1 field is zero, the function call was successful. There is no need to check the RESULT-RC2 field after calling a clipboard function.
While in
In the database system DBS, a data space manager may be provided to establish a cross memory environment (see the example of
In
In one experimental implementation in a computer network, employing the above-described methodology yielded a reduction of more than 600 million SQL calls per day, which resulted in a reduction of almost eight hours CPU time per day.
Having thus described various examples and embodiments in more detail, it will be recognized that such detail and embodiments need not be strictly adhered to but that various changes and modifications may suggest themselves to one skilled in the art, all falling within the scope of the invention as defined by the attached claims.
Number | Date | Country | Kind |
---|---|---|---|
07018098.9 | Sep 2007 | EP | regional |