Updating adaptive, deferred, incremental indexes
First Claim
Patent Images
1. A method for updating an independent index associated with a database including data in response to a query to said database, said method comprising:
- receiving a request to query the database, said request referencing an existing independent index, said independent index being separate from the database and associated with the database, said independent index containing a subset of data from the database, wherein the subset is an independent copy of selected data in the database and the selected data is less than all data in the database, wherein the independent index is updated after a modification is made to the database and is not updated at the time when the modification is made to the database so that the time at which the independent index is updated is independent of the time at which the database is modified;
in response to the received request, comparing the state of the independent index to the state of the database to determine if a modification has been made to the database that has not been updated to the independent index;
in response to said comparing, determining that a modification has been made to the database that has not been updated to the independent index, and in response to said determining, updating the independent index by applying a corresponding modification to the independent index prior to the execution of the received query and updating a last referenced time indicating the time that the independent index identified by the index identifier for the subset of data was last accessed by the received query to the database;
modifying the received query to utilize the updated independent index;
executing the modified query with the updated independent index; and
deleting the subset of data of the independent index identified by the index without user interaction if the last referenced time is greater than a specified period time.
2 Assignments
0 Petitions
Accused Products
Abstract
An index update component updates an index of a database in response to a query to the database referencing the index. An index control record tracks the last time the index was referenced and state of the index compared to the state of the database. An index deletion component deletes indexes in the database that have not been referenced for a period of time.
-
Citations
17 Claims
-
1. A method for updating an independent index associated with a database including data in response to a query to said database, said method comprising:
-
receiving a request to query the database, said request referencing an existing independent index, said independent index being separate from the database and associated with the database, said independent index containing a subset of data from the database, wherein the subset is an independent copy of selected data in the database and the selected data is less than all data in the database, wherein the independent index is updated after a modification is made to the database and is not updated at the time when the modification is made to the database so that the time at which the independent index is updated is independent of the time at which the database is modified; in response to the received request, comparing the state of the independent index to the state of the database to determine if a modification has been made to the database that has not been updated to the independent index; in response to said comparing, determining that a modification has been made to the database that has not been updated to the independent index, and in response to said determining, updating the independent index by applying a corresponding modification to the independent index prior to the execution of the received query and updating a last referenced time indicating the time that the independent index identified by the index identifier for the subset of data was last accessed by the received query to the database; modifying the received query to utilize the updated independent index; executing the modified query with the updated independent index; and deleting the subset of data of the independent index identified by the index without user interaction if the last referenced time is greater than a specified period time. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer-readable storage medium having stored thereon a data structure for an index control record associated with an independent index associated with a database including data, said index control record comprising:
-
an index identifier uniquely identifying an independent index, said independent index being separate from the database and associated with the database, said independent index containing a subset of data from the database, wherein the subset is a independent copy of selected data in the database and the selected data is less than all data in the database, wherein the independent index is updated after a modification is made to the database and is not updated at the time when the modification is made to the database so that the time at which the independent index is updated is independent of the time at which the database is modified; an index change number representing a change number of the last modification to the independent index identified by the index identifier, wherein the independent index identified by the index identifier is updated as a function of the change number of the database and the index change number at a time the independent index is accessed by a received query, the change number of the database representing the last modification to the database, wherein the independent index identified by the index identifier is updated with the modifications made to the database, in response to the received query and prior to execution of the received query, as indicated by the change number of the database that have not been applied to the independent index as indicated by the index change number; a last referenced time indicating the time that the independent index identified by the index identifier was last accessed by the query to the database; a last referenced time indicating the time that the independent index identified by the index identifier for the subset of data indicated by the data subset identifier was last accessed by the query to the database; and wherein the subset of data of the independent index identified by the index identifier is deleted without user interaction if said last referenced time is greater than a specified period time. - View Dependent Claims (12, 13, 14)
-
-
15. A computer-readable storage medium having stored thereon computer-executable components comprising:
-
(a) a data structure for an index control record comprising; (i) an index identifier uniquely identifying an independent index, said independent index being separate from a database and associated with said database, said independent index containing a subset of data from the database, wherein the subset is an independent copy of selected data in the database and the selected data is less than all data in the database, wherein the independent index is updated after a modification is made to the database and is not updated at the time when the modification is made to the database so that the time at which the independent index is updated is independent of the time at which the database is modified; (ii) an index change number representing a strictly increasing sequential change number of the last modification to the database for the subset of data identified by the data subset identifier that is reflected in the independent index identified by the index identifier, said modification being applied to the database and to the independent index in order of the sequential change number; and (iii) a last referenced time indicating the time that the independent index identified by the index identifier was last referenced by a query to the database; (b) an index update component for; (i) receiving the request to query the database, said request referencing the independent index, said referenced independent index being associated with the index identifier; (ii) searching for the index control record for the index identifier associated with the requested independent index; and (iii) in response to the received query request and prior to execution of the received query request, applying a modification to the independent index as a function of the index change number of the index control record and a change number of the database, said change number of the database indicating the last modification applied to the database; (c) an index deletion component for; (i) selecting zero or more index control records as a function of the last referenced time, when the last referenced time is greater than a specified period time; (ii) for each selected index control record, deleting the independent index identified by the index identifier of the selected record. - View Dependent Claims (16, 17)
-
Specification