Method and mechanism for pipelined prefetching
First Claim
Patent Images
1. A computer implemented method for prefetching data in a database system using multiple levels of prefetching to retrieve data between networked machines, comprising:
- at a first prefetching level,receiving a client request for a data item to be sent from a first database server to a client, the first database server executing database query operations against data in a database to satisfy the client request;
determining by using a first processor, a first prefetch condition for the first prefetching level to satisfy the client request, wherein the first prefetch condition is used to control what data items to prefetch on the first prefetching level; and
sending at least part of the data item from the first database server to the client;
prefetching, based at least upon the first prefetch condition, a second data item from the first database server to the client in anticipation of a future request from the client and storing, by using a bus, the second data item in a first data structure on a tangible computer readable medium or a storage device;
at a second prefetching level,in response to the client request, receiving a first server request for a server data item to be sent from a second database server to the first database server, the first server request is to satisfy the client request;
receiving the server data item from the second database server to the first database server;
determining, by using a second processor, a second prefetch condition of the first prefetch condition for the second prefetching level to service the first server request, wherein the second prefetch condition is used to control what data items to prefetch on the second prefetching level;
determining existence of data redundancies when prefetching the second server data item by calculating row differences between successive rows in the second server data item by consulting a bitmap corresponding to changes between a first row and a second row of data; and
prefetching, based at least upon the second prefetch condition, a second server data item from the second database server to the first database server in anticipation of a future request from the first database.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and mechanism for implementing pipelined prefetching in a computer system is disclosed. Data prefetching is utilized to predictably retrieve information between multiple levels of nodes in the computer system, in which a first server may receive prefetched data from a second server, the second server receives prefetched data from a third server, with the chain of prefetching extending as long as needed/desired to effect efficient data transfers between the nodes.
193 Citations
49 Claims
-
1. A computer implemented method for prefetching data in a database system using multiple levels of prefetching to retrieve data between networked machines, comprising:
-
at a first prefetching level, receiving a client request for a data item to be sent from a first database server to a client, the first database server executing database query operations against data in a database to satisfy the client request; determining by using a first processor, a first prefetch condition for the first prefetching level to satisfy the client request, wherein the first prefetch condition is used to control what data items to prefetch on the first prefetching level; and sending at least part of the data item from the first database server to the client; prefetching, based at least upon the first prefetch condition, a second data item from the first database server to the client in anticipation of a future request from the client and storing, by using a bus, the second data item in a first data structure on a tangible computer readable medium or a storage device; at a second prefetching level, in response to the client request, receiving a first server request for a server data item to be sent from a second database server to the first database server, the first server request is to satisfy the client request; receiving the server data item from the second database server to the first database server; determining, by using a second processor, a second prefetch condition of the first prefetch condition for the second prefetching level to service the first server request, wherein the second prefetch condition is used to control what data items to prefetch on the second prefetching level; determining existence of data redundancies when prefetching the second server data item by calculating row differences between successive rows in the second server data item by consulting a bitmap corresponding to changes between a first row and a second row of data; and prefetching, based at least upon the second prefetch condition, a second server data item from the second database server to the first database server in anticipation of a future request from the first database. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A system for prefetching data in a database system using multiple levels of prefetching to retrieve data between networked machines, comprising:
-
a client device comprising a client cache and a first data structure, wherein the client device issues a client request for a data item; at a first prefetching level, a first database server device comprising a server cache; the first database server device determining, by using a first processor, a first prefetch condition for the first prefetching level to satisfy the client request, wherein the first prefetch condition is used to control what data items to prefetch on the first prefetching level; the first database server performing database query operations to send the data item, to satisfy the client request and to prefetch, based at least upon the first prefetch condition, a second data item that is transmitted from the first database server to the client device and stored in the client cache; and at a second prefetching level, a second server device configured for receiving a first server request for a requested server data item, wherein the first server request is to satisfy the client requests; determining, by using a second processor, a second prefetch condition for the second prefetching level to service the first server request, wherein the second prefetch condition is determined independently of the first prefetch condition, and the second prefetch condition is used to control what data items to prefetch on the second prefetching levels; determining existence of data redundancies when prefetching, the second server data item by calculating row differences between successive rows in the second, server data item by consulting a bitmap corresponding to changes between a first row and a second row of data; and performing second server database query operations to send the requested server data item from the second database server to the first database sever and to prefetch, based at least in part upon the second prefetch condition, a second server data item that is transmitted from the second database server device to the first database server device and stored in the server cache. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A system for prefetching data in a database system using multiple is of prefetching to retrieve data between networked machines, comprising:
-
at a first prefetching level, means for receiving a client request for a data item to be sent from a first database server to a client, the first database server executing database query operations against data in a database to satisfy the client request; a first processor configured for determining a first prefetch condition for the first prefetching level to service the client request, wherein the means for determining the first prefetch condition comprises a first processor, and the first prefetch condition is used to control what data items to prefetch on the first prefetching level; and means for sending part of the data item from the first database server to the client based at least in part upon the first prefetch condition; means for prefetching, based at least in part on the first prefetch condition, a second data item from the first database server to the client-in anticipation of a future request from the client and a tangible computer readable medium or a storage device configured for storing at least part of the second data item in a first data structure; at a second prefetching level, means for, in response to the client request, receiving a first server request for a server data item to be sent from a second database server to the first database server, the first server request is to satisfy the client request; means for receiving the server data item from the second database server 1 o the first database server; a second processor configured for determining, by using a second processor, a second prefetch condition independently of the first prefetch condition for the second level to service the first server request, wherein the second prefetch condition is used to control what data items to prefetch on the second prefetching level; means for determining existence of data redundancies when prefetching the second server data item by calculating row differences between successive rows in the second server data item by consulting a bitmap corresponding to changes between a first row and a second row of data; and means for prefetching, based at least in part on the second prefetch condition, a second server data item from the second database server to the first database server-in anticipation of a future request from the first database server. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40)
-
-
41. A computer program product comprising a computer usable medium embedded executable code to execute a process for prefetching data in a database system using multiple levels of prefetching to retrieve data between networked machines, the process comprising:
-
at a first prefetching level, receiving a client request for a data item to he sent from a first database server to a client, the first database server executing database query operations against data in a database to satisfy the client request; determining, by using a first processor, a first prefetch condition for the first prefetching level to satisfy the client request, wherein the first prefetch condition is used to control what data items to prefetch on the first prefetching level; sending part of the data item from the first database server to the client; prefetching, based at least in part on the first prefetch condition, a second data item from the first database server to the client in anticipation of a future request from the client and storing, by using a bus, the second data item in a first data structure on a tangible computer usable medium or a storage device; at a second prefetching level, in response to the client request, receiving a first server request for a server data item to be sent from a second database server to the first database server, the first server request is to satisfy the client request; receiving the server data item from the second database server to the first database server; determining, by using a second processor, a second prefetch condition independently of the first prefetch condition for the second prefetching level to service the first server request, wherein the second prefetch condition is used to control what data items to prefetch on the second prefetching level; determining existence of data redundancies when prefetching the second server data item by calculating row differences between successive rows in the second server data item by consulting a bitmap corresponding to changes between a first row and a second row of data; and prefetching, based at least on the second prefetch condition, a second server data item from the second database server to the first database server in anticipation of a future request from the first database server. - View Dependent Claims (42, 43, 44, 45, 46, 47, 48, 49)
-
Specification