IP Library Granted Patent US 9,213,780
Granted Patent B2
US 9,213,780 · App. 12/492,916 · Granted Dec 15, 2015

Cache and index refreshing strategies for variably dynamic items and accesses

Inventors: Joseph Yossi Azar (Redmond, WA); Eric Horvitz (Kirkland, WA); Eyal Lubetzky (Bellevue, WA); Dafna Shahaf (Pittsburgh, PA)
Assignee: Microsoft Technology Licensing LLC
G06F17/30902G06F17/30469
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,213,780
App. No.
12/492,916
Granted
Dec 15, 2015
Kind
B2
Abstract

Many computing scenarios involve an item cache or index, comprising items corresponding to source items that may change without notice, rendering the item in the item cache or index stale. It may not be possible to guarantee the freshness of the items, but it may be desirable to reduce staleness in an efficient manner. Therefore, the refreshing of items may be prioritized by first predicting the query frequency of respective item representing the rate at which an item is retrieved from the item cache (e.g., by monitoring queries for the item), predicting an update frequency representing the rate at which the source item is updated by the source item host (e.g., by classifying the source item type), and computing a refresh utility representing the improvement in cache freshness achieved by refreshing the item. Respective items may then be prioritized for refreshing according to the computed refresh utilities.

Claims (178)

1. A method of prioritizing a refreshing of items provided in response to queries, the items stored in an item cache by a computer having a processor, respective items corresponding to a source item retrieved from a source item host accessible to the computer, and the method comprising:

executing on the processor instructions configured to:

for respective items:

predict a query frequency of queries requesting the item,

predict an update frequency of the source item by the source item host, and

compute a refresh utility of the item based on the query frequency and the update frequency; and

prioritize refreshing a first item of the item cache having a first computed refresh utility over refreshing a second item of the item cache having a lower computed refresh utility than the first computed refresh utility of the first item.

2. The method of claim 1 :

the source items comprising web-accessible source items;

the source item hosts comprising webservers hosting the web-accessible source items; and

the item cache comprising a proxy cache configured to:

cache web-accessible source items that are frequently requested by the users, and

provide an item corresponding to a web-accessible source item requested by a user.

3. The method of claim 1 :

the source items comprising web-accessible source items;

the source item hosts comprising webservers hosting the web-accessible source items; and

the item cache comprising a web search cache configured to identify web-accessible source items corresponding to web queries received from web users.

4. The method of claim 1 , predicting the query frequency comprising:

for respective items:

tracking a rate of queries for the item, and

computing a query frequency for the item based on the rate of queries;

generating an item query frequency set configured to map items to query frequencies; and

predicting the query frequency of an item comprising: selecting the query frequency of the item from the item query frequency set.

5. The method of claim 1 , predicting the query frequency of the item comprising:

training a probabilistic classifier to predict query frequencies of items based on a training item set comprising items associated with known query frequencies, and

applying the probabilistic classifier to an item to predict the query frequency of the item.

6. The method of claim 1 , predicting the update frequency of a source item by the source item host comprising:

extracting at least one source item criterion of the source item;

classifying the source item as a source item type according to the at least one source item criterion; and

predicting the update frequency of the source item based on the update frequencies of other source items of the source item type.

7. The method of claim 6 , generating the update frequency set comprising:

generating a machine learning function configured to map source item types to update frequencies, and

training the machine learning function based on a training data set associating source items of respective source item types with update frequencies.

8. The method of claim 1 , computing the refresh utility comprising:

for respective items:

computing a refresh probability for the item based on the query frequency of queries requesting the item and the update probability of the source item by the source item host, the refresh probabilities selected to yield a desirably high refresh utility; and

after at least one item in the item cache is refreshed, recomputing the refresh probability for the item based on the query frequency of queries requesting the item and the update probability of the source item by the source item host.

9. The method of claim 8 , the refresh utility computed according to a refresh utility model comprising:

maxΣ t=1 T (Σhd i= 1 n x t i ·u i )

such that:

Σ p i ≦1

p i ≧0

0≦ x t i ≦1

x 0 i =0

x t+1 i =x t i ·(1− c i )·(1− p i )+ p i

wherein:

n represents the number of items in the item cache;

t represents a time point;

u i represents a query frequency of item i;

x t i represents a probability that source item i has been updated by the source item host at time t since the item was last refreshed;

c i represents a freshness probability comprising a probability that the source item i has not been updated by the source item host of source item i since the item i was last refreshed; and

p i represents a refresh probability of item i at time t.

10. The method of claim 9 , computing the refresh probabilities for respective items comprising:

