Browse Prior Art Database

Table Object Location Linked List Disclosure Number: IPCOM000104543D
Original Publication Date: 1993-May-01
Included in the Prior Art Database: 2005-Mar-19
Document File: 4 page(s) / 118K

Publishing Venue


Related People

Buquoi, GH: AUTHOR [+3]


Described is a method of quickly accessing the contents of the Object Relocation File (ORF).

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

Table Object Location Linked List

      Described is a method of quickly accessing the contents of the
Object Relocation File (ORF).

      The OS/2 Database Manager* creates the Object Relocation File
(ORF) during "Create Database" in the main database directory with
the name "SQL00001.ORF".  This flat file contains an entry for each
table object in the database.  The entry defines the location of each
of the object's physical files or parts.  While processing a
transaction, the Database Manager must read and write to the physical
files containing table objects.  In order to access any table object,
the location of the object must be looked up in the ORF.  Since table
objects are accessed frequently, disk I/O cannot occur for each
access of the ORF.  This would result in unacceptable performance.

      During database initialization (the first application connects
to the database), Database Manager reads the contents of the ORF into
a set of linked lists in memory.  This set of linked lists is
collectively called the Table Object Location Linked List (TOLLL).
The Database Manager uses these linked lists to locate table objects.
The only functions that change the contents of the linked lists are
creating a new table object (table, 1st index on a table, or add the
1st long field column), deleting a table object (table or all the
indexes), and spanning a table object.  In these cases, the ORF is
also updated on disk.

      The first component of the TOLLL is a Hash Table.  The Hash
Table is an array of structures.  Each element serves as an anchor
for a Table Level Entry Linked List.  As each table level entry is
read from the ORF, the file token for the table is used to 'hash'
into the Hash Table.  The table level entry is added to the end of
the linked list anchored in that particular Hash Table element.

      Each Table Level Entry is also a structure.  From these
structures the Database Manager tells whether or not an index (INX)
or long field (LF) object exists for this particular table.  It can
also tell if the table (DAT), index (INX), or long field (LF) objects
are spanned.  If an object is spanned, then this Table Level Entry
structure serves as an anchor for another linked list, the Object
Level Entry Linked List.

      A different Object Level Entry Linked List is created for each
object type that is spanned.  For example, if both the DAT and the LF
objects are spanned, then two Object Level Entry L inked Lists are
created.  Each element of the Object Level Entry Linked List is again
a structure.  There is one element for each file part into which the
object has been spanned.  If the user spanned a table into 3
different directories, then there are 3 elements in the Object Level
Entry Linked List for that particular DAT object.  Each element of
this linked list contains an index into the Directory Name Array.

      The Database Manager also creates the Directory Name Array from