Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Using Private Buffers to Prevent Data Corruption During Castout

IP.com Disclosure Number: IPCOM000111154D
Original Publication Date: 1994-Feb-01
Included in the Prior Art Database: 2005-Mar-26
Document File: 2 page(s) / 34K

Publishing Venue

IBM

Related People

Bhargava, G: AUTHOR [+2]

Abstract

An algorithm is disclosed for preventing data corruption during castout of data pages from a high speed electronic cache to disk.

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

Using Private Buffers to Prevent Data Corruption During Castout

      An algorithm is disclosed for preventing data corruption during
castout of data pages from a high speed electronic cache to disk.

      In a multi-DBMS data sharing environment, a high speed
electronic cache can be used for quick propagation of updates between
systems.  Because of the costs involved, such stores have limited
space and the disk is designated as the permanent home of data.  In
order to create space for newly updated pages, data has to be
periodically castout to disk.  Since the disks are not attached
directly to the cache, castout involves reading the data into DBMS
buffers.  In order to support non-blocking serialization, whereby
updates to the page can occur while it is being processed for
castout, it becomes necessary to use private buffers when data is
read into memory for castout; otherwise, we have the potential for
data corruption.

The algorithm for deciding when to use private buffers is as follows:

         Locate page in buffer pool;
          IF found THEN
 PB_LABEL:
             Read-for-Castout into private buffer
        ELSE                                           /* not found
*/
           BEGIN                       /* Use buffer in buffer pool
*/
                 Use Compare-and-Swap to set "I/O in progress"flag;
          ...