Methods and system for maintaining data coherency in distributed data cache network
First Claim
1. A method implemented and residing within a computer-readable storage medium that is executed by one or more processors of a network to perform the method, comprising:
- configuring a global cache on a server to manage state changes for data items that are cached in multiple network clients, the global cache is a centralized cache for the network and each client includes its own independent cache and the global cache acting as a reverse proxy for a backend resource on the server, the backend resource is a directory service, wherein the data items are just data items that have been changed since being flushed and once flushed the data items are no longer present in the global cache unless subsequently changed in one of the independent caches;
receiving notice from a first agent, which processes on a first client, the notice indicating a pending change to a particular data item was made within a first cache of the first client;
recording the pending change within the global cache when the pending change comports with a first policy;
enforcing the first policy to identify a mechanism having a second policy for one or more second agents for the one or more second agents to use the mechanism to resolve whether to accept or deny the pending change, the second policy defining whether to instruct the one or more second agents to;
use the second policy for resolution;
use the second policy in combination with a changing principal'"'"'s identity that made the pending change; and
request approval from a particular client principal, and interactively receiving acceptance or denial of the pending change from the one or more second agents by sending a request to the one or more second agents and sending the request as a particular mechanism defined in the first policy, and the particular mechanism is an Application Programming Interface call when the particular client principal is an automated service, and the particular mechanism is one of;
an instant message, a text message, and a dialogue box when the particular client principal is a particular user; and
pushing the pending change with the second policy to the one or more second agents from the global cache, each second agent processing on a different second client and each different second client having a second cache where the data items are being independently accessed, and directing each second client to repaginate its cache and resort its cache but maintain an unchanged view when the particular user is viewing its cache before the repagination and resorting are processed, and receiving a second change for the particular data item before committing the pending change and before flushing the global cache with the pending change when the second change is received, and also reporting the second change to the clients.
18 Assignments
0 Petitions
Accused Products
Abstract
Techniques for distributed cache management are provided. A server having backend resource includes a global cache and a global cache agent. Individual clients each have client cache agents and client caches. When data items associated with the backend resources are added, modified, or deleted in the client caches, the client cache agents report the changes to the global cache agent. The global cache agent records the changes and notifies the other client cache agents to update a status of the changes within their client caches. When the changes are committed to the backend resource each of the statuses in each of the caches are updated accordingly.
-
Citations
16 Claims
-
1. A method implemented and residing within a computer-readable storage medium that is executed by one or more processors of a network to perform the method, comprising:
-
configuring a global cache on a server to manage state changes for data items that are cached in multiple network clients, the global cache is a centralized cache for the network and each client includes its own independent cache and the global cache acting as a reverse proxy for a backend resource on the server, the backend resource is a directory service, wherein the data items are just data items that have been changed since being flushed and once flushed the data items are no longer present in the global cache unless subsequently changed in one of the independent caches; receiving notice from a first agent, which processes on a first client, the notice indicating a pending change to a particular data item was made within a first cache of the first client; recording the pending change within the global cache when the pending change comports with a first policy; enforcing the first policy to identify a mechanism having a second policy for one or more second agents for the one or more second agents to use the mechanism to resolve whether to accept or deny the pending change, the second policy defining whether to instruct the one or more second agents to; use the second policy for resolution; use the second policy in combination with a changing principal'"'"'s identity that made the pending change; and request approval from a particular client principal, and interactively receiving acceptance or denial of the pending change from the one or more second agents by sending a request to the one or more second agents and sending the request as a particular mechanism defined in the first policy, and the particular mechanism is an Application Programming Interface call when the particular client principal is an automated service, and the particular mechanism is one of;
an instant message, a text message, and a dialogue box when the particular client principal is a particular user; andpushing the pending change with the second policy to the one or more second agents from the global cache, each second agent processing on a different second client and each different second client having a second cache where the data items are being independently accessed, and directing each second client to repaginate its cache and resort its cache but maintain an unchanged view when the particular user is viewing its cache before the repagination and resorting are processed, and receiving a second change for the particular data item before committing the pending change and before flushing the global cache with the pending change when the second change is received, and also reporting the second change to the clients. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method implemented and residing within a computer-readable storage medium that is executed by one or more processors of a network to perform the method, comprising:
-
receiving a pending change for a data item from a global agent that manages a global cache for a server, wherein the global cache includes just data items that have been changed since being flushed and once flushed the data items are no longer present in the global cache unless subsequent changes are made, the pending change received with a policy to resolve whether to accept or deny the pending change, and the policy defining whether to instruct processing to; use the policy for resolution; use the policy in combination with a changing principal'"'"'s identity that made the pending change; and request approval from a particular principal and wherein the global cache is a centralized cache on the server and acts as a reverse proxy for backend resources of the server, the global cache managing state changes for multiple data items existing on multiple independent caches for clients of the network, the backend resources are directory services, and receiving a request for the accepting or denying the pending change, the request including a particular mechanism defined in the policy, and the particular mechanism is an Application Programming Interface call when the particular principal is an automated service, and the particular mechanism is one of;
a text message, an instant message, and a dialogue box when the particular principal is a user;determining whether to accept or deny the pending change for the data item and when accepted updating a client cache on a client with the pending change, the determining achieved by evaluating the policy; and repaginating and re-sorting the client cache based on the pending change when the pending change is accepted, wherein a current view of the client cache being viewed by the user of the client cache remains stable and unchanged for the user during the repagination and/or re sorting, and receiving a second change to the data item before committing the pending change and before flushing the global cache with the pending change when the second change is received, and also reporting the second change to the clients. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A multiprocessor-implemented system, comprising:
-
a global cache agent implemented in a computer-readable medium and to process on a server; and a plurality of client cache agents implemented in computer-readable media, each client cache agent to process on a client and manage a client cache;
the global cache agent is configured to manage pending state changes for data items associated with a backend resource of the server via a global cache, the backend resource is a directory service, wherein the global cache agent is further configured to synchronize pending changes to the data items received from each of the client cache agents by receiving the pending changes from those client cache agents originating the pending changes and pushing the pending changes to those client cache agents that did not originate the pending changes and pushing a first policy to identify a mechanism having a second policy for the client cache agents to use in resolving whether to accept or deny the pending changes, and interactively receiving acceptance or denial of the pending change from the client cache agents by sending a request to the client cache agents and sending the request as a particular mechanism defined in the first policy, and the particular mechanism is an Application Programming Interface call made to the one or more second agents, the second policy defining whether to instruct the client cache agents are to;use the second policy for resolution; use the second policy in combination with a changing principal'"'"'s identity that made the pending change; and request approval from a particular client principal, wherein the global cache is a centralized cache for the network and each client includes its own independent cache and the global cache acting as a reverse proxy for a resource on the server, and client cache agent is to repaginate its cache and resort its cache but maintain an unchanged view when a particular user is viewing its cache before the repagination and resorting are processed, and the global cache agent configured to receiving a second change to a particular pending change for a particular data item before that particular pending change is committed and before flushing the global cache with the pending change when the second change is received, and also and reporting the second change to the client cache agents, and request the approval as one of;
a text message, an instant message, and a dialogue box when the particular client principal is the particular user, wherein the global cache includes just data items that have been changed since being flushed and once flushed the data items are no longer present in the global cache unless subsequently changed in one of the independent caches. - View Dependent Claims (14, 15, 16)
-
Specification