Browse Prior Art Database

Logging Protocol Limiting the Number of Concurrent Fixed Pages to One

IP.com Disclosure Number: IPCOM000120281D
Original Publication Date: 1991-Mar-01
Included in the Prior Art Database: 2005-Apr-02
Document File: 3 page(s) / 132K

Publishing Venue

IBM

Related People

Mohan, C: AUTHOR [+3]

Abstract

Disclosed is a logging protocol for OS/2* Database Manager data files which limits the number of concurrent fixed pages by an application to one.

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

Logging Protocol Limiting the Number of Concurrent Fixed Pages to One

      Disclosed is a logging protocol for OS/2* Database Manager
data files which limits the number of concurrent fixed pages by an
application to one.

      When an OS/2 data file record is updated, up to five data pages
can be affected. This invention describes a method employing write-
ahead logging protocol which limits the number of pages fixed in the
buffer pool at any time by an application to one.

      The data file manager of OS/2 Database Manager performs all
logging operations related to the table data file. Each update is
logged using a write-ahead protocol.

      The write-ahead logging protocol ensures that the log record
describing an update is written to physical media before the data
pages containing the changes. The data file manager uses the OS/2
Database Manager buffer pool to cache pages from the data file. When
a page is "fixed" in the buffer pool, it cannot be written to physical
media until it is "unfixed". The data file manager fixes pages in the
buffer pool while log records are written to ensure that the log
record goes out first.

      The data file manager algorithms for adding a table data record
to the data file must log allocation of pages within the file, as
well as the new record added. The information about allocated pages
is contained in the data file manager free space control records.
Free space control records describe whether a particular page in the
file is allocated and how much free space is available on it.
Information about the amount of free space on a page is never logged,
but a page allocation must be. A new page allocation means that the
number of pages in the data file must be updated, as well as the free
space control record. The number of pages in the file is a counter
stored on page 0.

      Free space control records are scattered evenly throughout the
data file, one every m pages, where m is the number of pages described
by the free space control record. Thus, the page on which a new data
record is added is not necessarily a page containing its free space
control record. When a new record is added, a new page may be allocated,
and up to three data pages can be affected (page 0, the free space
control record page, and the data page).

      When an existing record is updated, it can grow in size. The
page already containing the record may not have enough free space to
hold the updated record. If this happens, the old record is updated
to become a "pointer record", pointing to the location of the new
version, called the "overflow record". When the record to be updated
is already of the pointer/overflow type, and the overflow page does
not have space, the new record is placed on yet another page. This
situation can be further complicated if a new page must be allocated.
In the worst case, five data pages can be affected by one data record
update (page 0, the free space control record page...