Browse Prior Art Database

Prefetching Rule and Other Data from a Database

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

Publishing Venue

IBM

Related People

Johnson, VM: AUTHOR

Abstract

Access to data in databases is typically done by directly retrieving data when it is requested. Some database management systems (DBMSs) make use of sequential prefetch in special cases (such as database unload) to provide speedier access to data. But the use of prefetch is not generally user-controllable. This ignores the fact that in many cases it is possible to predict future data requirements from within applications accessing the data. Described is a method to allow applications to control prefetch of data, using production rules as an example of a type of data where an application can direct prefetch. The same concepts hold for many other types of data and applications.

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

Prefetching Rule and Other Data from a Database

      Access to data in databases is typically done by directly
retrieving data when it is requested.  Some database management
systems (DBMSs) make use of sequential prefetch in special cases
(such as database unload) to provide speedier access to data.  But
the use of prefetch is not generally user-controllable.  This ignores
the fact that in many cases it is possible to predict future data
requirements from within applications accessing the data.  Described
is a method to allow applications to control prefetch of data, using
production rules as an example of a type of data where an application
can direct prefetch.  The same concepts hold for many other types of
data and applications.

      A recent patent, [*], describes a system which retrieves rules
and working memory data from databases during the inferencing cycle,
During forward chaining, the system repeatedly requests rules where
the premise references the working memory data that was last updated,
either directly or when bound to a rule variable.  During backward
chaining, the system repeatedly requests the rules whose actions
could satisfy the current goal.  Requests for working memory data are
based only on the rules currently active in the inference processing.

      However, because of the structure of rule sets, and the cyclic
nature of forward or backward chaining, it is possible to anticipate
the rules and working memory data that may be needed in the future
and prefetch this data into cache or DBMS-managed buffers.  The
Figure illustrates the differences between prefetch and
retrieval-as-needed processing.

      A couple of possible implementation methods could be used.
First, if the DBMS understood the structure of the rules and rule
partitioning (such as Expert System Environment Focus Control Blocks
(FCBs) or The Information Reasoning Shell Knowledge Base (KB)
hierarchies), it could directly control prefetching.  DB2 uses
sequential prefetch today when tablespace scans are required.
Similarly a DBMS could prefetch rules-based algorithms such as:

1.  Load next X lower levels in the FCB/KB hierarchy from the FCB/KB
    of the rules in the conflict set (forward chaining prefetch).

2.  Load the rules in the FCB/KBs that are referenced in the action
    side of the rules currently in the conflict set (forward chaining
    prefetch).

3.  Load the next X higher levels in the F...