IP Library Patent Application 13278453
Patent Application
App. No. 13/278,453

CLUSTER CACHE COHERENCY PROTOCOL

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 None
App. No.
13/278,453
Abstract

Systems, methods, and other embodiments associated with a cluster cache coherency protocol are described. According to one embodiment, an apparatus includes non-transitory storage media configured as a cache associated with a computing machine. The computing machine is a member of a cluster of computing machines that share access to a storage device. A cluster caching logic is associated with the computing machine. The cluster caching logic is configured to communicate with cluster caching logics associated with the other computing machines to determine an operational status of a clique of cluster caching logics performing caching operations on data in the storage device. The cluster caching logic is also configured to selectively enable caching of data from the storage device in the cache based, at least in part, on a membership status of the cluster caching logic in the clique.

Claims (56)

1 . An apparatus, comprising:

non-transitory storage media configured as a cache associated with a computing machine; wherein the computing machine is a member of a cluster of computing machines that share access to a storage device; and

a cluster caching logic associated with the computing machine, wherein the caching logic is configured to:

communicate with cluster caching logics associated with the other computing machines to determine an operational status of a clique of cluster caching logics performing caching operations on data in the storage device; and

selectively enable caching of data from the storage device in the cache based, at least in part, on a membership status of the cluster caching logic in the clique.

2 . The apparatus of claim 1 , wherein the cluster caching logic is configured to enable caching of data from the storage device when the cluster caching logic is a member of the clique and to disable caching when the cluster caching logic is not a member of the clique.

3 . The apparatus of claim 1 , wherein the cluster caching logic is configured to disable caching of data from the storage device when a health status of the clique is degraded.

4 . The apparatus of claim 3 , wherein the cluster caching logic is configured to determine the health status of the clique by broadcasting a health check message to other clique members and subsequently broadcasting a clique degradation message indicating that the health status of the clique is degraded if a response is not received from the other members of the clique.

5 . The apparatus of claim 1 , wherein the cluster caching logic is configured to disable caching in response to receiving a clique degradation message.

6 . The apparatus of claim 1 , wherein the cluster caching logic is configured to invalidate data in the cache of the computing machine when the computing machine ceases hosting of a virtual machine having a virtual disk file cached in the cache.

7 . The apparatus of claim 1 , wherein the cluster caching logic is configured to:

detect a persistent reserve message from a requesting cluster caching logic in the clique reserving exclusive access to the memory device;

record a list of memory blocks written by the requesting cluster caching logic while the storage device is reserved;

detect a revocation message from the requesting cluster caching logic;

broadcast the list of memory blocks to the cluster caching logics in the clique; and

broadcast a clique degradation message indicating that a health status of the clique is degraded if a response is not received from all members of the clique.

8 . A method, comprising:

determining membership in a clique of caching logics that cache data from a shared storage device; and

if membership in the clique is established, enabling caching of data from the shared storage device in a cache.

9 . The method of claim 8 , further comprising:

broadcasting a health check message to other clique members;

monitoring for a response from the other clique members; and

if a response is not received from the other clique members, broadcasting a clique degradation message indicating that a health status of the clique is degraded.

10 . The method of claim 9 , further comprising:

receiving a token from another cluster caching logic that is a member of the clique;

broadcasting the health check message in response to receiving the token; and

passing the token to another member of the clique after receiving a response from all the clique members or broadcasting the clique degradation message.

11 . The method of claim 8 , further comprising invalidating data in the cache corresponding to a virtual disk of a virtual machine if the virtual machine is deleted.

12 . The method of claim 8 , further comprising invalidating data in the cache corresponding to a virtual disk of a virtual machine if the virtual machine moves to a different host computing machine.

13 . The method of claim 8 , further comprising disabling caching in response to receiving a clique degradation message received from a member of the clique.

14 . The method of claim 13 , further comprising resuming caching in response to a resume caching message received from a member of the clique.

15 . The method of claim 8 , further comprising:

detecting a persistent reserve message from a requesting cluster caching logic in the clique reserving exclusive access to the shared memory device;

recording a list of memory blocks written by the requesting cluster caching logic while the shared storage device is reserved;

detecting a revocation message from the requesting cluster caching logic;

broadcasting the list of memory blocks to the cluster caching logics in the clique; and

broadcasting a clique degradation message indicating that a health status of the clique is degraded if a response is not received from all members of the clique.

16 . A cluster cache controller configured for coupling to a physical computing machine, wherein the cluster cache controller is configured to:

assess a health status of a clique of cluster cache controllers that cache data from a shared storage device;

determine the cluster cache controller's membership status with respect to the clique; and

if the cluster cache controller is a member of the clique and the health status of the clique is not degraded, enabling caching in a cache associated with the physical computing machine.

17 . The cluster cache controller of claim 16 , wherein the cluster cache controller is further configured to, prior to performing caching operations, perform the following:

establish an out-of-band connection with at least one cluster cache controller that is a member of the clique; and

register as a member of the clique.

18 . The device of claim 16 wherein the cluster cache controller is further configured to:

broadcast a health check message to other clique members;

monitor for a response from the other clique members; and

if a response is not received from each of the other clique members, broadcast a clique degradation message indicating that the health status of the clique is degraded.

19 . The device of claim 16 wherein the cluster cache controller is further configured to invalidate data in the cache when the physical computing machine ceases hosting of a virtual machine having a virtual disk file cached in the cache.

20 . The cluster cache controller of claim 16 wherein the cluster cache controller is further configured to disable caching and invalidate data in the cache in response to receiving a clique degradation message.

21 . The cluster cache controller of claim 16 wherein the cluster cache controller is further configured to:

detect a persistent reserve message from a requesting cluster caching logic in the clique reserving exclusive access to the shared memory device;

record a list of memory blocks written by the requesting cluster caching logic while the shared storage device is reserved;

detect a revocation message from the requesting cluster caching logic;

broadcast the list of memory blocks to the cluster caching logics in the clique; and

broadcast a clique degradation message indicating that the health status of the clique is degraded if a response is not received from all members of the clique.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2014
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 032207/0977 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2014
From: MARVELL INTERNATIONAL LTD.
To: TOSHIBA CORPORATION
Reel/Frame 032208/0241 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2011
From: PRUTHI, ARVIND; JOHRI, RAM KISHORE; GOLE, ABHIJEET P.
To: MARVELL SEMICONDUCTOR, INC.
Reel/Frame 027153/0711 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2011
From: MARVELL SEMICONDUCTOR, INC.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 027153/0760 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2011
From: MARVELL INTERNATIONAL, LTD.
To: MARVELL WORLD TRADE LTD.
Reel/Frame 027153/0850 →
LICENSE Recorded Nov 1, 2011
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 027153/0910 →