Lightweight coherency control protocol for clustered storage system
First Claim
1. A method for ensuring consistency of data containers and associated data buffers stored on one or more volumes served by a plurality of nodes connected as a cluster, the method comprising the steps of:
- tagging each data buffer of each data container with a current cache sequence number comprising a load generation value and an update count value;
incrementing the load generation value every time an inode of a data container is loaded into a memory of a node;
loading a data buffer of the data container into the memory; and
incrementing the update count value of the data buffer each time the buffer is modified as long as its inode remains loaded in memory.
2 Assignments
0 Petitions
Accused Products
Abstract
A lightweight coherency control protocol ensures consistency of data containers, such as a file, and associated data buffers stored on one or more volumes served by a plurality of nodes, e.g., storage systems, connected as a cluster. Each data buffer is associated with a current cache sequence number comprising a load generation value and an update count value. The load generation value is incremented every time an inode of a file is loaded into a memory of the storage system. Once the inode is loaded and its load generation value is set, then the appropriate buffer of a buffer tree for the file is loaded into the memory. The update count value is incremented each time the buffer is updated with a write request/operation. Therefore, each buffer loaded into memory is tagged with the load generation value and an update count from the time that buffer is loaded.
82 Citations
22 Claims
-
1. A method for ensuring consistency of data containers and associated data buffers stored on one or more volumes served by a plurality of nodes connected as a cluster, the method comprising the steps of:
-
tagging each data buffer of each data container with a current cache sequence number comprising a load generation value and an update count value;
incrementing the load generation value every time an inode of a data container is loaded into a memory of a node;
loading a data buffer of the data container into the memory; and
incrementing the update count value of the data buffer each time the buffer is modified as long as its inode remains loaded in memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system configured to ensure consistency of data containers and associated data buffers stored on one or more volumes served by a plurality of nodes connected as a cluster, the system comprising:
-
a disk element of a node adapted to service the one or more volumes of the cluster, the disk element further adapted to maintain an authoritative version of a data container and associated data buffer stored on its serviced volumes;
a network element of a node adapted to redirect a data access request for the data container and associated data buffer to the disk element; and
a local cache of the network element adapted to provided caching of the data buffer, the cached data buffer having an associated current cache sequence number, wherein the network element uses the cached data buffer to service the data access request when the current cache sequence number represents a most recent version of the data buffer. - View Dependent Claims (10)
-
-
11. Apparatus adapted to ensure consistency of data containers and associated data buffers stored on one or more volumes served by a plurality of nodes connected as a cluster, the apparatus comprising:
-
means for tagging each data buffer of each data container with a current cache sequence number comprising a load generation value and an update count value;
means for incrementing the load generation value every time an inode of a data container is loaded into a memory of a node;
means for loading a data buffer of the data container into the memory; and
means for incrementing the update count value of the data buffer each time the buffer is modified as long as its inode remains loaded in memory. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A computer readable medium containing executable program instructions for ensuring consistency of data containers and associated data buffers stored on one or more volumes served by a plurality of nodes connected as a cluster, the executable instructions comprising one or more program instructions for:
-
tagging each data buffer of each data container with a current cache sequence number comprising a load generation value and an update count value;
incrementing the load generation value every time an inode of a data container is loaded into a memory of a node;
loading a data buffer of the data container into the memory; and
incrementing the update count value of the data buffer each time the buffer is modified as long as its inode remains loaded in memory. - View Dependent Claims (18, 19, 20, 21, 22)
-
Specification