IP Library › Granted Patent US 11,556,470
Granted Patent B2
US 11,556,470 · App. 17/165,442 · Granted Jan 17, 2023

Cache management for search optimization

Inventor: Angela Lin (Kanata, CA)
Assignee: Kinaxis Inc.
G06F12/0815G06F12/121G06F2212/1041G06F2212/608
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 11,556,470
App. No.
17/165,442
Granted
Jan 17, 2023
Kind
B2
Abstract

A method to store a data value onto a cache of a storage hierarchy. A range of a collection of values that resides on a first tier of the hierarchy is initialized. The range is partitioned into disjointed range partitions; a first subset of which is designated as cached; a second subset is designated as uncached. The collection is partitioned into a subset of uncached data and cached data and placed into respective partitions. The range partition to which the data value belongs (i.e. the target range partition) is identified as being cached. If the cache is full all cached range partitions that do not contain the data value are designated as uncached. All values that lie in the cached range partitions designated as uncached are evicted. The data value is then inserted into the target range partition, and copied to the first tier.

Claims (40)

1. A method for storing a data value onto a cache, the method comprising:

determining, by a processor, that a target range partition that encompasses the data value is cached, the target range partition being from among a plurality of disjointed range partitions;

determining, by the processor, that the data value is not present in the target range partition;

determining, by the processor, that the cache is full;

designating, by the processor, all cached range partitions that do not contain the data value, as uncached;

evicting, by the processor, all values that lie in cached range partitions designated as uncached; and

copying, by the processor, the data value to the target range partition and to a first tier of a storage hierarchy;

wherein:

the plurality of disjointed range partitions collectively encompassing a range of possible data values to be stored on the first tier of the storage hierarchy, the plurality of disjointed range partitions consisting of a subset of one or more cached range partitions and a subset of one or more uncached range partitions;

a collection of data values being stored on the first tier of the storage hierarchy, the collection of data values being partitioned into a subset of uncached data and a subset of cached data;

the subset of uncached data being placed into the one or more uncached range partitions; and

the subset of cached data being placed into the one or more cached range partitions, the subset of cached data being copied into the cache, the cache residing on a second tier of the storage hierarchy, the second tier being faster than the first tier.

2. The method of claim 1 , wherein: the cache resides in the fastest tier of the storage hierarchy.

3. The method of claim 1 , wherein the collection of data values is stored on a disk.

4. A computer system for storing a data value onto a cache, the system comprising a processor coupled to a computer-readable memory unit, the memory unit comprising instructions that when executed by the processor, configure the system to:

determine, by the processor, that a target range partition that encompasses the data value is cached, the target range partition being from among the plurality of disjointed range partitions;

determine, by the processor, that the data value is not present in the target range partition;

determine, by the processor, that the cache is full;

designate, by the processor, all cached range partitions that do not contain the data value, as uncached;

evict, by the processor, all values that lie in cached range partitions designated as uncached; and

copy, by the processor, the data value to the target range partition and to a first tier of a storage hierarchy;

wherein: the plurality of disjointed range partitions collectively encompassing a range of possible data values to be stored on the first tier of the storage hierarchy, the plurality of disjointed range partitions consisting of a subset of one or more cached range partitions and a subset of one or more uncached range partitions;

a collection of data values being stored on the first tier of the storage hierarchy, the collection of data values being partitioned into a subset of uncached data and a subset of cached data;

the subset of uncached data being placed into the one or more uncached range partitions; and

the subset of cached data being placed into the one or more cached range partitions, the subset of cached data being copied into the cache, the cache residing on a second tier of the storage hierarchy, the second tier being faster than the first tier.

5. The system of claim 4 , wherein: the cache resides in the fastest tier of the storage hierarchy.

6. The system of claim 4 , wherein the collection of data values is stored on a disk.

7. A computer program product for storing a data value onto a cache, the computer program product comprising a non-transitory computer readable storage device including instructions that when executed by a processor of a computing device, cause the computing device to:

determine, by the processor, that a target range partition that encompasses the data value is cached, the target range partition being from among the plurality of disjointed range partitions;

determine, by the processor, that the data value is not present in the target range partition;

determine, by the processor, that the cache is full;

designate, by the processor, all cached range partitions that do not contain the data value, as uncached;

evict, by the processor, all values that lie in cached range partitions designated as uncached; and

copy, by the processor, the data value to the target range partition and to a first tier of a storage hierarchy;

wherein: the plurality of disjointed range partitions collectively encompassing a range of possible data values to be stored on the first tier of the storage hierarchy, the plurality of disjointed range partitions consisting of a subset of one or more cached range partitions and a subset of one or more uncached range partitions;

a collection of data values being stored on the first tier of the storage hierarchy, the collection of data values being partitioned into a subset of uncached data and a subset of cached data;

the subset of uncached data being placed into the one or more uncached range partitions; and

the subset of cached data being placed into the one or more cached range partitions, the subset of cached data being copied into the cache, the cache residing on a second tier of the storage hierarchy, the second tier being faster than the first tier.

8. The system computer program product of claim 7 , wherein: the cache resides in the fastest tier of the storage hierarchy.

9. The computer program product of claim 7 , wherein the collection of data values is stored on a disk.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2021
From: LIN, ANGELA
To: KINAXIS INC.
Reel/Frame 055116/0024 →
Continuity (1)
Related Publication 20220245065A1 · Aug 4, 2022
Cited By (2)
US 12,572,471 US 12,608,631