Method for allocating either private or shared buffer memory...

Electrical computers and digital data processing systems: input/ – Input/output data processing – Input/output data buffering

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C711S118000, C711S121000, C711S130000

Reexamination Certificate

active

06230220

ABSTRACT:

FIELD OF THE INVENTION
The present invention relates to buffer memory allocation, and more specifically, to a method and apparatus for allocating direct write buffers for computer processes that perform sort operations.
BACKGROUND OF THE INVENTION
In typical database systems, users store, update and retrieve information by submitting commands to a database application. To be correctly processed, the commands must comply with the database language that is supported by the database application. One popular database language is known as Structured Query Language (SQL).
A logical unit of work that is comprised of one or more database language statements is referred to as a transaction. When multiple users share a database system, it is impractical to allow only one transaction to execute at a time. However, when many transactions are allowed to execute at the same time, it is possible for the transactions to interact in undesirable ways.
Some database systems provide a buffer cache that is shared among the processes that are executing transactions in a database. The buffer cache is a pool of dynamic memory that is used for temporarily storing blocks of data. All processes are allowed to read and store data to the buffer cache. However, to prevent undesirable interaction between processes, only one process or special group of processes, referred to herein as the “writer process”, writes updated data from the buffer cache to the database.
Some transactions require sort operations to be performed on data from the database. Space in dynamic memory is required to perform such sort operations. The portion of memory allocated to a transaction to perform a sort operation is referred to as a sort area.
After a process performs a sort operation, the sorted data may have to be written to the database. Typically, the database is updated by writing the sorted data to the buffer cache, and allowing the writer process to store the sorted data from the buffer cache to the database. However, a single process for writing data to a disk represents a potential bottleneck for data throughput, especially where multiple, concurrent users of the database are performing operations that require data to be written to the database.
Consequently, some database systems allow transactions to write sorted data directly to a disk. During direct write sorts, sorted data is written to a set of write buffers that are not shared with other processes. The sorted data is written asynchronously from the write buffers directly to disk, thereby bypassing the buffer cache.
Database systems that allow processes to write sorted data directly to disk often allow a user to specify the number and size of the write buffers. The database system may provide program parameters which the user could set to specify the characteristics of the write buffers. For example, one parameter could be used to set the number of write buffers, and a second parameter could be used to set the size of each write buffer.
Under operating conditions where available memory space is abundant on the system, the direct write sort method is a quick and efficient way to perform database sort operations. Under these conditions, the buffer size and number parameters could be set to values which exceed the expected memory requirements for possible sort operations. However, under operating conditions where memory resources are limited and memory space is not readily available, allocating memory for large write buffers during sorts could result in a reduction of the overall performance of the database.
Based on the foregoing, it is clearly desirable to provide a database system that provides for automatic tuning so that the number and size of write buffers is allocated in accordance with the amount of memory available for sort operations and without the need for user programming of fixed tuning parameters.
SUMMARY OF THE INVENTION
A method and apparatus for allocating buffer memory for database sort operations is provided. According to one aspect of the invention, a programmable database parameter is provided to specify the manner in which buffer memory is allocated for the sort operation.
If the parameter is set to a first value, the process performing the sort operation will write the data to the storage medium through direct write buffers, thus bypassing the buffer cache. The size and number of buffers to be used are specified by additional database parameters.
If the parameter is set to a second value, the sort operation will not allocate any memory for direct buffering, and will instead write data to a buffer cache shared with other transactions.
If the parameter is set to a third value, the sort operation will utilize direct write buffers if the amount of memory allocated to the sort operation exceeds a predetermined minimum threshold. If the sort area does exceed this minimum threshold, direct write buffers will be allocated as a fraction of the amount of memory allocated for the sort operation up to a predetermined maximum threshold. If the sort area does not exceed the minimum threshold, the sorted data will be written to a buffer cache shared with other processes.


REFERENCES:
patent: 4967341 (1990-10-01), Yamamoto et al.
patent: 5089985 (1992-02-01), Chang et al.
patent: 5179662 (1993-01-01), Corrigan et al.
patent: 5210870 (1993-05-01), Baum et al.
patent: 5237661 (1993-08-01), Kawamura et al.
patent: 5491810 (1996-02-01), Allen
patent: 5535384 (1996-07-01), Kashara
patent: 5581736 (1996-12-01), Smith
patent: 5640561 (1997-06-01), Satoh et al.
patent: 5799210 (1998-08-01), Cohen et al.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method for allocating either private or shared buffer memory... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method for allocating either private or shared buffer memory..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method for allocating either private or shared buffer memory... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2495591

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.