IP Library Granted Patent US 9,292,454
Granted Patent B2
US 9,292,454 · App. 14/175,167 · Granted Mar 22, 2016

Data caching policy in multiple tenant enterprise resource planning system

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,292,454
App. No.
14/175,167
Granted
Mar 22, 2016
Kind
B2
Abstract

A cache manager application provides a data caching policy in a multiple tenant enterprise resource planning (ERP) system. The cache manager application manages multiple tenant caches in a single process. The application applies the caching policy. The caching policy optimizes system performance compared to local cache optimization. As a result, tenants with high cache consumption receive a larger portion of caching resources.

Claims (53)

1. A method executed on a computing device to provide a data caching policy in a server of a multiple tenant Enterprise Resource Planning (ERP) system, the method comprising:

receiving the data caching policy associated with a removal of cached items from a shared cache of the server;

monitoring status of the cached items and a total consumed cache memory;

ranking the cached items based on the data caching policy evaluating attributes associated with the cached items including a frequency of an access, a last time of an access, and one or more of: an expense to re-compute, an association with one of the shared cache, and attributes of an associated tenant; and

in response to detecting the total consumed cache memory exceeding a predefined limit, removing one or more of the cached items from the shared cache based on the data caching policy.

2. The method of claim 1 , further comprising:

ordering the cached items based on access associated with each of the cached items based on a determination of a least recently used (LRU) caching policy as the data caching policy.

3. The method of claim 2 , further comprising:

ranking one of the cached items with a timestamp furthest from a current time as a LRU cached item.

4. The method of claim 3 , further comprising:

removing the LRU cached item in response to detecting the total consumed cache memory exceeding the predefined limit.

5. The method of claim 2 , further comprising:

ranking one of the cached items with a timestamp nearest to a current time as a most recently used (MRU) cached item.

6. The method of claim 1 , further comprising:

ordering the cached items based on a frequency of access associated with each of the cached items based on a determination of a least frequently used (LFU) caching policy as the data caching policy.

7. The method of claim 6 , further comprising:

ranking one of the cached items as a LFU cached item, wherein the LFU cached item has a lowest frequency of use compared to other cached items.

8. The method of claim 7 , further comprising:

removing the LFU cached item in response to detecting the total consumed cache memory exceeding the predefined limit.

9. The method of claim 1 , further comprising:

removing the one or more cached items from a bottom of the ranked cached items.

10. A server to provide a data caching policy in a multiple tenant Enterprise Resource Planning (ERP) system, the server comprising:

a memory;

a processor coupled to the memory, the processor executing a cache manager application in conjunction with instructions stored in the memory, wherein the cache manager application is configured to:

receive the data caching policy associated with removal of cached items from a shared cache of the server;

monitor status of the cached items and a total consumed cache memory;

rank the cached items based on the data caching policy evaluating attributes associated with the cached items including a frequency of an access, a last time of an access, and one or more of: an expense to re-compute, an association with one of the shared cache, and attributes of an associated tenant; and

in response to detecting the total consumed cache memory exceeding a predefined limit, remove one or more cached items from the shared cache based on the data caching policy.

11. The server of claim 10 , wherein the cache manager application is further configured to:

provide an application programming interface (API) to enable tenants to interact with the shared cache through a registration operation.

12. The server of claim 11 , wherein the cache manager is further configured to:

parameterize the registration operation by one of the cached items that has been added to the shared cache.

13. The server of claim 10 , wherein the cache manager application is further configured to:

provide an application programming interface (API) to enable tenants to interact with the shared cache through a de-registration operation.

14. The server of claim 13 , wherein the cache manager application is further configured to:

parameterize the de-registration operation by one of the cached items that has been removed from the shared cache.

15. The server of claim 10 , wherein the cache manager application is further configured to:

provide an application programming interface (API) to enable tenants to interact with the shared cache through an accessed item notification operation.

16. The server of claim 15 , wherein the cache manager application is further configured to:

parameterize the accessed item notification operation by one of the cached items that has been accessed within the shared cache through a lookup operation.

17. A method executed on a computing device to provide a data caching policy in a server of a multiple tenant Enterprise Resource Planning (ERP) system, the method comprising:

receiving the data caching policy associated with removal of cached items from a shared cache of the server;

monitoring status of the cached items and a total consumed cache memory;

ranking the cached items based on the data caching policy evaluating attributes associated with the cached items including a frequency of an access, a last time of an access, and one or more of: an expense to re-compute, an association with one of the shared cache, and attributes of an associated tenant; and

in response to detecting the total consumed cache memory exceeding a predefined limit, removing one or more cached items from the shared cache based on the data caching policy.

18. The method of claim 17 , further comprising:

ordering the cached items based on a timestamp of access associated with each of the cached items based on a determination of a least recently used (LRU) caching policy as the data caching policy;

ranking one of the cached items with a timestamp furthest from a current time as a LRU cached item; and

removing the LRU cached item in response to detecting the total consumed cache memory exceeding the predefined limit.

19. The method of claim 17 , further comprising:

ordering the cached items based on a frequency of access associated with each of the cached items based on a determination of a least frequency used (LFU) caching policy as the data caching policy;

ranking one of the cached items as a LFU cached item, wherein the LFU cached item has a lowest frequency of use compared to other cached items; and

removing the LFU cached item in response to detecting the total consumed cache memory exceeding the predefined limit.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039025/0454 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2014
From: STAIRS, JOHN; KRISTOFFERSEN, ESBEN NYHUUS; HEJLSBERG, THOMAS
To: MICROSOFT CORPORATION
Reel/Frame 032171/0522 →