selecting an item subset comprising at least one item from the item cache;

computing a Lagrange multiplier over respective items of the subset based on the query frequency of queries requesting the item and the update probability of the source item by the source item host; and

for respective items, computing a refresh probability based on the update frequency of the source item by the source item host, the query frequency of queries requesting the item, and the Lagrange multiplier.

11. The method of claim 9 , computing the refresh probabilities for respective items comprising:

forming an item subset comprising the items of the item cache;

while at least one item in the item subset may comprise a refresh probability less than zero:

removing items from the subset having a refresh probability less than zero;

computing a Lagrange multiplier over respective items of the subset based on the query frequency of queries requesting the item and the update probability of the source item by the source item host; and

for respective items in the item subset, computing a refresh probability.

12. The method of claim 11 :

the method comprising: computing an output of an objective function according to the mathematical formula:

F

(

p

1

,

p

n

)

=

i

u

i

p

i

p

i

+

c

i

-

p

i

c

i

wherein:

u i represents a query frequency of item i

c i represents a freshness probability comprising a probability that the source item i has not been updated by the source item host of source item i since the item i was last refreshed, and

p i represents a refresh probability of item i;

the Lagrange multiplier computed according to the mathematical formula:

λ

=

(

i

u

i

c

i

(

1

-

c

i

)

1

+

i

c

i

1

-

c

i

)

2

;

and

the refresh probabilities for respective items in the item subset computed according to the mathematical formula:

p

i

=

u

i

c

i

λ

-

c

i

1

-

c

i

.

13. The method of claim 9 , computing the refresh probabilities for respective items comprising: iteratively allocating a refresh probability increment to the refresh probability of the item having a maximum derivative flux based on the query frequency, the update frequency, and the refresh probability allocated to the item.

14. The method of claim 1 , the instructions configured to, for respective items:

select a refresh frequency based on the refresh utility, and

refresh the item stored in the item cache according to the refresh frequency of the item.

15. The method of claim 14 :

the computer comprising a cache refreshing resource set comprising at least one cache refreshing resource configured to refresh items in the item cache, and

the prioritizing comprising: allocating the cache refreshing resources of the cache refreshing resource set to refresh items in the item cache based on respective refresh utilities of the items.

16. The method of claim 15 , the instructions configured to compute an aggregate refresh utility of the items stored in the item cache that is achievable by the cache refreshing resource set.

17. The method of claim 16 , the instructions configured to:

compute a first aggregate refresh utility of the items stored in the item cache that is achievable by a first cache refreshing resource set;

compute a second aggregate refresh utility of the items stored in the item cache that is achievable by a second cache refreshing resource set; and

compute a differential aggregate refresh utility of the items stored in the item cache that is differentially achievable by the first cache refreshing resource set as compared with the second cache refreshing resource set.

18. The method of claim 1 , the instructions configured to:

compute a query quality metric of the item cache indicating a quality of at least one query result generated in response to a query applied to the item cache, and

prioritize the refreshing of the items based on the refresh utilities in order to improve the query quality metric of the item cache.

19. A system configured to prioritize a refreshing of items provided in response to queries, the items stored in an item cache by a computer having a processor, respective items corresponding to a source item retrieved from a source item host accessible to the computer, and the system comprising:

a refresh utility computing component configured to compute a refresh utility of the items stored in the item cache by, for respective items:

predicting a query frequency of queries requesting the item,

predicting an update frequency of the source item by the source item host, and

computing a refresh utility of the item based on the query frequency and the update frequency; and

an item prioritizing component configured to prioritize the refreshing a first item of the item cache having a first computed refresh utility over refreshing a second item of the item cache having a lower computed refresh utility than the first computed refresh utility of the first item.

20. A memory device storing instructions that, when executed on a processor of a computing device having an item cache that caches at least two items, cause the computing device to prioritize refreshing the at least two items of the item cache, by:

for respective items:

predicting a query frequency of queries requesting the item,

predicting an update frequency of the source item by the source item host, and

computing a refresh utility of the item based on the query frequency and the update frequency; and

prioritizing refreshing a first item of the item cache having a first computed refresh utility over refreshing a second item of the item cache having a lower computed refresh utility than the first computed refresh utility of the first item.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034564/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2009
From: AZAR, JOSEPH YOSSI; HORVITZ, ERIC; LUBETZKY, EYAL; SHAHAF, DAFNA
To: MICROSOFT CORPORATION
Reel/Frame 022993/0900 →
Continuity (1)
Related Publication 20100332513A1 · Dec 30, 2010