Browse Prior Art Database

Free Space Management Within a File On a Transaction Basis Using No Locking

IP.com Disclosure Number: IPCOM000102700D
Original Publication Date: 1990-Dec-01
Included in the Prior Art Database: 2005-Mar-17
Document File: 2 page(s) / 70K

Publishing Venue

IBM

Related People

Bullock, G: AUTHOR [+4]

Abstract

The two main methods which are used by the OS/2* Database Manager products to support concurrency are the use of locks and the use of latches. These methods do not adequately meet the performance and usability needs for free space management within indexes. Requesting locks causes a degradation in performance for indexes. Requesting and holding latches for the duration of a transaction is not valid since latches are not released automatically at the end of a transaction and can potentially cause an undetectable deadlock situation if used in this way.

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

Free Space Management Within a File On a Transaction Basis Using No Locking

       The two main methods which are used by the OS/2* Database
Manager products to support concurrency are the use of locks and the
use of latches.  These methods do not adequately meet the performance
and usability needs for free space management within indexes.
Requesting locks causes a degradation in performance for indexes.
Requesting and holding latches for the duration of a transaction is
not valid since latches are not released automatically at the end of
a transaction and can potentially cause an undetectable deadlock
situation if used in this way.

      The solution reached for index free space management was to add
an indicator which indicates whether a page is pending deletion.
This article gives some background on free space management within
indexes and then an explanation of the invention.  (Note:  The
invention is for free space management of pages within the index
file, not management of space within the pages.)

      The space in an index file is managed through the use of free
page maps.  These maps contain a count of all the pages (4K byte
segments) that have been allocated to the file and a flag for each
page showing whether it is being used by an index in the file.  The
count is incremented and the flags are turned off and on as pages are
added to the file, indexes are created and deleted, and nodes in an
index are split or deleted.

      The original design for free space management called for
locking pages which are deleted during an index operation for the
duration of the transaction.  This prevented any other transaction
from usin...