Controlling memory usage in a cache
US-10866894-B2 · Dec 15, 2020 · US
US11734278B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11734278-B2 |
| Application number | US-202117504898-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 19, 2021 |
| Priority date | Oct 19, 2021 |
| Publication date | Aug 22, 2023 |
| Grant date | Aug 22, 2023 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Techniques are disclosed in which a server computer system manages a database cache for multiple different tenants. The system may retrieve, from a database cache storing data for different tenants, a set of key-value entries and cache metadata for the set of key-value entries. Further, the system may identify, based on analyzing keys of key-value entries, tenants corresponding to respective ones of the set of key-value entries. The system may generate, based on the identified tenants and cache metadata for cache entries corresponding to the identified tenants, current usage metrics for the database cache. Based on the current usage metrics for the cache, the system may determine whether to adjust one or more operation parameters of the cache. Disclosed cache management techniques may advantageously allow for analysis of cache usage metrics for individual tenants and more efficient use of the cache (e.g., by altering cache parameters for individual tenants).
Opening claim text (preview).
What is claimed is: 1. A method, comprising: retrieving, by a server computer system from a database cache storing data for different tenants, a set of key-value entries and cache metadata for the set of key-value entries; identifying, by the server computer system based on analyzing keys of key-value entries, tenants corresponding to respective ones of the set of key-value entries, wherein the identifying includes: parsing respective keys included in the set of key-value entries retrieved from the database cache to determine two or more separate portions of the respective keys; and matching the two or more separate portions from respective keys to one or more known expressions included in a database of expressions corresponding to different tenants; generating, by the server computer system based on the identified tenants and cache metadata for cache entries corresponding to the identified tenants, current usage metrics for the database cache; and determining, by the server computer system based on the current usage metrics for the database cache, whether to adjust one or more operation parameters of the database cache. 2. The method of claim 1 , wherein the two or more separate portions parsed from respective keys are two or more expressions, and wherein the two or more expressions are one or more expressions of the following types of expressions: terms, prefixes, and suffixes. 3. The method of claim 1 , wherein the database of expressions is populated by: receiving, from a plurality of tenants at a time of registration of the tenants with a service provided by the server computer system, tenant codes; and identifying, based on the received tenant codes, one or more expressions corresponding to respective tenants. 4. The method of claim 1 , wherein the retrieving is performed by: placing a proxy between the database cache and cache client, wherein the cache client provides access to the database cache to a plurality of tenant computing devices, and wherein the proxy stores a copy of database operations requested by the plurality of tenant computing devices and performed by the cache client. 5. The method of claim 1 , wherein the retrieving is performed by: monitoring, using an extensible server, database operations performed on the database cache; and periodically transmitting, from the extensible server to the server computer system, the monitored database operations, wherein the retrieving is performed based on the monitored database operations. 6. The method of claim 1 , wherein the retrieving is performed by: generating a replica of the database cache; and pushing a plurality of requested database operations performed on the database cache to the replica of the database cache, wherein retrieving the set of key-value entries and cache metadata includes retrieving information from the replica of the database cache. 7. The method of claim 1 , further comprising: adjusting, based on the determining, one or more types of the following types of operation parameters of the database cache for one or more of the identified tenants: usable amount of space, time-to-live values, evictions, and throttling. 8. The method of claim 1 , wherein the server computer system is a multi-tenant database system, and wherein the operations further comprise: transmitting, by the multi-tenant database system to a computing device of a first tenant of the multi-tenant database system, instructions for altering one or more internal parameters of the first tenant specifying allowable cache usage for the first tenant, wherein the instructions are generated based on the current usage metrics for the database cache corresponding to the first tenant. 9. The method of claim 1 , wherein the server computer system is a multi-tenant database system, and wherein generating current usage metrics for the database cache includes: aggregating, for respective tenants of the multi-tenant database system, current usage metrics; and periodically updating, based on retrieving one or more additional sets of key-value entries, the aggregated current usage metrics for respective ones of the tenants. 10. A non-transitory computer-readable medium having program instructions stored thereon that are capable of causing a computer system to perform operations comprising: retrieving, by a server computer system from a database cache storing data for different tenants, a set of key-value entries and cache metadata for the set of key-value entries; identifying, by the server computer system based on analyzing keys of key-value entries, tenants corresponding to respective ones of the set of key-value entries, wherein the identifying includes: parsing respective keys included in the set of key-value entries retrieved from the database cache to determine two or more separate portions of the respective keys; and matching the two or more separate portions from respective keys to one or more known expressions included in a database of expressions corresponding to different tenants; generating, by the server computer system based on the identified tenants and cache metadata for cache entries corresponding to the identified tenants, current usage statistics for the database cache; and determining, by the server computer system based on the current usage statistics for the database cache, whether to adjust one or more operation parameters of the database cache. 11. The non-transitory computer-readable medium of claim 10 , wherein the two or more separate portions parsed from respective keys are two or more expressions, and wherein the two or more expressions are one or more expressions of the following types of expressions: terms, prefixes, and suffixes. 12. The non-transitory computer-readable medium of claim 10 , wherein the database of expressions is populated by: receiving, from a plurality of tenants at a time of registration of the tenants with a service provided by the server computer system, tenant codes; and identifying, based on the received tenant codes, one or more expressions corresponding to respective tenants. 13. The non-transitory computer-readable medium of claim 10 , wherein the retrieving is performed by generating a replica of the database cache, including performing database operations submitted by different tenants on both the database cache and the replica of the database cache. 14. The non-transitory computer-readable medium of claim 10 , wherein the operations further comprise: adjusting, based on the determining, one or more of the following types of operation parameters of the database cache for one or more of the identified tenants: usable amount of space, time-to-live values, evictions, and throttling. 15. The non-transitory computer-readable medium of claim 10 , wherein the server computer system is a multi-tenant database system, and wherein the operations further comprise: transmitting, by the multi-tenant database system to a computing device of a first tenant of the multi-tenant database system, instructions for altering one or more internal parameters of the first tenant specifying allowable cache usage for the first tenant, wherein the instructions are generated based on the current usage statistics for the database cache corresponding to the first tenant. 16. A system, comprising: at least one processor; and memory having program instructions stored thereon that are executable by the at least one processor to cause the system to perform operations comprising: retrieving, from a database cache storing data for different tenants, a set of key-value entries and cache metadata for the
Database cache management · CPC title
Grouping and aggregation · CPC title
Presentation of query results · CPC title
Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.