Claims
- 1. A storage apparatus used in a distributed storage system, comprising:
a file memory to store data corresponding to identifiers of an allocated area in an identifier space; a first memory to store a basis position of the allocated area in the identifier space; a second memory to store a weight of the storage apparatus as a performance degree; a first decision unit configured to decide a space width to divisionally allocate the identifier space with another storage apparatus by using the weight and a weight of the another storage apparatus, the another storage apparatus allocating a neighboring area of the allocated area in the identifier space; and a second decision unit configured to decide the allocated area of an area between the basis position and a basis position of the neighboring area in the identifier space by using the space width.
- 2. The storage apparatus according to claim 1,
wherein said first decision unit calculates a sum of the weight of the storage apparatus and the weight of the another storage apparatus, divides the weight of the storage apparatus by the sum, and sets the division result as the space width.
- 3. The storage apparatus according to claim 2,
wherein said second decision unit multiplies a value of the basis position of the storage apparatus with a subtraction value of the space width from one as a first multiplication value, multiplies a value of the basis position of another storage apparatus with the space width as a second multiplication value, calculates a sum of the first multiplication value and the second multiplication value, and sets an area between a position of the sum and the basis position of the storage apparatus in the identifier space as the allocated area.
- 4. The storage apparatus according to claim 1,
wherein the basis position of the another storage apparatus is nearest to the basis position of the storage apparatus in other storage apparatuses each of which has a different basis position in the identifier space, and wherein the another storage apparatus is regarded as a neighboring storage apparatus.
- 5. The storage apparatus according to claim 4,
wherein, if a basis position of a first neighboring storage apparatus exists on one side of the basis position of the storage apparatus and a basis position of a second neighboring storage apparatus exists on the other side of the basis position of the storage apparatus in the identifier space, said second decision unit decides a first allocated area for the first neighboring storage apparatus and a second allocated area for the second neighboring storage apparatus, and sets a merger area of the first allocated area and the second allocated area as the allocated area.
- 6. The storage apparatus according to claim 4,
wherein, if a basis position of the neighboring storage apparatus exists on one side of the basis position of the storage apparatus and all basis positions of other storage apparatuses do not exist on the other side of the basis position of the storage apparatus in the identifier space, said second decision unit decides a first allocated area for the neighboring storage apparatus, decides a second allocated area between the basis position of the storage apparatus and an edge position of the other side in the identifier space, and sets a merger area of the first allocated area and the second allocated area as the allocated area.
- 7. The storage apparatus according to claim 4, further comprising:
a third memory to store an address of the storage apparatus, wherein the basis position of the storage apparatus is calculated by applying a hash function to the address.
- 8. The storage apparatus according to claim 7, further comprising:
an acquirement unit configured to acquire an address of the neighboring storage apparatus, and a fourth memory to store the address of the neighboring storage apparatus.
- 9. The storage apparatus according to claim 8,
wherein a basis position of the neighboring storage apparatus is calculated by applying the hash function to the address of the neighboring storage apparatus.
- 10. The storage apparatus according to claim 9,
wherein said acquirement unit calculates a first sum of the basis position of the storage apparatus and 2b−1 (b: predetermined integral number), calculates a second sum of the basis position of the neighboring storage apparatus and 2b−1, and acquires addresses of other storage apparatuses each allocating an area of the first sum or an area of the second sum in the identifier space, and wherein said fourth memory stores the addresses.
- 11. The storage apparatus according to claim 1,
wherein the weight of the storage apparatus is calculated by at least one of storage capacity, calculation ability, and circuit speed of the storage apparatus.
- 12. The storage apparatus according to claim 1,
wherein the data stored in said file memory is a file or a block of a file.
- 13. The storage apparatus according to claim 1,
wherein the address of the storage apparatus is an IP address.
- 14. The storage apparatus according to claim 1,
wherein the storage apparatus corresponds to a plurality of virtual nodes each of which has a different basis position in the identifier space, and wherein said second decision unit respectively decides the allocated area of each of the plurality of virtual nodes.
- 15. The storage apparatus according to claim 14,
wherein the basis position of each virtual node is calculated by applying the hash function to a multiplication value of the address of the storage apparatus with an identifier of each virtual node.
- 16. The storage apparatus according to claim 14,
wherein each virtual node has a different weight previously assigned.
- 17. The storage apparatus according to claim 14,
wherein each virtual node has a common weight previously assigned.
- 18. The storage apparatus according to claim 4,
wherein one of other storage apparatuses of which the basis position is the n-th (n: predetermined integral number above one) nearest to the basis position of the storage apparatus in all basis positions of other storage apparatuses is regarded as a neighboring storage apparatus, and wherein said second decision unit decides the allocated area of the storage apparatus for the neighboring storage apparatus.
- 19. An area allocation method in a storage apparatus, comprising:
storing data corresponding to identifiers of an allocated area in an identifier space; storing a basis position of the allocated area in the identifier space; storing a weight of the storage apparatus as a performance degree; deciding a space width to divisionally allocate the identifier space with another storage apparatus by using the weight and a weight of the another storage apparatus, the another storage apparatus allocating a neighboring area of the allocated area in the identifier space; and deciding the allocated area of an area between the basis position and a basis position of the neighboring area in the identifier space by using the space width.
- 20. A computer program product, comprising:
a computer readable program code embodied in said product for causing a computer to allocate an area in a storage apparatus, said computer readable program code comprising: a first program code to store data corresponding to identifiers of an allocated area in an identifier space; a second program code to store a basis position of the allocated area in the identifier space; a third program code to store a weight of the storage apparatus as a performance degree; a fourth program code to decide a space width to divisionally allocate the identifier space with another storage apparatus by using the weight and a weight of the another storage apparatus, the another storage apparatus allocating a neighboring area of the allocated area in the identifier space; and a fifth program code to decide the allocated area of an area between the basis position and a basis position of the neighboring area in the identifier space by using the space width.
Priority Claims (1)
| Number |
Date |
Country |
Kind |
| P2003-041486 |
Feb 2003 |
JP |
|
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is based upon and claims the benefit of priority from the prior Japanese Patent Application P2003-340041, filed on Feb. 19, 2003; the entire contents of which are incorporated herein by reference.