AN ENHANCED TECHNIQUE MANAGES THE BUFFERPOOL RESOURCES FOR THOSE APPLICATIONS NEEDING MULTIPLE CONCURRENT READ I/O STREAMS
Original Publication Date: 2001-May-01
Included in the Prior Art Database: 2003-Jun-18
Novel Advance over the Prior Art Disclosed is a method for allocating and managing multiple concurrent read I/O streams making use of a limited buffer pool resource. For applications which make use of multiple concurrent I/O streams (e.g. parallel query or sort/merge processing), some negotiation is required to balance the needs of the application with the available buffer pool resource. Prior techniques simply limited the number of available I/O streams based on two factors the number of buffers required for a single I/O stream, and the tota number of buffers available for all I/O streams. This technique would always come up with the same limit for a given buffer pool configuration e.g. if each stream operates on 8 buffers at a time, and the total number of buffers available is 800,100 I/O streams would be allowed. The new technique adds some flexibility by allowing some of the parameters to change dynamically with the workload. Technical Description The primary factor used in determining the number of buffers required by a single I/O stream is the prefetch quantity, i.e. the number of pages brought in per read I/O. Since it is desirable to have the application processing a set of pages in parallel with the read I/O for the next set of pages, the prefetch quantity is doubled to determine the count of buffers required by an I/O stream.