(58)【調査した分野】(Int.Cl.,DB名)
前記第1の乗算ユニットが各物理ノードの前記パーティションの前記数に対する乗算を実行した後に、各物理ノードの各パーティションのデータのハッシュ値を取得するように構成される、第2の取得ユニットと、
前記データの前記ハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、前記データが位置している前記物理ノードのパーティションの拡張後に得られる数とを取得するように構成される、第3の取得ユニットと、
前記データの前記モジュラス値に従って、前記データが移行されることになる宛先パーティションを決定して、前記宛先パーティションが、前記データが現在位置している前記パーティションと異なる場合には、前記データを前記宛先パーティションに移行するように構成される、移行ユニットとをさらに備える、請求項5に記載のパーティション拡張装置。
前記第1の取得ユニットは、前記分散ストレージシステム内の前記物理ノードすべての前記パーティションの前記数についての前記平均値を周期的に取得するようにさらに構成される、または
ユーザのトリガ命令に応答して、前記分散ストレージシステム内の前記物理ノードすべての前記パーティションの前記数についての前記平均値を取得するようにさらに構成される、請求項5に記載のパーティション拡張装置。
分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得して、前記パーティションの前記数についての前記平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行して、新たに追加されたパーティションと前記新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加するように構成される、プロセッサと、
前記プロセッサによって追加された、前記新たに追加されたパーティションと前記新たに追加されたパーティションが位置している前記物理ノードとの間の前記マッピング関係を記憶するように構成される、メモリとを備える、パーティション拡張装置。
前記プロセッサは、各物理ノードの各パーティションのデータのハッシュ値を取得して、前記データの前記ハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、前記データが位置している前記物理ノードのパーティションの拡張後に得られる数とを取得して、前記データの前記モジュラス値に従って、前記データが移行されることになる宛先パーティションを決定して、前記宛先パーティションが、前記データが現在位置している前記パーティションと異なる場合には、前記データを前記宛先パーティションに移行するようにさらに構成される、請求項9に記載のパーティション拡張装置。
前記プロセッサは、前記分散ストレージシステム内の前記物理ノードすべての前記パーティションの前記数についての前記平均値を周期的に取得するようにさらに構成される、または
ユーザのトリガ命令に応答して、前記分散ストレージシステム内の前記物理ノードすべての前記パーティションの前記数についての前記平均値を取得するようにさらに構成される、請求項9に記載のパーティション拡張装置。
【発明の概要】
【課題を解決するための手段】
【0005】
本発明の実施形態は、分散ストレージシステムの容量拡張において物理ノードのパーティションの数を増加させることが可能であり、それによって分散ストレージシステムの拡張性を保証することができるように、パーティション拡張方法および装置を規定している。
【0006】
前述の目的を達成するために、本発明の実施形態は、以下の技術的解決手法を採用する。
【0007】
本発明の第1の態様の実施形態は、パーティション拡張方法を規定し、パーティション拡張方法は、
分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するステップと、
パーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行するステップと、
新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加するステップとを含む。
【0008】
第1の態様に準拠する、可能な実施形態においては、各物理ノードのパーティションの数に対する乗算を実行するステップの後に、方法は、
各物理ノードの各パーティションのデータのハッシュ値を取得するステップと、
データのハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、データが位置している物理ノードのパーティションの拡張後に得られる数とを取得するステップと、
データのモジュラス値に従って、データが移行されることになる宛先パーティションを決定して、宛先パーティションが、データが現在位置しているパーティションと異なる場合には、データを宛先パーティションに移行するステップとをさらに含む。
【0009】
第1の態様または前述の可能な実施形態に準拠する、別の可能な実施形態においては、各物理ノードのパーティションの数に対する乗算を実行するステップは、
各物理ノードのパーティションの数をパーティションの数の少なくとも2倍へと乗算するステップを含む。
【0010】
第1の態様に準拠する、別の可能な実施形態においては、パーティションに対応する新規パーティションとパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加するステップの後に、方法は、
分散ストレージシステム内の物理ノードすべてのパーティションの拡張後に得られる数についての平均値を取得するステップと、
拡張後のパーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を再び実行するステップであって、乗算の倍数の各倍数は同一である、ステップとをさらに含む。
【0011】
第1の態様および前述の可能な実施形態に準拠する、別の可能な実施形態においては、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するステップは、
分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を周期的に取得するステップ、または
ユーザのトリガ命令に応答して、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するステップを含む。
【0012】
本発明の第2の態様の実施形態は、パーティション拡張装置をさらに規定し、パーティション拡張装置は、
分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するように構成される、第1の取得ユニットと、
パーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行するように構成される、第1の乗算ユニットと、
新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加するように構成される、マッピングユニットとを備える。
【0013】
第2の態様に準拠する、可能な実施形態においては、パーティション拡張装置は、
第1の乗算ユニットが各物理ノードのパーティションの数に対する乗算を実行した後に、各物理ノードの各パーティションのデータのハッシュ値を取得するように構成される、第2の取得ユニットと、
データのハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、データが位置している物理ノードのパーティションの拡張後に得られる数とを取得するように構成される、第3の取得ユニットと、
データのモジュラス値に従って、データが移行されることになる宛先パーティションを決定して、宛先パーティションが、データが現在位置しているパーティションと異なる場合には、データを宛先パーティションに移行するように構成される、移行ユニットとをさらに備える。
【0014】
第2の態様または前述の可能な実施形態に準拠する、別の可能な実施形態においては、第1の乗算ユニットは、各物理ノードのパーティションの数をパーティションの数の少なくとも2倍へと乗算するようにさらに構成される。
【0015】
第2の態様に準拠する、別の可能な実施形態においては、パーティション拡張装置は、
マッピングユニットが新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加した後に、分散ストレージシステム内の物理ノードすべてのパーティションの拡張後に得られる数についての平均値を取得するように構成される、第4の取得ユニットと、
拡張後のパーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を再び実行するように構成される第2の乗算ユニットであって、乗算の倍数の各倍数は同一である、第2の乗算ユニットとをさらに備える。
【0016】
第2の態様に準拠する、別の可能な実施形態においては、第1の取得ユニットは、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を周期的に取得するようにさらに構成される、または
ユーザのトリガ命令に応答して、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するようにさらに構成される。
【0017】
本発明の第3の態様の実施形態は、パーティション拡張装置をさらに規定し、パーティション拡張装置は、
分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得して、パーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行して、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加するように構成される、プロセッサと、
プロセッサによって追加された、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を記憶するように構成される、メモリとを備える。
【0018】
第3の態様に準拠する、可能な実施形態においては、プロセッサは、各物理ノードの各パーティションのデータのハッシュ値を取得して、データのハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、データが位置している物理ノードのパーティションの拡張後に得られる数とを取得して、データのモジュラス値に従って、データが移行されることになる宛先パーティションを決定して、宛先パーティションが、データが現在位置しているパーティションと異なる場合には、データを宛先パーティションに移行するようにさらに構成される。
【0019】
第2の態様に準拠する、別の可能な実施形態においては、プロセッサは、各物理ノードのパーティションの数をパーティションの数の少なくとも2倍へと乗算するようにさらに構成される。
【0020】
第2の態様に準拠する、別の可能な実施形態においては、プロセッサは、パーティションに対応する新規パーティションとパーティションが位置している物理ノードとの間のマッピング関係がDHTに追加された後に、分散ストレージシステム内の物理ノードすべてのパーティションの拡張後に得られる数についての平均値を取得して、拡張後のパーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を再び実行するようにさらに構成され、乗算の倍数の各倍数は同一である。
【0021】
第2の態様に準拠する、別の可能な実施形態においては、プロセッサは、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を周期的に取得するようにさらに構成される、または
ユーザのトリガ命令に応答して、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するようにさらに構成される。
【0022】
本発明の実施形態に規定したパーティション拡張方法および装置では、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値は取得され得るし、パーティションの数についての平均値がプリセット閾値未満である場合には、乗算は各物理ノードのパーティションの数に対して実行され得るし、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係は事前に記憶されている分散ハッシュテーブルDHTに追加され得る。物理ノードのパーティションの数が少ないことにより分散ストレージシステムの拡張性が乏しい従来技術と比較して、本発明の実施形態に規定したパーティション拡張方法および装置では、パーティションの数が
プリセット閾値未満である場合には、分散ストレージシステムの容量拡張においてパーティションの数に対する乗算を実行することが可能であり、それによって分散ストレージシステムの拡張性を保証している。
【0023】
本発明の実施形態または従来技術における技術的解決手法をより明確に記載するために、実施形態または従来技術を記載するにあたり必要となる添付の図面を以下に簡単に説明する。以下の記載における添付の図面は本発明の実施形態のいくつかを示したものにすぎず、当業者は創造的努力をすることなくこれらの添付の図面から他の図面をさらに導出し得ることは明らかであろう。
【発明を実施するための形態】
【0025】
本発明の実施形態の添付の図面を参照して本発明の実施形態の技術的解決手法を以下に明確かつ十分に記載する。記載した実施形態は一部にすぎず、本発明の実施形態のすべてではないことは明らかであろう。創造的努力をすることなく本発明の実施形態に基づいて当業者によって得られる他の実施形態のすべては、本発明の保護範囲に含まれるものとする。
【0026】
実施形態1
本発明の実施形態は、パーティション拡張方法を規定する。
図1に示したように、方法は、以下のステップを含む。
【0027】
101. パーティション拡張装置が、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得する。
【0028】
分散ハッシュテーブル(Distributed Hash Table、DHT)を使用してデータを記憶している場合には、分散ストレージシステムは、異なるデータのデータ識別子に従い、ハッシュ関数を使用することによって、データ識別子に対応するデータのハッシュ値Hashを計算し得る。データは、ハッシュ値に従って、始まりと終わりが連結している巡回型空間であるハッシュ空間にマッピングされる。ハッシュリングは、各部分がパーティションと称されるいくつかの均等な部分に分割され得るし、パーティションは、物理ノードに均等に分散される。物理ノードは、分散ストレージシステムの物理アドレスであってもよい。分散ストレージシステムは、分散ストレージシステムの物理アドレスを複数のアドレスセグメントに分割してもよいし、物理アドレスの各セグメントは、物理ノードである。
【0029】
パーティション拡張装置によって、分散ストレージシステム内の物理ノードのパーティションの数についての平均値を取得するための方法は、パーティション拡張装置によって、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を周期的に取得するステップ、またはパーティション拡張装置によって、ユーザのトリガ命令に応答して、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するステップを含み得る。具体的には、パーティション拡張装置は、取得期間を事前に設定して、その期間に従って、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を自発的に取得してもよい。また、分散
ストレージシステムの容量拡張を実行した場合には、パーティション拡張装置は、ユーザのトリガ命令を受信して、トリガ命令に応答して、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得する。
【0030】
102. パーティションの数についての平均値がプリセット閾値未満である場合には、パーティション拡張装置が、各物理ノードのパーティションの数に対する乗算を実行する。
【0031】
容量拡張が分散ストレージシステムに対して少なくとも一回実行されると、プリセット閾値が、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を満たす値に設定され得る。
【0032】
パーティション拡張装置が各物理ノードのパーティションの数に対する乗算を実行した後に、本発明の本実施形態における方法は、パーティション拡張装置によって、各物理ノードの各パーティションのデータのハッシュ値を取得するステップと、パーティション拡張装置によって、データのハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、データが位置している物理ノードのパーティションの拡張後に得られる数とを取得するステップと、パーティション拡張装置によって、データのモジュラス値に従って、データが移行されることになる宛先パーティションを決定して、宛先パーティションが、データが現在位置しているパーティションと異なる場合には、パーティション拡張装置によって、データを宛先パーティションに移行するステップとをさらに含む。
【0033】
103. パーティション拡張装置が、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されているDHTに追加する。
【0034】
分散ストレージシステムにおいて、DHTは、データの記憶位置を決定するために使用され得る。すなわち、DHTは、データ識別子とパーティションとの間のマッピング関係およびパーティションと物理ノードとの間のマッピング関係を記憶し得る。したがって、各物理ノードのパーティションの数に対する乗算を実行するステップの後に、パーティション拡張装置は、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されているDHTに追加する必要がさらにある。
【0035】
本発明の本実施形態に規定したパーティション拡張方法においては、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値は取得され得るし、パーティションの数についての平均値がプリセット閾値未満である場合には、乗算は各物理ノードのパーティションの数に対して実行され得るし、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係は事前に記憶されている分散ハッシュテーブルDHTに追加され得る。物理ノードのパーティションの数が少ないことにより分散ストレージシステムの拡張性が乏しい従来技術と比較して、本発明の本実施形態に規定したパーティション拡張方法においては、パーティションの数が
プリセット閾値未満である場合には、分散ストレージシステムの容量拡張においてパーティションの数に対する乗算を実行することが可能であり、それによって分散ストレージシステムの拡張性を保証している。
【0036】
実施形態2
本発明の実施形態は、パーティション拡張方法を規定する。
図2に示したように、方法は、以下のステップを含む。
【0037】
201. パーティション拡張装置が、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得する。
【0038】
例えば、パーティション拡張装置によって、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するための方法とは、具体的には、以下のように、パーティション拡張装置が、事前に記憶されているDHTにおいて、分散ストレージシステム内の物理ノードの数と、全物理ノードのパーティションの総数とを問い合わせ、パーティション拡張装置が、物理ノードの数と、全物理ノードのパーティションの総数とに従って、物理ノードのパーティションの数についての平均値を計算することであり得る。
【0039】
物理ノードの数は、分散ストレージシステム内の物理ノードの総数である。パーティション拡張装置によって、物理ノードの数と、全物理ノードのパーティションの総数とに従って、物理ノードのパーティションの数についての平均値を計算する方法とは、具体的には、以下のように、全物理ノードのパーティションの総数を物理ノードの数で除算することによって、パーティション拡張装置によって得られる商を物理ノードのパーティションの数についての平均値として使用することである。例えば、物理ノードの数がA、全物理ノードのパーティションの総数がB、物理ノードのパーティションの数についての平均値がCであるとすると、物理ノードの数、全物理ノードのパーティションの総数、および物理ノードのパーティションの数についての平均値は、C=A/Bという数式を満たさなければならない。
【0040】
さらに、本実施形態のある適用状況においては、分散ストレージシステムがDHTを使用してデータを記憶している場合には、物理ノードのパーティションの数はおおよそ同一となる。したがって、パーティション拡張装置は、事前に記憶されているDHTにおいて、分散ストレージシステム内の任意の物理ノードのパーティションの数を問い合わせて、物理ノードのパーティションの数を分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値として使用してもよい。
【0041】
202. パーティション拡張装置が、パーティションの数についての平均値がプリセット閾値未満であるかどうかを決定して、パーティションの数についての平均値がプリセット閾値未満である場合にはステップ203を実行し、またパーティションの数についての平均値がプリセット閾値未満ではない場合にはステップ211を実行する。
【0042】
203. パーティション拡張装置が、各物理ノードのパーティションの数に対する乗算を実行する。
【0043】
パーティション拡張装置が各物理ノードのパーティションの数に対する乗算を実行することは、パーティション拡張装置によって、各物理ノードのパーティションの数をパーティションの数の少なくとも2倍へと乗算することを含み得る。
【0044】
具体的には、パーティション拡張装置は、事前に記憶されているDHT内の各物理ノードのパーティションの数を各物理ノードにおいてパーティションの数の少なくとも2倍へと修正してもよい。
【0045】
一般的に、パーティション拡張装置が各物理ノードのパーティションの数に対する乗算を実行する場合には、パーティションの数に対する乗算の倍数は2であることに留意されたい。当然のことながら、パーティション拡張装置は、各物理ノードのパーティションの数に対して3倍以上の拡張を実行してもよい。パーティション拡張装置が各物理ノードのパーティションの数に対して2倍の拡張を実行することを、本発明の本実施形態における一例として用いている。しかしながら、各物理ノードのパーティションの数に対するパーティション拡張装置によって実行される乗算の倍数は限定されない。
【0046】
204. パーティション拡張装置が、各物理ノードの各パーティションのデータのハッシュ値を取得する。
【0047】
具体的には、パーティション拡張装置は、事前に記憶されているDHTにおいて、各パーティションのデータの識別子に従って、各物理ノードの各パーティションのデータのハッシュ値を問い合わせ得る。パーティション中の異なるデータのハッシュ値は異なる。例えば、パーティションは、データ1と、データ2と、データ3とを含む。データ1のデータ識別子はaでありハッシュ値はHash1である、データ2のデータ識別子はbでありハッシュ値はHash2である、およびデータ3のデータ識別子はcでありハッシュ値はHash3である。
【0048】
205. パーティション拡張装置が、データのハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、データが位置している物理ノードのパーティションの拡張後に得られる数とを取得する。
【0049】
データが位置している物理ノードのパーティションの拡張後に得られる数は、データが位置している物理ノードのパーティションの拡張前の数を各物理ノードのパーティションの数に対するパーティション拡張装置によって実行される乗算の倍数で乗算することによって得られる積である。
【0050】
例えば、データKのハッシュ値がHash
kであり、データKが位置している物理ノードのパーティションの数がNであり、パーティション拡張装置が各物理ノードのパーティションの数に対してn倍の乗算を実行する場合には、データKが位置している物理ノードのパーティションの拡張後に得られる数はn×Nであり、データKのハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値はx
kであり、データKが位置している物理ノードのパーティションの拡張後に得られる数はx
k=Hash
k%(n×N)という数式に基づいた計算によって得られ得る。
【0051】
206. パーティション拡張装置が、データのモジュラス値に従って、データが移行されることになる宛先パーティションを決定して、宛先パーティションが、データが現在位置しているパーティションと異なる場合には、データを宛先パーティションに移行する。
【0052】
分散ストレージシステムがデータを記憶する場合には、記憶されることになるデータのハッシュ値Hashは、ハッシュ関数に従って計算され得るし、記憶されることになるデータは、記憶されることになるデータの一部の各々のハッシュ値と分散ストレージシステム内のパーティションの総数とに従って、各記憶用パーティションに分散され、そして分散ストレージシステム内のパーティションは、各物理ノードに均等に分散される。
【0053】
例えば、いくつかのデータのハッシュ値Hashがそれぞれ、45、46、47、
48、…、75であり、パーティションの数がNであるとすると、データの一部の各々のハッシュ値に対するモジュロ演算から得られる結果とパーティションの数とが同一であるデータは、同一のパーティションに分散される、例えば、Hash%Nという数式において、N=3の場合には、データのハッシュ値およびパーティションの数に対するモジュロ演算から得られる剰余は、それぞれ、0、1、2、0、1、2、0、1、2、0、1、2 … 0、1、2、0である。データは、モジュロ演算により得られた剰余に従って、以下の3つのパーティションに分散され得る。
パーティション1(剰余が0):45、48、51、54、57、60、63、66、69、72、75
パーティション2(剰余が1):46、49、52、55、58、61、64、67、70、73
パーティション3(剰余が2):47、50、53、56、59、62、65、68、71、74
【0054】
例えば、前述のパーティション1を、一例として使用して、パーティション拡張を実行する。この場合には、パーティションの数Nは3である。パーティションの数に対する乗算の倍数nがn=2である場合には、パーティション1が位置している物理ノードのパーティションの拡張後の数は、2×3であり、パーティション1の全データのモジュラス値は、それぞれ、x
45=45%(2×3)=3、x
48=48%(2×3)=0、x
51=51%(2×3)=3、x
54=54%(2×3)=0、x
57=57%(2×3)=3 … x
72=72%(2×3)=0、およびx
75=75%(2×3)=3である。
【0055】
具体的には、パーティションの数に対する乗算の倍数nがn=2である場合には、パーティション拡張装置は、モジュラス値が3であるデータを、新たに追加されたデータが位置している物理ノードのパーティションに移行して、モジュラス値が0であるデータを、元のパーティションで保持してもよい。例えば、パーティション拡張装置は、x
45=45%(2×3)=3、x
51=51%(2×3)=3、x
57=57%(2×3)=3 … x
75=75%(2×3)=3に対応するデータを、新たに追加されたデータが位置している物理ノードのパーティションに移行して、x
48=48%(2×3)=0、x
54=54%(2×3)=0 … x
72=72%(2×3)=0に対応するデータを、元のパーティションで保持してもよい。あるいは、パーティション拡張装置は、モジュラス値が0であるデータを、新たに追加されたデータが位置している物理ノードのパーティションに移行して、モジュラス値が3であるデータを、元のパーティションで保持してもよい。例えば、パーティション拡張装置は、x
48=48%(2×3)=0、x
54=54%(2×3)=0 … x
72=72%(2×3)=0に対応するデータを、新たに追加されたデータが位置している物理ノードのパーティションに移行して、x
45=45%(2×3)=3、x
51=51%(2×3)=3、x
57=57%(2×3)=3 … x
75=75%(2×3)=3に対応するデータを、元のパーティションで保持してもよい。
【0056】
前述のパーティション1は一例として使用されていることに留意されたい。パーティションの数に対する乗算の倍数nがn=3である場合には、パーティション1のデータの一部のモジュラス値は、それぞれ、x
45=45%(3×3)=0、x
48=48%(3×3)=3、x
51=51%(3×3)=6、x
54=54%(3×3)=0、x
57=57%(3×3)=3 … x
72=72%(3×3)=0、およびx
75=75%(3×3)=3である。パーティション拡張装置は、データのモジュラス値0、3、および6に従って、モジュラス値に対応するデータを移行してもよい。パーティション拡張装置によって、データを宛先パーティションに移行するための方法は、パーティションの数を2倍に乗算するための方法と同様であり、その詳細を本実施形態においては再度記載しない。
【0057】
207. パーティション拡張装置が、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されているDHTに追加する。
【0058】
208. パーティション拡張装置が、分散ストレージシステム内の物理ノードすべてのパーティションの拡張後に得られる数についての平均値を取得する。
【0059】
分散ストレージシステム内の物理ノードすべてのパーティションの数に対する乗算を実行して、パーティションの対応するデータの移行が完了した後に、パーティション拡張装置は、分散ストレージシステム内の物理ノードすべてのパーティションの拡張後に得られる数についての平均値を取得して、取得した平均値に従って、少なくとも一回拡張を実行するために分散ストレージシステム内のパーティションの数が分散ストレージシステムによって必要とされるパーティションの数を満たすかどうかを決定し得る。
【0060】
パーティション拡張装置によって、分散ストレージシステム内の物理ノードすべてのパーティションの拡張後に得られる数についての平均値を取得するための方法は、本実施形態においては、パーティション拡張装置によって、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するための方法と同様であり、その詳細を本実施形態においては再度記載しないことに留意されたい。
【0061】
209. パーティション拡張装置が、拡張後のパーティションの数についての平均値がプリセット閾値未満であるかどうかを決定して、拡張後のパーティションの数についての平均値がプリセット閾値未満である場合にはステップ210を実行して、または拡張後のパーティションの数についての平均値がプリセット閾値未満ではない場合にはステップ211を実行する。
【0062】
210. パーティション拡張装置が、乗算の倍数の各倍数が同一である、各物理ノードのパーティションの数に対する乗算を再び実行する。
【0063】
拡張後のパーティションの数についての平均値がプリセット閾値未満である場合には、パーティション拡張装置は、各物理ノードのパーティションの数に対する乗算を再び実行してもよい。各物理ノードのパーティションの数に対するパーティション拡張装置によって再び実行される乗算の乗算倍数は、パーティションの数に対するパーティション拡張装置によって一回目に実行された乗算の乗算倍数と同一である。
【0064】
パーティション拡張装置が各物理ノードのパーティションの数に対する乗算を再び実行した後に、本実施形態の方法は、パーティション拡張装置によって、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されているDHTに追加することをさらに含み得る。
【0065】
パーティション拡張装置は物理ノードのパーティションの数に対する乗算を少なくとも一回実行し得るし、乗算の倍数の各倍数は同一であり、乗算の倍数は2以上であることに留意されたい。
【0066】
211. パーティション拡張処理を終了する。
【0067】
パーティション拡張装置は、分散ストレージシステム内の物理ノードのパーティションの数についての平均値に従って、分散ストレージシステム内の物理ノードのパーティションに対する拡張を少なくとも一回実行し得ることに留意されたい。パーティション拡張の回数は、本発明の本実施形態に限定されない。パーティション拡張装置によって、分散ストレージシステム内の物理ノードのパーティションに対して二回以上拡張を実行するための方法は、本実施形態においては、パーティション拡張方法と同様であり、その詳細を本実施形態においては再度記載しない。
【0068】
さらに、本実施形態に規定した乗算方法は分散ストレージシステムのパーティション拡張処理だけに適用され得るのではなく別のストレージシステム内のストレージノードの乗算処理にも適用され得るし、本発明の方法の適用範囲は本実施形態に限定されないことに留意されたい。
【0069】
本発明の本実施形態に規定したパーティション拡張方法においては、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値は取得され得るし、パーティションの数についての平均値がプリセット閾値未満である場合には、乗算は各物理ノードのパーティションの数に対して実行され得るし、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係は事前に記憶されている分散ハッシュテーブルDHTに追加され得る。物理ノードのパーティションの数が少ないことにより分散ストレージシステムの拡張性が乏しい従来技術と比較して、本発明の本実施形態に規定したパーティション拡張方法においては、パーティションの数が
プリセット閾値未満である場合には、分散ストレージシステムの容量拡張においてパーティションの数に対する乗算を実行することが可能であり、それによって分散ストレージシステムの拡張性を保証している。
【0070】
実施形態3
本発明の本実施形態は、パーティション拡張装置を規定する。
図3に示したように、装置は、第1の取得ユニット31と、第1の乗算ユニット32と、マッピングユニット33とを備える。
【0071】
第1の取得ユニット31は、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するように構成される。
【0072】
第1の乗算ユニット32は、パーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行するように構成される。
【0073】
マッピングユニット33は、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加するように構成される。
【0074】
図4に示したように、パーティション拡張装置は、第2の取得ユニット34と、第3の取得ユニット35と、移行ユニット36とをさらに備える。
【0075】
第2の取得ユニット34は、第1の乗算ユニット32が各物理ノードのパーティションの数に対する乗算を実行した後に、各物理ノードの各パーティションのデータのハッシュ値を取得するように構成される。
【0076】
第3の取得ユニット35は、データのハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、データが位置している物理ノードのパーティションの拡張後に得られる数とを取得するように構成される。
【0077】
移行ユニット36は、データのモジュラス値に従って、データが移行されることになる宛先パーティションを決定して、宛先パーティションが、データが現在位置しているパーティションと異なる場合には、データを宛先パーティションに移行するように構成される。
【0078】
第1の乗算ユニット32は、各物理ノードのパーティションの数をパーティションの数の少なくとも2倍へと乗算するようにさらに構成される。
【0079】
パーティション拡張装置は、第4の取得ユニット37と、第2の乗算ユニット38とをさらに備える。
【0080】
第4の取得ユニット37は、マッピングユニット33が新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加した後に、分散ストレージシステム内の物理ノードすべてのパーティションの拡張後に得られる数についての平均値を取得するように構成される。
【0081】
第2の乗算ユニット38は、拡張後のパーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を再び実行するように構成され、乗算の倍数の各倍数は同一である。
【0082】
第1の取得ユニット31は、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を周期的に取得するようにさらに構成される、またはユーザのトリガ命令に応答して、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するようにさらに構成される。
【0083】
本発明の本実施形態に規定したパーティション拡張装置におけるいくつかの関数モジュールの特定の記載に関しては、方法の実施形態における対応する内容を参照し、その詳細を本実施形態においては再度記載しないことに留意されたい。
【0084】
本発明の本実施形態に規定したパーティション拡張装置は、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得して、パーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行して、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加することが可能である。物理ノードのパーティションの数が少ないことにより分散ストレージシステムの拡張性が乏しい従来技術と比較して、パーティションの数が
プリセット閾値未満である場合には、本発明の本実施形態に規定したパーティション拡張装置は、分散ストレージシステムの容量拡張においてパーティションの数に対する乗算を実行することが可能であり、それによって分散ストレージシステムの拡張性を保証している。
【0085】
実施形態4
本発明の実施形態は、パーティション拡張装置を規定する。
図5に示したように、装置は、プロセッサ41と、メモリ42とを備え得る。
【0086】
プロセッサ41は、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得して、パーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行して、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加するように構成される。
【0087】
メモリ42は、プロセッサ41によって追加された新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を記憶するように構成される。
【0088】
プロセッサ41は、各物理ノードの各パーティションのデータのハッシュ値を取得して、データのハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、データが位置している物理ノードのパーティションの拡張後に得られる数とを取得して、データのモジュラス値に従って、データが移行されることになる宛先パーティションを決定して、宛先パーティションが、データが現在位置しているパーティションと異なる場合には、データを宛先パーティションに移行するようにさらに構成される。
【0089】
プロセッサ41は、各物理ノードのパーティションの数をパーティションの数の少なくとも2倍へと乗算するようにさらに構成される。
【0090】
プロセッサ41は、パーティションに対応する新規パーティションとパーティションが位置している物理ノードとの間のマッピング関係がDHTに追加された後に、分散ストレージシステム内の物理ノードすべてのパーティションの拡張後に得られる数についての平均値を取得して、拡張後のパーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を再び実行するようにさらに構成され、乗算の倍数の各倍数は同一である。
【0091】
プロセッサ41は、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を周期的に取得するようにさらに構成される、またはユーザのトリガ命令に応答して、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するようにさらに構成される。
【0092】
本発明の本実施形態に規定したパーティション拡張装置におけるいくつかの関数モジュールの特定の記載に関しては、方法の実施形態における対応する内容を参照し、その詳細を本実施形態においては再度記載しないことに留意されたい。
【0093】
本発明の本実施形態に規定したパーティション拡張装置は、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得して、パーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行して、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加することが可能である。物理ノードのパーティションの数が少ないことにより分散ストレージシステムの拡張性が乏しい従来技術と比較して、パーティションの数が
プリセット閾値未満である場合には、本発明の本実施形態に規定したパーティション拡張装置は、分散ストレージシステムの容量拡張においてパーティションの数に対する乗算を実行することが可能であり、それによって分散ストレージシステムの拡張性を保証している。
【0094】
実施形態の前述の記載に基づいて、本発明が、必要となる汎用ハードウェアとともにソフトウェアによって、またはハードウェアのみによって、実装され得ることを、当業者は明確に理解されよう。大抵の状況においては、前者が望ましい実施形態である。そのような理解に基づけば、従来技術に対して本質的にまたは部分的に貢献する本発明の技術的解決手法は、ソフトウェア製品の形式で実装されてもよい。ソフトウェア製品は、コンピュータのフロッピー(登録商標)ディスク、ハードディスク、または光学ディスクなどのコンピュータ可読記憶媒体に記憶され、コンピュータデバイス(パーソナルコンピュータ、サーバ、またはネットワークデバイスであり得る)に本発明の実施形態に記載の方法を実行するように指示するためのいくつかの命令を含む。
【0095】
前述の記載は、特定の本発明の実施形態を記載したものにすぎず、本発明の保護範囲を限定することを意図したものではない。本発明に記載の技術的範囲において当業者が用意に想到する任意の変形または置換は、本発明の保護範囲に含まれるものとする。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に従うものとする。