IP Library Granted Patent US 7,519,776
Granted Patent B2
US 7,519,776 · App. 11/189,323 · Granted Apr 14, 2009

Method and system for time-weighted cache management

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,519,776
App. No.
11/189,323
Granted
Apr 14, 2009
Kind
B2
Abstract

Disclosed is a technique for managing memory items in a cache. An “age-lock” parameter is set to protect the newer memory items. When an incoming memory item (such as a history block header) is to be added to the cache, the amount of free space in the cache is checked. If there is insufficient free space for the incoming memory item, then space is freed up by removing memory items from the cache. No memory items protected by the age-lock parameter are removed. Of the older items, the selection for removal follows any of a number of well know cache management techniques, such as the “least recently used” algorithm. A “maximum size” parameter can be set for the cache. If the cache exceeds this maximum size, then free space is released and memory items are removed to decrease the cache size.

Claims (53)

1. In a control environment, a method for managing a cache of memory items, the method comprising:

setting an age-lock parameter for the cache, the age-lock parameter specifying a duration;

loading a memory item that is not in the cache;

comparing a size of the loaded memory item with an amount of free space in the cache;

if the size of the loaded memory item is greater than the amount of free space in the cache, then selecting and removing memory items already in the cache and marking as free the space previously occupied by the removed memory items until the amount of free space in the cache is greater than or equal to the size of the loaded memory item, wherein selecting memory items to be removed comprises not selecting any memory items newer than the duration specified by the age-lock parameter; and

adding the loaded memory item to the cache.

2. The method of claim 1 wherein the loaded memory item comprises a history block header.

3. The method of claim 1 wherein loading a memory item that is not in the cache comprises loading a memory item from a long term storage.

4. The method of claim 1 wherein selecting memory items to be removed comprises applying a “least recently used” algorithm.

5. The method of claim 1 further comprising:

setting a maximum size parameter for the cache.

6. The method of claim 5 further comprising:

if a current size of the cache is greater than the set maximum size for the cache, then releasing free space in the cache, if any, and selecting and removing memory items already in the cache and releasing the space previously occupied by the removed memory items until the current size of the cache is less than or equal to the set maximum size for the cache, wherein selecting memory items to be removed comprises not selecting any memory items newer than the duration specified by the age-lock parameter.

7. The method of claim 5 further comprising:

if a total size of memory items in the cache newer than the duration specified by the age-lock parameter is greater than the set maximum size parameter for the cache, then overriding the set maximum size parameter for the cache and retaining the memory items in the cache newer than the duration specified by the age-lock parameter.

8. The method of claim 5 further comprising:

if a total size of memory items in the cache newer than the duration specified by the age-lock parameter is greater than the set maximum size parameter for the cache, then overriding the age-lock parameter and selecting and removing memory items already in the cache and releasing the space previously occupied by the removed memory items until the current size of the cache is less than or equal to the set maximum size for the cache.

9. A computer-readable medium having computer-executable instructions for performing a method for managing a cache of memory items, the method comprising:

setting an age-lock parameter for the cache, the age-lock parameter specifying a duration;

loading a memory item that is not in the cache;

comparing a size of the loaded memory item with an amount of free space in the cache;

if the size of the loaded memory item is greater than the amount of free space in the cache, then selecting and removing memory items already in the cache and marking as free the space previously occupied by the removed memory items until the amount of free space in the cache is greater than or equal to the size of the loaded memory item, wherein selecting memory items to be removed comprises not selecting any memory items newer than the duration specified by the age-lock parameter; and

adding the loaded memory item to the cache.

10. The computer-readable medium of claim 9 wherein the loaded memory item comprises a history block header.

11. The computer-readable medium of claim 9 wherein loading a memory item that is not in the cache comprises loading a memory item from a long term storage.

12. The computer-readable medium of claim 9 wherein selecting memory items to be removed comprises applying a “least recently used” algorithm.

13. The computer-readable medium of claim 9 wherein the method further comprises:

setting a maximum size parameter for the cache.

