Prefetch performance of index access by look-ahead prefetch
First Claim
1. A method of prefetching records of a table before they are requested by a transaction, wherein said transaction is based on a set of keys, said method comprising:
- queuing a plurality of the set of keys of the transaction;
scanning an index of the table based on the queued set of keys;
accumulating locations of records in the table based on the scan of the index;
determining respective pages that include the accumulated records; and
fetching the pages that include the accumulated records before they are requested , by the transaction.
1 Assignment
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide a “look-ahead” form prefetch. Look-ahead prefetch may utilize a look-ahead queue to prefetch multiple pages asynchronously. The look-ahead queue may hold a plurality of search keys that are related to a transaction. When accessing a table, an index manager may retrieve the table'"'"'s index and scan the index based on the search keys from the look-ahead queue to find the RIDs in the table that match the search keys. The index manager may then accumulate these RIDs into a prefetch list. A prefetch manager may read the prefetch list, determine locations for the pages of the table that contain the records identified by the RIDs, and dispatch prefetch tasks to the appropriate storage device for these pages.
-
Citations
20 Claims
-
1. A method of prefetching records of a table before they are requested by a transaction, wherein said transaction is based on a set of keys, said method comprising:
-
queuing a plurality of the set of keys of the transaction;
scanning an index of the table based on the queued set of keys;
accumulating locations of records in the table based on the scan of the index;
determining respective pages that include the accumulated records; and
fetching the pages that include the accumulated records before they are requested , by the transaction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system that processes transactions, wherein the system is configured to prefetch records of a table before they are requested by the transactions, said system comprising:
-
at least one look-ahead queue having entries for search keys specified in a transaction;
a buffer pool that comprises at least a portion of a table and an index of the table, wherein the index comprises a set of entries each having an index key that indicates a value for a field of the table and a record identifier that indicates a location of a record that has the value in the field;
an index manager that is configured to scan the index based on the search keys in the entries in the look-ahead queue and write the record identifiers of the records in the table that satisfy the search keys into a prefetch list; and
a prefetcher that is configured to read the prefetch list, determine a set of pages that contain the records that satisfy the search keys, and fetch the set of pages before they are requested by the transaction. - View Dependent Claims (11)
-
-
12. A computer readable medium having program code that configures a processor to prefetch records of a table before they are requested by a transaction, wherein said transaction is based on a set of keys, said medium comprising:
-
program code for queuing a plurality of the set of keys of the transaction;
program code for scanning an index of the table based on the queued set of keys;
program code for accumulating locations of records in the table based on the scan of the index;
program code for determining respective pages that include the accumulated records; and
program code for fetching the pages that include the accumulated records before they are requested by the transaction. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
Specification