# US 8,788,760 B2 · Adaptive caching of data

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,788,760 B2
- Document ID: US8788760B2
- Status: Granted
- Kind: B2
- Application number: 12/621,189
- Filed: 2009-11-18
- Published: 2011-05-19
- Granted: 2014-07-22
- Earliest claimed: 2009-11-18
- Assignees: International Business Machines Corporation
- Applicants: Casimer M. DeCusatis; Rajaram B. Krishnamurthy; Todd A. Nelson; Anuradha Rao; Joseph H. Torella
- Inventors: Casimer M. DeCusatis; Rajaram B. Krishnamurthy; Todd A. Nelson; Anuradha Rao; Joseph H. Torella
- Web page: https://patentgrep.com/patent/US8788760B2

## CPC

- G06F 12/0815: Cache consistency protocols
- G06F 16/24552: {Database cache management}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Data access is facilitated by employing local caches and an adaptive caching strategy. Specific data is stored in each local cache and consistency is maintained between the caches. To maintain consistency, adaptive caching structures are used. The members of an adaptive caching structure are selected based on a sharing context, such as those members having a chosen association identifier or those members not having the chosen association identifier.

## Claims

### Claim 1

A computer program product for facilitating data access in a computing environment, the computer program product comprising:
a non-transitory storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:
adaptively creating caching structures usable in communicating with a plurality of caches of the computing environment, the plurality of caches to be included in the caching structures being selected based on one or more data sharing contexts, and wherein each of the caching structures are exclusively used for one type of operation of a plurality of types of operations, and wherein the caching structures comprise an update caching structure to provide cache updates and an invalidate caching structure to provide cache invalidates; and
using the caching structures to provide an indication of a change to the plurality of caches, wherein the indication is based on a type of the caching structure;
wherein the one or more data sharing contexts are based on an association identifier of a cache being updated; and
wherein the update caching structure is used to provide an update to the plurality of caches of the update caching structure having the association identifier of the cache being updated, and the invalidate caching structure is used to provide an invalidate to the plurality of caches having an association identifier different than the association identifier of the cache being updated.

### Claim 2 (depends on 1)

The computer program product of claim 1, wherein a data sharing context of the one or more data sharing contexts comprises the association identifier of the cache being updated, and the update caching structure provides an update to the plurality of caches having that association identifier.

### Claim 3 (depends on 1)

The computer program product of claim 1, wherein a data sharing context of the one or more data sharing contexts comprises a selected access control.

### Claim 4 (depends on 1)

The computer program product of claim 1, wherein a data sharing context of the one or more data sharing contexts comprises a chosen association identifier, the chosen association identifier being for a selected business role.

### Claim 5 (depends on 1)

The computer program product of claim 1, wherein a data sharing context of the one or more data sharing contexts comprises association identifiers other than the association identifier of the cache being updated.

### Claim 6 (depends on 5)

The computer program product of claim 5, wherein the indication comprises an invalidate of at least a portion of the plurality of caches, wherein the invalidate caching structure provides an invalidate to the plurality of caches having an association identifier different than the association identifier of the cache being updated.

### Claim 7 (depends on 1)

The computer program product of claim 1, wherein the adaptively creating is performed based on a request to update a cache satisfying a data sharing context of the one or more data sharing contexts.

### Claim 8 (depends on 1)

The computer program product of claim 1, wherein the adaptively creating is performed based on a prospective update of caches satisfying a data sharing context of the one or more data sharing contexts.

### Claim 9 (depends on 1)

The computer program product of claim 1, wherein a cache of the plurality of caches includes at least one of an entire data structure or a portion of the entire data structure, wherein the data structure comprises a plurality of portions, and wherein the method further comprises assigning an association identifier to each portion of one or more portions of the plurality of portions.

### Claim 10 (depends on 1)

The computer program product of claim 1, wherein the adaptively creating comprises including in a caching structure of the caching structures a cache based on speculation that the cache will be updated within a defined amount of time.

### Claim 11 (depends on 1)

The computer program product of claim 1, wherein at least one cache of the plurality of caches utilizes a caching structure of the caching structures to determine at least one other cache of the plurality of caches to which an indication of the change is to be provided.

### Claim 12 (depends on 1)

The computer program product of claim 1, wherein a caching structure of the caching structures comprise a hierarchical data structure comprising a hierarchy of parent and child nodes for propagating the indication of the change to the plurality of caches.

### Claim 13

A computer system for facilitating data access in a computing environment, the computer system comprising:
a memory; and
a processor in communications with the memory, wherein the computer system is capable of performing a method, said method comprising:
adaptively creating caching structures usable in communicating with a plurality of caches of the computing environment, the plurality of caches to be included in the caching structures being selected based on one or more data sharing contexts, and wherein each of the caching structures are exclusively used for one type of operation of a plurality of types of operations, and wherein the caching structures comprise an update caching structure to provide cache updates and an invalidate caching structure to provide cache invalidates; and
using the caching structures to provide an indication of a change to the plurality of caches, wherein the indication is based on a type of the caching structure;
wherein the one or more data sharing contexts are based on an association identifier of a cache being updated; and
wherein the update caching structure is used to provide an update to the plurality of caches of the update caching structure having the association identifier of the cache being updated, and the invalidate caching structure is used to provide an invalidate to the plurality of caches having an association identifier different than the association identifier of the cache being updated.

### Claim 14 (depends on 13)

The computer system of claim 13, wherein a data sharing context of the one or more data sharing contexts comprises association identifiers other than the association identifier of the cache being updated.

### Claim 15 (depends on 13)

The computer system of claim 13, wherein the adaptively creating is performed based on a prospective update of caches satisfying a data sharing context of the one or more data sharing contexts.

### Claim 16 (depends on 13)

The computer system of claim 13, wherein a cache of the plurality of caches includes at least one of an entire data structure or a portion of the entire data structure, wherein the data structure comprises a plurality of portions, and wherein the method further comprises assigning an association identifier to each portion of one or more portions of the plurality of portions.

### Claim 17 (depends on 13)

The computer system of claim 13, wherein the adaptively creating comprises including in a caching structure of the caching structures a cache based on speculation that the cache will be updated within a defined amount of time.

### Claim 18

A method for facilitating data access in a computing environment, the method comprising:
adaptively creating, by at least one processor of the computing environment, caching structures usable in communicating with a plurality of caches of the computing environment, the plurality of caches to be included in the caching structures being selected based on one or more data sharing contexts, and wherein each of the caching structures are exclusively used for one type of operation of a plurality of types of operations, and wherein the caching structures comprise an update caching structure to provide cache updates and an invalidate caching structure to provide cache invalidates; and
using the caching structures, by one or more processors, to provide an indication of a change to the plurality of caches, wherein the indication is based on a type of the caching structure;
wherein the one or more data sharing contexts are based on an association identifier of a cache being updated; and
wherein the update caching structure is used to provide an update to the plurality of caches of the update caching structure having the association identifier of the cache being updated, and the invalidate caching structure is used to provide an invalidate to the plurality of caches having an association identifier different than the association identifier of the cache being updated.

### Claim 19 (depends on 18)

The method of claim 18, wherein a data sharing context of the one or more data sharing contexts comprises a chosen association identifier.

### Claim 20 (depends on 18)

The method of claim 18, wherein the adaptively creating is performed based on a prospective update of caches satisfying a data sharing context of the one or more data sharing contexts.
