IP Library Granted Patent US 7,360,042
Granted Patent B2
US 7,360,042 · App. 11/019,102 · Granted Apr 15, 2008

Determining when to evict unused items from storage

Assignee: Microsoft Corporation
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 7,360,042
App. No.
11/019,102
Granted
Apr 15, 2008
Kind
B2
Abstract

Items that are in use are maintained in a used item store. Items that are no longer in use are placed in an unused items store. When an item that is not currently in use is requested again, an attempt is made to retrieve the item from the unused item store. Retrieving the item from the unused items store can save a tremendous amount of time since the object does not need to be recalculated again when it is requested. Items may be evicted from the unused item store based on the system resources available. When it has been determined that an item(s) should be evicted, an eviction score is calculated for each unused item. Items are then evicted from the unused item store based on their eviction score. Generally items that are larger in size, took less time to calculate, have not been accessed as frequently, and have not been referenced recently, are the first ones to be evicted from unused items store.

Claims (47)

1. A method for managing unused items, comprising:

determining when an item is not currently in use;

moving the item from a used item store to an unused item store when it is determined that the item is not currently in use;

moving the item from the unused item store to the used item store when the item is in use again;

determining when to evict at least one item from the unused item store; wherein determining when to evict the item comprises determining a time duration it took to calculate the item and determining when resources are needed by a system; wherein determining when the resources are needed comprises determining a memory size for the unused items store; and

evicting the at least one item from the unused item store when determined.

2. The method of claim 1 , wherein evicting the at least one item from the unused item store when determined, comprises:

accessing the unused item store;

calculating an eviction score for each item within the unused item store; and

evicting the at least one item from the unused item store based on the eviction scores.

3. The method of claim 2 , wherein calculating the eviction score comprises determining the following parameters associated with each item: a size; a time associated with a last reference to the item; a time associated with creating the item; and a number of accesses to the item.

4. The method of claim 1 , wherein determining the memory size comprises determining a current size of the unused items, a current size of the used items, and a current size of free memory.

5. The method of claim 1 , wherien determining when to evict the at least one item from the unused item store comprises determining a memory size for the unused item store; comparing the current size of the unused item store to the memory size; and when the memory size is smaller than the current size evicting the at least one item from the unused item store.

6. A computer-readable storage medium having computer-executable instructions for managing unused items, the instructions comprising:

moving an item from a used item store to an unused item store when it is determined that the item is not currently in use;

moving the item from the unused item store to the used item store when it is determined that the item is in use again;

determining when to evict an item from the unused item store; wherein determining when to evict the item includes determining a time duration it took to calculate the item and determining when resources are needed by a system; and

evicting the item from the unused item store when determined; wherein evicting the item from the unused item store when determined, includes: accessing the unused item store; calculating an eviction score for each item within the unused item store; wherein calculating the eviction score comprises determining the following parameters associated with each item: a size; a time associated with a last reference to the item; a time associated with creating the item; and a number of accesses to the item and evicting the item from the unused item store based on the eviction scores.

7. The computer-readable medium of claim 6 , wherein determining when to evict the item from the unused item store comprises determining available resources of a system.

8. The computer-readable medium of claim 6 , wherein determining when an item is currently in use comprises maintaining a usage count that is associated with the item.

9. The computer-readable medium of claim 7 , wherein evicting the item from the unused item store, comprises:

accessing the unused item store;

calculating an eviction score for each item within the unused item store;

selecting an item based on the eviction score; and

evicting the selected item from the unused item store.

10. The computer-readable medium of claim 9 , wherein calculating the eviction score comprises determining: a size; a time associated with a last reference to the item; a time associated with creating the item; and a number of accesses to the item.

11. The computer-readable medium of claim 9 , wherein calculating the eviction score comprises applying the following formula to each item in the unused item store: (Size*LastReference)/(CreationTime*Popularity).

12. The computer-readable medium of claim 9 , further comprising determining a memory size for the unused items store; wherein determining the memory size includes determining a size of the used items store.

13. A system for managing unused items, comprising:

a processor and a computer-readable medium;

an operating environment stored on the computer-readable medium and executing on the processor;

a used item store including currently used items;

an unused items store including items that are not currently in use; and

an application operating under the control of the operating environment and operative to perform actions, including:

moving an item from the used item store to the unused item store when it is determined that the item is not currently in use;

moving the item from the unused item store to the used item store when it is determined that the item is in use again;

determining when to evict at least one of the items from the unused item store; wherein determining when to evict the item includes determining a time duration it took to calculate the item and determining when resources are needed by the system; wherein determining when the resources are needed comprises determining a memory size for the unused items store; and

evicting the at least one item from the unused item store when determined.

14. The system of claim 13 , wherein determining when to evict the item from the unused item store comprises determining available resources of a system and determining when more resources are required by an application.

15. The system of claim 14 , wherein evicting the item from the unused item store, comprises:

accessing the unused item store;

calculating an eviction score for each item within the unused item store;

selecting an item based on the eviction score; and

evicting the selected item from the unused item store.

16. The system of claim 15 , wherein calculating the eviction score comprises determining: a size; a time associated with a last reference to the item; a time associated with creating the item; and a number of accesses to the item.

17. The system of claim 15 , wherein calculating the eviction score comprises applying the following formula to each item in the unused item store: (Size*LastReference)/(CreationTime*Popularity).

18. The system of claim 13 , further comprising determining a memory size for the unused items store.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2005
From: CHEN, BOAZ; ASNASH. LIVIU; PRISH, SHAHAR; SUSSKIND, SILVIO M.
To: MICROSOFT CORPORATION
Reel/Frame 015820/0638 →
Continuity (1)
Related Publication 20060136673A1 · Jun 22, 2006