Client/server database system with methods for providing clients with server-based bi-directional scrolling at the server
First Claim
1. In a client/server database system, the system including a database server storing a relational database table, the database server in communication with a plurality of clients and transmitting to those clients sets of data records meeting client-specified query conditions, a method for providing the clients with server-based bi-directional scrolling support provided at the database server such that clients can maintain a bi-directional scrollable cursor for such data records without having to emulate such a cursor with multiple query commands, the method comprising:
- (a) creating at the database server a plurality of verbs for bi-directional scrolling of the database table, each verb corresponding to a command which a client issues for requesting bi-directional scrolling of the database table at the server;
(b) creating at the database server an index for accessing the database table, said index including an ordered set of leaf pages for accessing the database table according to a particular sort order;
(c) modifying said leaf pages of the index to support bi-directional scrolling by multiple concurrent clients, said modifying step supporting bi-directional traversing among said leaf pages;
(d) receiving a database query including a request from a client to open a cursor at the database table, said database query including a command for bi-directional scrolling of the database table such that the client can scroll the cursor bidirectionally at the database table; and
(e) in response to receiving said request, performing bi-directional scrolling at the database server by traversing in a bi-directional manner said modified index;
wherein step (a) includes creating at the database server a plurality of verbs by providing a handler at the database server for each of said verbs, each handler executing at the database server in response to receipt of a particular command from a client for providing the client with bi-directional scrolling of the cursor at the database server.
8 Assignments
0 Petitions
Accused Products
Abstract
System and methods are described for integrating the navigational semantic model of PC DBMS environments into the set-oriented model of SQL database environments. More particularly, a Client/Server system of the present invention provides native navigational support on the Server side, without emulation through a multitude of SQL commands from the Client. The Database Server surfaces to the Client an API (Application Programming Interface) having calls corresponding to each verb taken from a navigational context. The Server, in turn, is modified to include knowledge of how to process each navigational verb. To support this functionality, the indexing of the Server is modified to provide bi-directional scrolling. In this manner, the system is able to provide more efficient, higher performance navigational support in an SQL database context.
108 Citations
19 Claims
-
1. In a client/server database system, the system including a database server storing a relational database table, the database server in communication with a plurality of clients and transmitting to those clients sets of data records meeting client-specified query conditions, a method for providing the clients with server-based bi-directional scrolling support provided at the database server such that clients can maintain a bi-directional scrollable cursor for such data records without having to emulate such a cursor with multiple query commands, the method comprising:
-
(a) creating at the database server a plurality of verbs for bi-directional scrolling of the database table, each verb corresponding to a command which a client issues for requesting bi-directional scrolling of the database table at the server; (b) creating at the database server an index for accessing the database table, said index including an ordered set of leaf pages for accessing the database table according to a particular sort order; (c) modifying said leaf pages of the index to support bi-directional scrolling by multiple concurrent clients, said modifying step supporting bi-directional traversing among said leaf pages; (d) receiving a database query including a request from a client to open a cursor at the database table, said database query including a command for bi-directional scrolling of the database table such that the client can scroll the cursor bidirectionally at the database table; and (e) in response to receiving said request, performing bi-directional scrolling at the database server by traversing in a bi-directional manner said modified index; wherein step (a) includes creating at the database server a plurality of verbs by providing a handler at the database server for each of said verbs, each handler executing at the database server in response to receipt of a particular command from a client for providing the client with bi-directional scrolling of the cursor at the database server. - View Dependent Claims (2, 3)
-
-
4. In a client/server database system, the system including a database server storing a relational database table, the database server in communication with a plurality of clients and transmitting to those clients sets of data records meeting client-specified query conditions, a method for providing the clients with server-based bi-directional scrolling support provided at the database server such that clients can maintain a bi-directional scrollable cursor for such data records without having to emulate such a cursor with multiple query commands, the method comprising:
-
(a) creating at the database server a plurality of verbs for bi-directional scrolling of the database table, each verb corresponding to a command which a client issues for requesting bi-directional scrolling of the database table at the server; (b) creating at the database server an index for accessing the database table, said index including an ordered set of leaf pages for accessing the database table according to a particular sort order; (c) modifying said leaf pages of the index to support bi-directional scrolling by multiple concurrent clients, said modifying step supporting bi-directional traversing among said leaf pages; (d) receiving a database query including a request from a client to open a cursor at the database table, said database query including a command for bi-directional scrolling of the database table such that the client can scroll the cursor bidirectionally at the database table; and (e) in response to receiving said request, performing bi-directional scrolling at the database server by traversing in a bi-directional manner said modified index; wherein step (c) includes modifying each leaf page to provide forward and backward page pointers, so that a previous page and a next page can be determined for a current leaf page; wherein said bi-directional traversing of the modified index includes when traversing in a backward direction, releasing the current leaf page before locking the previous page; and wherein said bi-directional traversing of the modified index further includes; comparing the previous page with a previous page pointer stored by said current page; and if said previous page does not match said previous page pointer, traversing in a forward direction until a page is found which stores a next page pointer which matches said current leaf page. - View Dependent Claims (5, 6, 7, 8, 9)
-
-
10. An improved client/server database system, said system including a database server connected to a plurality of clients, said database server storing a database table having an index, the improvement comprising:
-
means, operably coupled to the database server, for processing commands from the client for bidirectional navigation of the database table; and means, operably coupled to said means for processing commands, for bi-directional traversing said index at the database server, said means including means for bi-directional traversing of leaf pages of said index, such that when traversing the index in a forward direction the database server locks the next page before releasing a current leaf page and when traversing the index in a backward direction, the database server releases the current leaf page before locking the previous page; wherein said means for processing commands includes handler means for processing selected ones of a seek command, a find command, and a skip command, for seeking, finding, and skipping records in a bi-directional manner, respectively; and wherein said database server is connected to said clients through a computer network, and wherein said handler means operates at the database server. - View Dependent Claims (11, 12, 13, 14)
-
-
15. In a SQL-based database server system, a method for bi-directional traversing of leaf pages for an index which comprises a B-tree having a plurality of such leaf pages, the method comprising:
-
(a) for each leaf page, storing a forward pointer pointing to a next page and a backward pointer pointing to a previous page; (b) when traversing in a forward direction from a current page of the index, locking the next page from the current page and thereafter releasing the current page; and (c) when traversing in a backward direction from the current page of the index, releasing the current page and thereafter locking the previous page, wherein the previous page is located by; (i) referencing the backward pointer of the current page; (ii) comparing the forward pointer for the page pointed to by the backward pointer of the current page with an identifier for the current page; and (iii) if the forward pointer for the page pointed to by the backward pointer of the current page does not match the identifier for the current page, traversing the index in a forward direction until a page is found having a forward pointer matching the identifier for the current page. - View Dependent Claims (16, 17, 18, 19)
-
Specification