Systems and methods for updating query results based on query deltas
First Claim
1. A method for computing differences between result sets for at least one query on a data store as the data store changes, wherein said data store stores a plurality of documents in at least one storage unit, including:
- identifying at least one change to be made to the data store;
generating a first representation of at least one document of the plurality of documents, wherein the first representation represents a state of the at least one document before the at least one change is made;
generating a second representation of at least one document of the plurality of documents, wherein the second representation represents a state of the at least one document after the at least one change is made, whereby said first representation and said second representation together represent at least all of the documents affected by the at least one change; and
comparing the first and second representations to form a third representation that includes representations of the differences between said first and second representations.
11 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for automatically updating queries on a data store, such as a personal content database (PCDB), are provided. A query engine runs queries against two indexes: a first index that represents a previous state of documents and a second index that represents a current state of documents. The query is run twice and a delta analysis is performed, i.e., a determination is made as to which documents have changed in some respect from the previous state to the current state, and a view or a count associated with at least one query changes in accordance with the delta analysis. Transactions may be batched dynamically by a transaction manager until an optimal number of documents have changed or a certain amount of time has passed prior to re-running the query and performing the delta analysis.
124 Citations
56 Claims
-
1. A method for computing differences between result sets for at least one query on a data store as the data store changes, wherein said data store stores a plurality of documents in at least one storage unit, including:
-
identifying at least one change to be made to the data store;
generating a first representation of at least one document of the plurality of documents, wherein the first representation represents a state of the at least one document before the at least one change is made;
generating a second representation of at least one document of the plurality of documents, wherein the second representation represents a state of the at least one document after the at least one change is made, whereby said first representation and said second representation together represent at least all of the documents affected by the at least one change; and
comparing the first and second representations to form a third representation that includes representations of the differences between said first and second representations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A computing device, in communication with a data store, that computes differences between result sets for at least one query on the data store as the data store changes, wherein said data store stores a plurality of documents in at least one storage unit, including:
-
a data store component that identifies at least one change to be made to the data store;
an old state data structure generation component that generates a first data structure representing at least one document of the plurality of documents, wherein the first data structure represents a state of the at least one document before the at least one change is made;
a new state data structure generation component that generates a second data structure of at least one document of the plurality of documents, wherein the second data structure represents a state of the at least one document after the at least one change is made, whereby said first data structure and said second data structure together represent at least all of the documents affected by the at least one change; and
a comparator that analyzes the first and second data structures to form a third data structure that includes representations of the differences between said first and second data structures. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
-
35. An application programming interface (API) for use by email application software executing on a computing device in communication with an email data store that enables the computation of differences between result sets for at least one query on the email data store as the email data store changes, wherein said email data store stores a plurality of email documents in at least one storage unit, the API performing the method of:
-
transmitting at least one query to be executed on said email data store to a query handler for said email data store;
receiving in response a difference representation from said query handler that is based on comparison of (A) a first representation of at least one email document of the plurality of email documents, wherein the first representation represents a state of the at least one email document before the at least one change is made and (B) a second representation of at least one email document of the plurality of email documents, wherein the second representation represents a state of the at least one email document after the at least one change is made, whereby said first representation and said second representation together represent at least all of the email documents affected by the at least one change. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42, 43)
-
-
44. A user interface for presenting updated information based on computed differences between result sets for at least one query on an email data store as the email data store changes, wherein said email data store stores a plurality of documents in at least one storage unit, the user interface presenting said updated information based on the method of:
-
transmitting via an application programming interface (API) at least one query to be executed on said email data store to a query handler for said email data store;
receiving, by said API in response, a third representation from said query handler that is based on comparison of (A) a first representation of at least one email document of the plurality of email documents, wherein the first representation represents a state of the at least one email document before the at least one change is made and (B) a second representation of at least one email document of the plurality of email documents, wherein the second representation represents a state of the at least one email document after the at least one change is made, whereby said first representation and said second representation together represent at least all of the email documents affected by the at least one change; and
based on said third representation, updating the user interface by presenting information associated with the output of a function of a result set associated with at least one query to the data store. - View Dependent Claims (45, 46)
-
-
47. A computer readable medium comprising a plurality of computer executable modules having computer executable instructions, the modules comprising:
-
means for identifying at least one change to be made to the data store;
means for generating a first representation of at least one document of the plurality of documents, wherein the first representation represents a state of the at least one document before the at least one change is made;
means for generating a second representation of at least one document of the plurality of documents, wherein the second representation represents a state of the at least one document after the at least one change is made, whereby said first representation and said second representation together represent at least all of the documents affected by the at least one change; and
means for comparing the first and second representations to form a third representation that includes representations of the differences between said first and second representations. - View Dependent Claims (48, 49, 50, 51, 52, 53, 54, 55, 56)
-
Specification