14. The computer-readable medium of claim 13 wherein the method further comprises:

if a current size of the cache is greater than the set maximum size for the cache, then releasing free space in the cache, if any, and selecting and removing memory items already in the cache and releasing the space previously occupied by the removed memory items until the current size of the cache is less than or equal to the set maximum size for the cache, wherein selecting memory items to be removed comprises not selecting any memory items newer than the duration specified by the age-lock parameter.

15. The computer-readable medium of claim 13 wherein the method further comprises:

if a total size of memory items in the cache newer than the duration specified by the age-lock parameter is greater than the set maximum size parameter for the cache, then overriding the set maximum size parameter for the cache and retaining the memory items in the cache newer than the duration specified by the age-lock parameter.

16. The computer-readable medium of claim 13 wherein the method further comprises:

if a total size of memory items in the cache newer than the duration specified by the age-lock parameter is greater than the set maximum size parameter for the cache, then overriding the age-lock parameter and selecting and removing memory items already in the cache and releasing the space previously occupied by the removed memory items until the current size of the cache is less than or equal to the set maximum size for the cache.

17. In a control environment, a system for managing memory items, the system comprising:

a cache configured for storing memory items; and

an age-lock parameter for the cache, the age-lock parameter specifying a duration;

wherein the system includes a computer-readable medium comprising computer-executable instructions for performing the steps of:

loading a new memory item that is not presently in the cache;

comparing a size of the new memory item with an amount of free space in the cache;

if the size of the new memory item is greater than the amount of free space in the cache, then selecting and removing memory items already in the cache and marking as free the space previously occupied by the removed memory items until the amount of free space in the cache is greater than or equal to the size of the new memory item, wherein selecting memory items to be removed comprises not selecting any memory items newer than the duration specified by the age-lock parameter; and

adding the new memory item to the cache.

18. The system of claim 17 wherein the new memory item comprises a history block header.

19. The system of claim 17 wherein loading a new memory item that is not in the cache comprises loading a memory item from a long term storage.

20. The system of claim 17 wherein selecting memory items to be removed comprises applying a “least recently used” algorithm.

21. The system of claim 17 further comprising:

a maximum size parameter for the cache.

22. The system of claim 21 wherein the cache is further configured for:

if a current size of the cache is greater than the set maximum size for the cache, then releasing free space in the cache, if any, and selecting and removing memory items already in the cache and releasing the space previously occupied by the removed memory items until the current size of the cache is less than or equal to the set maximum size for the cache, wherein selecting memory items to be removed comprises not selecting any memory items newer than the duration specified by the age-lock parameter.

23. The system of claim 21 wherein the cache is further configured for:

if a total size of memory items in the cache newer than the duration specified by the age-lock parameter is greater than the set maximum size parameter for the cache, then overriding the set maximum size parameter for the cache and retaining the memory items in the cache newer than the duration specified by the age-lock parameter.

24. The system of claim 21 wherein the cache is further configured for:

if a total size of memory items in the cache newer than the duration specified by the age-lock parameter is greater than the set maximum size parameter for the cache, then overriding the age-lock parameter and selecting and removing memory items already in the cache and releasing the space previously occupied by the removed memory items until the current size of the cache is less than or equal to the set maximum size for the cache.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2017
From: INVENSYS SYSTEMS, INC.
To: SCHNEIDER ELECTRIC SOFTWARE, LLC
Reel/Frame 041935/0683 →
RELEASE OF SECURITY INTEREST Recorded Aug 9, 2013
From: DEUTSCHE BANK AG, LONDON BRANCH
To: INVENSYS SYSTEMS, INC.
Reel/Frame 030982/0737 →
SECURITY AGREEMENT Recorded Jul 13, 2006
From: INVENSYS SYSTEMS, INC.
To: DEUTSCHE BANK AG, LONDON BRANCH
Reel/Frame 017921/0766 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2005
From: NARYZHNY, YEVGENY V.; AVERGUN, MIKHAIL
To: INVENSYS SYSTEMS, INC.
Reel/Frame 016464/0631 →