Controlling memory usage in a cache

US10866894B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10866894-B2
Application numberUS-201715841103-A
CountryUS
Kind codeB2
Filing dateDec 13, 2017
Priority dateDec 13, 2017
Publication dateDec 15, 2020
Grant dateDec 15, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Systems and methods for controlling cache usage are described and include associating, by a server computing system, a tenant in a multi-tenant environment with a cache cluster formed by a group of cache instances; associating, by the server computing system, a memory threshold and a burst memory threshold with the tenant; enabling, by the server computing system, each of the cache instances to collect metrics information based on the tenant accessing the cache cluster, the metrics information used to determine memory usage information and burst memory usage information of the cache cluster by the tenant; and controlling, by the server computing system, usage of the cache cluster by the tenant based on comparing the memory usage information with the memory threshold and comparing the burst memory usage information with the burst memory threshold.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: associating, by a database system, a tenant of a plurality of tenants in a multi-tenant environment with a cache cluster formed by a group of cache instances; associating, by the database system, a memory threshold and a burst memory threshold with the tenant, the memory threshold being an amount of usable memory set for the associated tenant and the burst memory threshold being an amount of usable burst memory set for the associated tenant, the memory threshold and the burst memory threshold being specific to the associated tenant; enabling, by the database system, each of the cache instances in the cache cluster associated with the tenant to collect metrics information based on the tenant accessing the cache cluster by performing cache-write related operations to one or more of the cache instances in the cache cluster, the memory usage information and burst memory usage information of the cache cluster by the tenant being determined by aggregating the metrics information collected by the group of cache instances in the cache cluster; and controlling, by the database system, usage of the cache cluster by the tenant based on comparing the memory usage information with the memory threshold, comparing the burst memory usage information with the burst memory threshold and performing eviction operations when the memory usage information violates the memory threshold. 2. The method of claim 1 , wherein the eviction operations are performed until the memory usage information stops violating the memory threshold. 3. The method of claim 2 , wherein controlling the usage of the cache cluster by the tenant based on comparing the burst memory usage information with the burst memory threshold comprises pausing the cache-write related operations associated with the tenant. 4. The method of claim 3 , wherein the cache-write related operations are paused for a pause period. 5. The method of claim 4 , wherein controlling the usage of the cache cluster by the tenant based on comparing the burst memory usage information with the burst memory threshold comprises resuming the cache-write related operations associated with the tenant based on expiration of the pause period or based on determining that the burst memory usage information stops violating the burst memory threshold. 6. The method of claim 5 , further comprising: performing, by the database system, the eviction operations on the cache cluster based on an eviction policy. 7. A computer program product comprising computer-readable program code to be executed by one or more processors when retrieved from a non-transitory computer-readable medium, the program code including instructions to: associate a tenant in a multi-tenant environment with a cache cluster formed by a group of cache instances; associate a memory threshold and a burst memory threshold with the tenant, the memory threshold being an amount of usable memory set for the associated tenant and the burst memory threshold being an amount of usable burst memory set for the associated tenant, the memory threshold and the burst memory threshold being specific to the associated tenant; enable each of the cache instances in the cache cluster associated with the tenant to collect metrics information based on the tenant accessing the cache cluster by performing cache-write related operations to one or more of the cache instances in the cache cluster, the memory usage information and burst memory usage information of the cache cluster by the tenant being determined by aggregating the metrics information collected by the group of cache instances in the cache cluster; and control usage of the cache cluster by the tenant based on comparing the memory usage information with the memory threshold, comparing the burst memory usage information with the burst memory threshold and performing eviction operations when the memory usage information violates the memory threshold. 8. The computer program product of claim 7 , wherein the eviction operations are performed until the memory usage information stops violating the memory threshold. 9. The computer program product of claim 8 , wherein controlling the usage of the cache cluster by the tenant based on comparing the burst memory usage information with the burst memory threshold comprises pausing the cache-write related operations associated with the tenant. 10. The computer program product of claim 9 , wherein the cache-write related operations are paused for a pause period. 11. The computer program product of claim 10 , wherein controlling the usage of the cache cluster by the tenant based on comparing the burst memory usage information with the burst memory threshold comprises resuming cache-write related operations associated with the tenant based on expiration of the pause period or based on determining that the burst memory usage information stops violating the burst memory threshold. 12. The computer program product of claim 11 , further comprising instructions to perform the eviction operations on the cache cluster based on an eviction policy. 13. A system comprising: one or more processors; and a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors of a first server computing system to: associate a tenant in a multi-tenant environment with a cache cluster formed by a group of cache instances; associate a memory threshold and a burst memory threshold with the tenant, the memory threshold being an amount of usable memory set for the associated tenant and the burst memory threshold being an amount of usable burst memory set for the associated tenant; enable each of the cache instances in the cache cluster associated with the tenant to collect metrics information based on the tenant accessing the cache cluster by performing cache-write related operations to one or more of the cache instances in the cache cluster, the memory usage information and burst memory usage information of the cache cluster by the tenant being determined by aggregating the metrics information collected by the group of cache instances in the cache cluster; and control usage of the cache cluster by the tenant based on comparing the memory usage information with the memory threshold, comparing the burst memory usage information with the burst memory threshold and performing eviction operations when the memory usage information violates the memory threshold. 14. The system of claim 13 , wherein the eviction operations are performed until the memory usage information stops violating the memory threshold. 15. The system of claim 14 , wherein controlling the usage of the cache cluster by the tenant based on comparing the burst memory usage information with the burst memory threshold comprises pausing the cache-write related operations associated with the tenant. 16. The system of claim 15 , wherein the cache-write related operations are paused for a pause period. 17. The system of claim 16 , wherein controlling the usage of the cache cluster by the tenant based on comparing the burst memory usage information with the burst memory threshold comprises resuming cache-write related operations associated with the tenant based on expiration of the pause period or based on determining that the burst memory usage information stops violating the burst memory threshold. 18. The system of claim 17 , further comprising instructions to perform the eviction operations on the cache cluster based on an eviction policy.

Assignees

Inventors

Classifications

  • G06F12/126Primary

    with special data handling, e.g. priority of data or instructions, handling errors or pinning · CPC title

  • with a shared cache · CPC title

  • with cache invalidating means (G06F12/0815 takes precedence) · CPC title

  • adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel · CPC title

  • using a bus scheme, e.g. with bus monitoring or watching means · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10866894B2 cover?
Systems and methods for controlling cache usage are described and include associating, by a server computing system, a tenant in a multi-tenant environment with a cache cluster formed by a group of cache instances; associating, by the server computing system, a memory threshold and a burst memory threshold with the tenant; enabling, by the server computing system, each of the cache instances to…
Who is the assignee on this patent?
Salesforce Com Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/126. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 15 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).