Systems and methods for updating query results based on query deltas
First Claim
1. A computer-implemented method, comprising:
- generating a first representation of a set of one or more documents of a plurality of documents, wherein the first representation represents a state of the set of one or more documents before at least one change is made to at least one document of said plurality of documents;
after said at least one change is made to at least one document of said plurality of documents, performing the steps of;
causing a currently-stale view or currently-stale count for at least one current query to be displayed on a user interface;
wherein the currently-stale view or currently-stale count is based at least in part on a result set of at least one previously-executed query that was executed on said plurality of documents before said at least one change was made;
generating a second representation of the set of one or more documents of the plurality of documents, wherein the second representation represents a state of the set of one or more documents after said at least one change was made, whereby said first representation and said second representation together represent at least all of the documents affected by said at least one change;
comparing the first and second representations outputting an updated view or count by, to form a third representation that includes representations of differences between said first and second representations;
while said currently-stale view or currently-stale count is displayed, on said user interface utilizing said third representation to update said currently-stale view or currently-stale count on said user interface to reflect said at least one change;
wherein the step of comparing is performed by one or more processors.
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.
-
Citations
49 Claims
-
1. A computer-implemented method, comprising:
-
generating a first representation of a set of one or more documents of a plurality of documents, wherein the first representation represents a state of the set of one or more documents before at least one change is made to at least one document of said plurality of documents; after said at least one change is made to at least one document of said plurality of documents, performing the steps of; causing a currently-stale view or currently-stale count for at least one current query to be displayed on a user interface; wherein the currently-stale view or currently-stale count is based at least in part on a result set of at least one previously-executed query that was executed on said plurality of documents before said at least one change was made; generating a second representation of the set of one or more documents of the plurality of documents, wherein the second representation represents a state of the set of one or more documents after said at least one change was made, whereby said first representation and said second representation together represent at least all of the documents affected by said at least one change; comparing the first and second representations outputting an updated view or count by, to form a third representation that includes representations of differences between said first and second representations; while said currently-stale view or currently-stale count is displayed, on said user interface utilizing said third representation to update said currently-stale view or currently-stale count on said user interface to reflect said at least one change; wherein the step of comparing is performed by one or more processors. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45)
-
-
20. A computing device comprising a processor in communication with a data store, wherein said data store stores a plurality of documents in at least one storage unit, the computing device including:
-
a data store component configured to identify at least one change to be made to the data store; an old state data structure generation component configured to generate a first data structure representing a set of one or more documents of the plurality of documents, wherein the first data structure represents a state of the set of one or more documents before at least one change is made to content of the data store; a user interface component configured to cause a currently-stale view or currently-stale count for at least one current query to be displayed on a user interface after said at least one change is made to the data store, based at least in part on a result set of at least one previously-executed query that was executed on said plurality of documents before said at least one change was made; a new state data structure generation component configured to generate a second data structure of the set of one or more documents of the plurality of documents, wherein the second data structure represents a state of the set of one or more documents after the at least one change was 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; a comparator configured to perform an analysis involving the first and second data structures, to form a third data structure that includes representations of differences between said first and second data structures; an update component configured to utilize said third data structure to update said currently-stale view or currently-stale count, while said currently-stale view or currently-stale count is displayed on said user interface, to reflect said at least one change. - View Dependent Claims (46)
-
-
21. A computer-implemented method comprising:
-
after at least one change is made to content of an email data store, performing the steps of; transmitting via an application programming interface (API) at least one current query to be executed on said email data store to a query handler for said email data store; receiving, by said API in response to the at least one current query, a third representation from said query handler that is based at least in part on a comparison of; (A) a first representation of a set of one or more email documents of a plurality of email documents, wherein the first representation represents a state of the set of one or more email documents before the at least one change is made, and (B) a second representation of the set of one or more email documents of the plurality of email documents, wherein the second representation represents a state of the set of one or more email documents 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; displaying, on a user interface, a currently-stale view or currently-stale count for said at least one current query based at least in part on a result set of at least one previously-executed query that was executed on said plurality of email documents before said at least one change was made; and while displaying said currently-stale view or currently-stale count, utilizing the third representation to update said currently-stale view or currently-stale count to reflect said at least one change; wherein the step of comparing is performed by one or more processors. - View Dependent Claims (22, 23, 47, 49)
-
-
24. A computer readable storage medium storing one or more computer executable instructions, which, when executed by one or more processors, causes performance of:
-
identifying at least one change to be made to at least one document of a plurality of documents; generating a first representation of a set of one or more documents of the plurality of documents, wherein the first representation represents a state of the set of one or more documents before the at least one change is made to the at least one document in said plurality of documents; after said at least one change is made to the at least one document, causing performance of; causing a currently-stale view or currently-stale count for at least one current query to be displayed on a user interface based at least in part on a result set of at least one previously-executed query that was executed on said plurality of documents before said at least one change was made; generating a second representation of the set of one or more documents of the plurality of documents, wherein the second representation represents a state of the set of one or more documents 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 to the data store; comparing the first and second representations to form a third representation that includes representations of differences between said first and second representations; and updating said currently-stale view or currently-stale count, while said currently-stale view or currently-stale count is displayed, on said user interface to reflect said at least one change based at least in part on the third representation. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 48)
-
Specification