Distributed cache arrangement
AssigneeMicrosoft Corporation
InventorsMuralidhar Krishnaprasad, Anil K. Nori, Subramanian Muralidhar
Life of this patent
Estimating the term…
Abstract
Systems and methods that aggregate memory capacity of multiple computers into a single unified cache, via a layering arrangement. Such layering arrangement is scalable to a plurality of machines and includes a data manager component, an object manager component and a distributed object manager component, which can be implemented in a modular fashion. Moreover, the layering arrangement can provide for an explicit cache tier (e.g., cache-aside architecture) that applications are aware about, wherein decision are made explicitly which objects to put/remove in such applications (as opposed to an implicit cache wherein application do not know the existence of the cache).
Claims28
A computer-implemented system comprising at least one processor and at least one machine-readable storage medium storing instructions executable by the at least one processor to implement:
- a distributed object manager component configured to aggregate memory capacity distributed among a plurality of nodes to form a unified cache;
- receiving from an application, which uses the cache for storage of data for the application, one or more requests to store objects in a region in the unified cache, the unified cache guaranteeing colocation of the objects in the region in a single node of the plurality of nodes;
- an availability substrate configured to perform management of the plurality of nodes, the management including managing life cycles of the plurality of nodes and creation of a primary node through which access to the region within the unified cache is to be routed;
- and
- a dispatch manager component configured to receive requests for access to the region from clients, and for each received request to determine whether the primary node is the primary node for the region, and if the primary node is the primary node for the region, then to dispatch the received request to the primary node.
A computer-implemented method comprising using at least one processor to execute instructions stored on at least one machine-readable medium to cause operations including:
- aggregating storage spaces distributed across a plurality of nodes to form a unified cache;
- storing data in the unified cache, storing the data in the unified cache comprising receiving from an application, which uses the cache for storage of data for the application, one or more requests to store objects in a region in the unified cache, the unified cache guaranteeing colocation of the objects in the region in a single node of the plurality of nodes;
- and
- dispatching a request for access to the data to a designated primary node of the plurality of nodes.
At least one computer-readable storage device storing instructions, the instructions configured to, in response to execution by one or more computing devices, cause operations comprising:
- distributing cache memory across a plurality of cache host nodes;
- receiving from an application, which uses the distributed cache memory for storage of data for the application, one or more requests to store one or more objects in a region in the cache memory, and guaranteeing colocation of the objects in the region in a single node of the plurality of nodes;
- designating a primary node of the plurality of cache host nodes as a primary node for the region, the primary node being a node through which access to the region is to be routed;
- in response to receiving a request to access an object stored in the region in the distributed cache memory, a dispatch manager component determining that the primary node is the primary node for the region;
- and
- based on the dispatch manager component determining that the primary node is the primary node for the region, the dispatch manager component dispatching the request to the primary node.
Dependencies are inferred from the claim text.