Method and system for scrollable cursors
First Claim
1. A method for scrolling a cursor in a database system, comprising:
- a) executing a query at a server to produce a result set;
b) storing the result set at a first cache at the server;
c) storing a portion of the result set at a second cache at a client;
d) receiving a request to scroll a cursor from a current position to a different position within the result set;
e) determining whether a data item corresponding to the different position within the result set exists in the second cache;
f) if the data item corresponding to the different position within the result set exists in the second cache, then scrolling the cursor to the different position; and
g) if the data item corresponding to the different position within the result set does not exist in the second cache, then fetching the data item from the result set at the first cache.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for implementing scrollable cursors is described. A multi-tier caching structure is maintained, in which a partial result set is cached at the client computer and a more-complete result set is cached at the server computer. If the cursor is scrolled in either the forward or backward directions, the partial result set cached at the client computer is first checked to see if requested data is present. If so, then the requested data is fetched from the client cache and the current position of the cursor is moved to the appropriate position in the result set. If the requested data is not present in the client cache, then those data items are fetched from the cache at the server computer.
133 Citations
37 Claims
-
1. A method for scrolling a cursor in a database system, comprising:
-
a) executing a query at a server to produce a result set; b) storing the result set at a first cache at the server; c) storing a portion of the result set at a second cache at a client; d) receiving a request to scroll a cursor from a current position to a different position within the result set; e) determining whether a data item corresponding to the different position within the result set exists in the second cache; f) if the data item corresponding to the different position within the result set exists in the second cache, then scrolling the cursor to the different position; and g) if the data item corresponding to the different position within the result set does not exist in the second cache, then fetching the data item from the result set at the first cache. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A system for scrolling a cursor in a database system, comprising:
-
a) means for executing a query at a server to produce a result set; b) means for storing the result set at a server cache; c) means for storing a portion of the result set at a client cache; d) means for receiving a request to scroll a cursor from a current position to a new position within the result set; e) means for determining whether a data item corresponding to the new position within the result set exists in the client cache; f) means for determining if the data item corresponding to the new position within the result set exists in the client cache, and then scrolling the cursor to the new position if it exists; and g) means for determining if the data item corresponding to the new position within the result set does not exist in the client cache, and then fetching the data item from the result set at the server cache if it does not exist. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A computer program product comprising a executable code to execute a process for scrolling a cursor in a database system, the process comprising the steps of:
-
a) executing a query at a server to produce a result set; b) storing the result set at a server cache; c) storing a portion of the result set at a client cache; d) receiving a request to scroll a cursor from a current position to a new position within the result set; e) determining whether a data item corresponding to the new position within the result set exists in the client cache; f) if the data item corresponding to the new position within the result set exists in the client cache, then scrolling the cursor to the new position; and g) if the data item corresponding to the new position within the result set does not exist in the client cache, then fetching the data item from the server cache. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37)
-
Specification