特許第6020867号(P6020867)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ▲ホア▼▲ウェイ▼技術有限公司の特許一覧

<>
  • 特許6020867-パーティション拡張方法および装置 図000002
  • 特許6020867-パーティション拡張方法および装置 図000003
  • 特許6020867-パーティション拡張方法および装置 図000004
  • 特許6020867-パーティション拡張方法および装置 図000005
  • 特許6020867-パーティション拡張方法および装置 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6020867
(24)【登録日】2016年10月14日
(45)【発行日】2016年11月2日
(54)【発明の名称】パーティション拡張方法および装置
(51)【国際特許分類】
   G06F 12/00 20060101AFI20161020BHJP
【FI】
   G06F12/00 501B
   G06F12/00 545A
【請求項の数】12
【全頁数】17
(21)【出願番号】特願2015-549922(P2015-549922)
(86)(22)【出願日】2012年12月27日
(65)【公表番号】特表2016-507813(P2016-507813A)
(43)【公表日】2016年3月10日
(86)【国際出願番号】CN2012087743
(87)【国際公開番号】WO2014101070
(87)【国際公開日】20140703
【審査請求日】2015年6月26日
(73)【特許権者】
【識別番号】504277388
【氏名又は名称】▲ホア▼▲ウェイ▼技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
(74)【代理人】
【識別番号】100146835
【弁理士】
【氏名又は名称】佐伯 義文
(74)【代理人】
【識別番号】100140534
【弁理士】
【氏名又は名称】木内 敬二
(72)【発明者】
【氏名】▲張▼ ▲フェン▼
【審査官】 漆原 孝治
(56)【参考文献】
【文献】 特開2012−123790(JP,A)
【文献】 国際公開第2012/164735(WO,A1)
【文献】 特開2009−295127(JP,A)
【文献】 米国特許出願公開第2012/0323852(US,A1)
【文献】 米国特許出願公開第2010/0106934(US,A1)
【文献】 特表2012−507086(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するステップと、
前記パーティションの前記数についての前記平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行するステップと、
新たに追加されたパーティションと前記新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加するステップとを含む、パーティション拡張方法。
【請求項2】
前記各物理ノードのパーティションの数に対する乗算を実行するステップの後に、前記方法は、
各物理ノードの各パーティションのデータのハッシュ値を取得するステップと、
前記データの前記ハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、前記データが位置している前記物理ノードのパーティションの拡張後に得られる数とを取得するステップと、
前記データの前記モジュラス値に従って、前記データが移行されることになる宛先パーティションを決定して、前記宛先パーティションが、前記データが現在位置している前記パーティションと異なる場合には、前記データを前記宛先パーティションに移行するステップとをさらに含む、請求項1に記載のパーティション拡張方法。
【請求項3】
前記各物理ノードのパーティションの数に対する乗算を実行するステップは、
各物理ノードの前記パーティションの前記数を前記パーティションの前記数の少なくとも2倍へと乗算するステップを含む、請求項1または2に記載のパーティション拡張方法。
【請求項4】
前記分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するステップは、
前記分散ストレージシステム内の前記物理ノードすべての前記パーティションの前記数についての前記平均値を周期的に取得するステップ、または
ユーザのトリガ命令に応答して、前記分散ストレージシステム内の前記物理ノードすべての前記パーティションの前記数についての前記平均値を取得するステップを含む、請求項1に記載のパーティション拡張方法。
【請求項5】
分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するように構成される、第1の取得ユニットと、
前記パーティションの前記数についての前記平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行するように構成される、第1の乗算ユニットと、
新たに追加されたパーティションと前記新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加するように構成される、マッピングユニットとを備える、パーティション拡張装置。
【請求項6】
前記第1の乗算ユニットが各物理ノードの前記パーティションの前記数に対する乗算を実行した後に、各物理ノードの各パーティションのデータのハッシュ値を取得するように構成される、第2の取得ユニットと、
前記データの前記ハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、前記データが位置している前記物理ノードのパーティションの拡張後に得られる数とを取得するように構成される、第3の取得ユニットと、
前記データの前記モジュラス値に従って、前記データが移行されることになる宛先パーティションを決定して、前記宛先パーティションが、前記データが現在位置している前記パーティションと異なる場合には、前記データを前記宛先パーティションに移行するように構成される、移行ユニットとをさらに備える、請求項5に記載のパーティション拡張装置。
【請求項7】
前記第1の乗算ユニットは、各物理ノードの前記パーティションの前記数を前記パーティションの前記数の少なくとも2倍へと乗算するようにさらに構成される、請求項5または6に記載のパーティション拡張装置。
【請求項8】
前記第1の取得ユニットは、前記分散ストレージシステム内の前記物理ノードすべての前記パーティションの前記数についての前記平均値を周期的に取得するようにさらに構成される、または
ユーザのトリガ命令に応答して、前記分散ストレージシステム内の前記物理ノードすべての前記パーティションの前記数についての前記平均値を取得するようにさらに構成される、請求項5に記載のパーティション拡張装置。
【請求項9】
分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得して、前記パーティションの前記数についての前記平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行して、新たに追加されたパーティションと前記新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加するように構成される、プロセッサと、
前記プロセッサによって追加された、前記新たに追加されたパーティションと前記新たに追加されたパーティションが位置している前記物理ノードとの間の前記マッピング関係を記憶するように構成される、メモリとを備える、パーティション拡張装置。
【請求項10】
前記プロセッサは、各物理ノードの各パーティションのデータのハッシュ値を取得して、前記データの前記ハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、前記データが位置している前記物理ノードのパーティションの拡張後に得られる数とを取得して、前記データの前記モジュラス値に従って、前記データが移行されることになる宛先パーティションを決定して、前記宛先パーティションが、前記データが現在位置している前記パーティションと異なる場合には、前記データを前記宛先パーティションに移行するようにさらに構成される、請求項9に記載のパーティション拡張装置。
【請求項11】
前記プロセッサは、各物理ノードの前記パーティションの前記数を前記パーティションの前記数の少なくとも2倍へと乗算するようにさらに構成される、請求項9または10に記載のパーティション拡張装置。
【請求項12】
前記プロセッサは、前記分散ストレージシステム内の前記物理ノードすべての前記パーティションの前記数についての前記平均値を周期的に取得するようにさらに構成される、または
ユーザのトリガ命令に応答して、前記分散ストレージシステム内の前記物理ノードすべての前記パーティションの前記数についての前記平均値を取得するようにさらに構成される、請求項9に記載のパーティション拡張装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージ技術の分野に関し、具体的には、パーティション拡張方法および装置に関する。
【背景技術】
【0002】
分散ストレージシステムにおいて、分散ハッシュテーブル(DHT)は、一般的に、データの記憶位置を決定するために使用される。すなわち、ハッシュ値は、ハッシュHash関数を使用することによって計算され、データは、ハッシュ値に従って、始まりと終わりが連結している巡回型空間であるハッシュ空間にマッピングされる。ハッシュリングは、各部分がパーティションと称されるいくつかの均等な部分に分割され得るし、パーティションは、物理ノードに均等に分散される。加えて、データとパーティションとの間のマッピング関係およびパーティションと物理ノードとの間のマッピング関係が、構築され、DHTに記憶される。データの読み出しおよび書き込み、分散クラスタの容量拡張、トラブルシューティングなどのすべてが、DHTの変化に依存している。したがって、DHTは、負荷が均等であり、信頼性が高く、ノード上のデータの記憶方式がデータ移行を容易にし、拡張性が高く(すなわち、容量拡張をシステムに対して複数回実行し得る)という目的を実現する必要がある。
【0003】
従来技術では、システム容量拡張は、新規物理ノードを分散ストレージシステムに追加することによって、すなわち、物理ノードの数を増加することによって実施され得る。具体的な容量拡張方法は、分散ストレージシステムの容量拡張を実施するために、新規物理ノードをシステムに追加するステップと、元の物理ノードにあったパーティションを新規物理ノードに移動するステップとを含み得る。物理ノードのパーティションの数はおおよそ同一となる。
【0004】
前述のシステム容量拡張を実施する処理において、発明者は、従来技術では少なくとも以下の課題が存在することを見出している。容量拡張が分散ストレージシステムに対して複数回実施されると、物理ノードのパーティションの数は低減していくことになり、システム容量拡張に影響を及ぼす(例えば、各物理ノードにパーティションが4つだけ存在している場合には、システムの容量を、最大、元の容量の4倍までしか拡張することできない)。このことは、貧弱な分散ストレージシステムの拡張性の原因となる。
【発明の概要】
【課題を解決するための手段】
【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】
本発明の実施形態または従来技術における技術的解決手法をより明確に記載するために、実施形態または従来技術を記載するにあたり必要となる添付の図面を以下に簡単に説明する。以下の記載における添付の図面は本発明の実施形態のいくつかを示したものにすぎず、当業者は創造的努力をすることなくこれらの添付の図面から他の図面をさらに導出し得ることは明らかであろう。
【図面の簡単な説明】
【0024】
図1】本発明の実施形態1によるパーティション拡張方法のフローチャートである。
図2】本発明の実施形態2によるパーティション拡張方法のフローチャートである。
図3】本発明の実施形態3によるパーティション拡張装置の概略構造図である。
図4】本発明の実施形態3によるパーティション拡張装置の別の概略構造図である。
図5】本発明の実施形態4によるパーティション拡張装置の概略構造図である。
【発明を実施するための形態】
【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のハッシュ値がHashkであり、データKが位置している物理ノードのパーティションの数がNであり、パーティション拡張装置が各物理ノードのパーティションの数に対してn倍の乗算を実行する場合には、データKが位置している物理ノードのパーティションの拡張後に得られる数はn×Nであり、データKのハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値はxkであり、データKが位置している物理ノードのパーティションの拡張後に得られる数はxk=Hashk%(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の全データのモジュラス値は、それぞれ、x45=45%(2×3)=3、x48=48%(2×3)=0、x51=51%(2×3)=3、x54=54%(2×3)=0、x57=57%(2×3)=3 … x72=72%(2×3)=0、およびx75=75%(2×3)=3である。
【0055】
具体的には、パーティションの数に対する乗算の倍数nがn=2である場合には、パーティション拡張装置は、モジュラス値が3であるデータを、新たに追加されたデータが位置している物理ノードのパーティションに移行して、モジュラス値が0であるデータを、元のパーティションで保持してもよい。例えば、パーティション拡張装置は、x45=45%(2×3)=3、x51=51%(2×3)=3、x57=57%(2×3)=3 … x75=75%(2×3)=3に対応するデータを、新たに追加されたデータが位置している物理ノードのパーティションに移行して、x48=48%(2×3)=0、x54=54%(2×3)=0 … x72=72%(2×3)=0に対応するデータを、元のパーティションで保持してもよい。あるいは、パーティション拡張装置は、モジュラス値が0であるデータを、新たに追加されたデータが位置している物理ノードのパーティションに移行して、モジュラス値が3であるデータを、元のパーティションで保持してもよい。例えば、パーティション拡張装置は、x48=48%(2×3)=0、x54=54%(2×3)=0 … x72=72%(2×3)=0に対応するデータを、新たに追加されたデータが位置している物理ノードのパーティションに移行して、x45=45%(2×3)=3、x51=51%(2×3)=3、x57=57%(2×3)=3 … x75=75%(2×3)=3に対応するデータを、元のパーティションで保持してもよい。
【0056】
前述のパーティション1は一例として使用されていることに留意されたい。パーティションの数に対する乗算の倍数nがn=3である場合には、パーティション1のデータの一部のモジュラス値は、それぞれ、x45=45%(3×3)=0、x48=48%(3×3)=3、x51=51%(3×3)=6、x54=54%(3×3)=0、x57=57%(3×3)=3 … x72=72%(3×3)=0、およびx75=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】
前述の記載は、特定の本発明の実施形態を記載したものにすぎず、本発明の保護範囲を限定することを意図したものではない。本発明に記載の技術的範囲において当業者が用意に想到する任意の変形または置換は、本発明の保護範囲に含まれるものとする。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
【符号の説明】
【0096】
31 第1の取得ユニット
32 第1の乗算ユニット
33 マッピングユニット
34 第2の取得ユニット
35 第3の取得ユニット
36 移行ユニット
37 第4の取得ユニット
38 第2の乗算ユニット
41 プロセッサ
42 メモリ
図1
図2
図3
図4
図5