Legal claims defining the scope of protection, as filed with the USPTO.
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.
2. The system as defined in claim 1 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.
3. The system as defined in claim 1 wherein the first data container and second data container comprise files.
4. The system as defined in claim 1 wherein the network element is further configured to: calculate a first value by adding the first inode number to a first offset value divided by a stripe width modulo a size of a striping table; calculate an intermediate value by indexing the first value into an ordered list of volumes; calculate a hash value of an inode associated with the first data container by indexing, using the first inode number, into an array having values that are selected to be mutually prime with a size of the ordered list of volumes; calculate a final value by multiplying the intermediate value by the hash value modulo a number of volumes of the striped volume set; and index into the striping table using the final value to identify and locate the volume that provides a new location to commence striping the first data container across the striped volume set wherein hotspotting is avoided.
5. The system as defined in claim 1 wherein the first data placement pattern and the second data placement patterns are selected from a set of data placement patterns.
6. The system as defined in claim 5 wherein the set of data placement patterns contains an equal number of items used by a hash table to identify a selected data placement pattern.
7. The system as defined in claim 1 wherein the network element is further configured to associate the striped volume set with at least one striping rule, and the at least one striping rule utilizing the first inode number of the first data container, and at least one of a first offset value into the first data container, a number of volumes in the striped volume set and an ordered set of volumes within the striped volume set to generate a hash value to identify the first data placement pattern.
8. The system as defined in claim 7 wherein to generate the hash value further comprises using the first inode number of the first data container to index into a table containing available hash values.
9. The system as defined in claim 8 wherein the first inode number and the second inode number are mutually prime.
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.
11. The computer readable medium of claim 10 , wherein the program instructions that configure the network element further comprise program instructions that: calculate a first value by adding the first inode number to a first offset value associated with the first data container, divided by a stripe width modulo a size of a striping table; calculate an intermediate value by indexing the first value into an ordered list of volumes; calculate a hash value of an inode associated with the first data container by indexing, using the first inode number, into an array having values that are selected to be mutually prime with a size of the ordered list of volumes; calculate a final value by multiplying the intermediate value by the hash value modulo a number of volumes of the striped volume set; and index into a striping table using the final value to identify and locate the volume that provides a new location to commence striping the first data container across the striped volume set wherein hotspotting is avoided.
12. The computer readable medium of claim 10 wherein the program instructions that configure the network element further comprise: program instructions that associate the striped volume set with at least one striping rule that utilizes the first inode number of the first data container, a first offset value into the first data container, a number of volumes in the striped volume set and an ordered set of volumes within the striped volume set to generate a hash value to identify the first data placement pattern.
13. The computer readable medium of claim 10 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.
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.
15. The method of striping a data container across a striped volume set as defined in claim 14 further comprising: configuring the striped volume set with at least one striping rule, and the at least one striping rule utilizes the first inode number of the first data container, an offset value into the first data container, a number of volumes in the striped volume set and an ordered set of volumes within the striped volume set to generate a hash value to identify the first data placement pattern.
16. The method of striping a data container across a striped volume set as defined in claim 15 further comprising: calculating a first value by adding the first inode number to said offset value divided by a stripe width modulo a size of a striping table; calculating an intermediate value by indexing the first value into an ordered list of volumes; calculating, a hash value of an inode associated with the first data container by indexing, using the first inode number, into an array having values that are selected to be mutually prime with a size of the ordered list of volumes; calculating, by the processor, a final value by multiplying the intermediate value by the hash value modulo a number of volumes of the striped volume set; and indexing into the striping table using the final value to identify and locate a volume that provides a new location to commence striping the first data container across the striped volume set wherein hotspotting is avoided.
Unknown
October 15, 2013
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.