Technique to avoid cascaded hot spotting
First Claim
1. A system for striping a plurality of data containers across a striped volume set, comprising:
- a plurality of nodes interconnected as a cluster, each node having a processor, a network element, and a data element;
the network element of each node configured to receive data access requests directed to a striped volume set, the network element further configured to;
use a locate function to identify a volume using an inode number and offset values indicating an offset into each data container for striping;
use a volume location database to identify the data element hosting the identified volume for each data container; and
forward the received data access requests to the identified data element for each data container; and
the identified data element configured to process a first data access request associated with a first data container using a first data placement pattern used to stripe the first data container across the striped volume set, wherein the first data placement pattern is selected based on a first inode number associated with the first data container,the identified data element further configured to process a second data access request associated with a second data container using a second data placement pattern used to stripe the second data container across the striped volume set, wherein the second data placement pattern is based on a second inode number associated with the second data container and wherein the second data placement pattern is different from the first data placement pattern.
0 Assignments
0 Petitions
Accused Products
Abstract
The present invention overcomes the disadvantages of the prior art by providing a technique that stripes data containers across volumes of a striped volume set (SVS) using one of a plurality of different data placement patterns to thereby reduce the possibility of hotspots arising due to each data container using the same data placement pattern within the SVS. The technique is illustratively implemented by calculating a first index value, an intermediate index value and calculating a hash value of an mode associated with a data container to be accessed within the SVS. A final index value is calculated by multiplying the intermediate index value by the hash value, modulo the number of volumes of the SVS. Further, a Locate( ) function may be used to compute the location of data container content in the SVS to which a data access request is directed to ensure consistency of such content.
-
Citations
16 Claims
-
1. A system for striping a plurality of data containers across a striped volume set, comprising:
-
a plurality of nodes interconnected as a cluster, each node having a processor, a network element, and a data element; the network element of each node configured to receive data access requests directed to a striped volume set, the network element further configured to; use a locate function to identify a volume using an inode number and offset values indicating an offset into each data container for striping; use a volume location database to identify the data element hosting the identified volume for each data container; and forward the received data access requests to the identified data element for each data container; and the identified data element configured to process a first data access request associated with a first data container using a first data placement pattern used to stripe the first data container across the striped volume set, wherein the first data placement pattern is selected based on a first inode number associated with the first data container, the identified data element further configured to process a second data access request associated with a second data container using a second data placement pattern used to stripe the second data container across the striped volume set, wherein the second data placement pattern is based on a second inode number associated with the second data container and wherein the second data placement pattern is different from the first data placement pattern. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory computer readable medium containing executable program instructions executed by a processor in a computer network configured as a cluster of a plurality of nodes, comprising:
-
program instructions that configure a network element of each node to receive data access requests directed to a striped volume set, program instructions that further configure the network element to; use a locate function to identify a volume using an inode number and offset values into each data container for striping; use a volume location database to identify a data element hosting the identified volume, of the striped volume set, for each data container; forward the received data access requests to the identified data element for each data container; process a first data access request using a first data placement pattern used to stripe a first data container across the striped volume set, wherein the first data placement pattern is selected based on a first inode number associated with the first data container; and process a second data access request using a second data placement pattern used to stripe a second data container across the striped volume set, wherein the second data placement pattern is selected based on a second inode number associated with the second data container, and wherein the second data placement pattern is different form the first data placement pattern so as to avoid hot spotting. - View Dependent Claims (11, 12, 13)
-
-
14. A method of striping a data container across a striped volume set, comprising:
-
coupling a network element to a data element, of a node having a processor, that serves data access requests for a striped volume set, the network element configured to associate a first data container with a first data placement pattern, utilized to stripe the first data container across the striped volume set, based on a first inode number associated with the first data container; configuring the network element to further associate a second data container with a second data placement pattern, utilized to stripe the second data container across the striped volume set, based on a second inode number associated with the second data container, the second data placement pattern different from the first data placement pattern, wherein the first data placement pattern is used alternately with the second data placement pattern for striping into the first data container to reduce hotspots arising due to each data container using a same data placement pattern. - View Dependent Claims (15, 16)
-
Specification