JP2016507813A - パーティション拡張方法および装置 - Google Patents

パーティション拡張方法および装置 Download PDF

Info

Publication number
JP2016507813A
JP2016507813A JP2015549922A JP2015549922A JP2016507813A JP 2016507813 A JP2016507813 A JP 2016507813A JP 2015549922 A JP2015549922 A JP 2015549922A JP 2015549922 A JP2015549922 A JP 2015549922A JP 2016507813 A JP2016507813 A JP 2016507813A
Authority
JP
Japan
Prior art keywords
partition
partitions
physical node
data
storage system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015549922A
Other languages
English (en)
Other versions
JP6020867B2 (ja
Inventor
▲フェン▼ ▲張▼
▲フェン▼ ▲張▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2016507813A publication Critical patent/JP2016507813A/ja
Application granted granted Critical
Publication of JP6020867B2 publication Critical patent/JP6020867B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/263Network storage, e.g. SAN or NAS

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本発明の実施形態は、分散ストレージシステムの容量拡張において物理ノードのパーティションの数を増加させることが可能であり、それによって分散ストレージシステムの拡張性を保証することができるように、ストレージ技術の分野に関するパーティション拡張方法および装置を開示している。具体的な解決手法は、以下のように、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得して、パーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行して、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加することである。本発明は、分散ストレージシステムの容量拡張の処理に適用可能である。

Description

本発明は、ストレージ技術の分野に関し、具体的には、パーティション拡張方法および装置に関する。
分散ストレージシステムにおいて、分散ハッシュテーブル(DHT)は、一般的に、データの記憶位置を決定するために使用される。すなわち、ハッシュ値は、ハッシュHash関数を使用することによって計算され、データは、ハッシュ値に従って、始まりと終わりが連結している巡回型空間であるハッシュ空間にマッピングされる。ハッシュリングは、各部分がパーティションと称されるいくつかの均等な部分に分割され得るし、パーティションは、物理ノードに均等に分散される。加えて、データとパーティションとの間のマッピング関係およびパーティションと物理ノードとの間のマッピング関係が、構築され、DHTに記憶される。データの読み出しおよび書き込み、分散クラスタの容量拡張、トラブルシューティングなどのすべてが、DHTの変化に依存している。したがって、DHTは、負荷が均等であり、信頼性が高く、ノード上のデータの記憶方式がデータ移行を容易にし、拡張性が高く(すなわち、容量拡張をシステムに対して複数回実行し得る)という目的を実現する必要がある。
従来技術では、システム容量拡張は、新規物理ノードを分散ストレージシステムに追加することによって、すなわち、物理ノードの数を増加することによって実施され得る。具体的な容量拡張方法は、分散ストレージシステムの容量拡張を実施するために、新規物理ノードをシステムに追加するステップと、元の物理ノードにあったパーティションを新規物理ノードに移動するステップとを含み得る。物理ノードのパーティションの数はおおよそ同一となる。
前述のシステム容量拡張を実施する処理において、発明者は、従来技術では少なくとも以下の課題が存在することを見出している。容量拡張が分散ストレージシステムに対して複数回実施されると、物理ノードのパーティションの数は低減していくことになり、システム容量拡張に影響を及ぼす(例えば、各物理ノードにパーティションが4つだけ存在している場合には、システムの容量を、最大、元の容量の4倍までしか拡張することできない)。このことは、貧弱な分散ストレージシステムの拡張性の原因となる。
本発明の実施形態は、分散ストレージシステムの容量拡張において物理ノードのパーティションの数を増加させることが可能であり、それによって分散ストレージシステムの拡張性を保証することができるように、パーティション拡張方法および装置を規定している。
前述の目的を達成するために、本発明の実施形態は、以下の技術的解決手法を採用する。
本発明の第1の態様の実施形態は、パーティション拡張方法を規定し、パーティション拡張方法は、
分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するステップと、
パーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行するステップと、
新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加するステップとを含む。
第1の態様に準拠する、可能な実施形態においては、各物理ノードのパーティションの数に対する乗算を実行するステップの後に、方法は、
各物理ノードの各パーティションのデータのハッシュ値を取得するステップと、
データのハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、データが位置している物理ノードのパーティションの拡張後に得られる数とを取得するステップと、
データのモジュラス値に従って、データが移行されることになる宛先パーティションを決定して、宛先パーティションが、データが現在位置しているパーティションと異なる場合には、データを宛先パーティションに移行するステップとをさらに含む。
第1の態様または前述の可能な実施形態に準拠する、別の可能な実施形態においては、各物理ノードのパーティションの数に対する乗算を実行するステップは、
各物理ノードのパーティションの数をパーティションの数の少なくとも2倍へと乗算するステップを含む。
第1の態様に準拠する、別の可能な実施形態においては、パーティションに対応する新規パーティションとパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加するステップの後に、方法は、
分散ストレージシステム内の物理ノードすべてのパーティションの拡張後に得られる数についての平均値を取得するステップと、
拡張後のパーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を再び実行するステップであって、乗算の倍数の各倍数は同一である、ステップとをさらに含む。
第1の態様および前述の可能な実施形態に準拠する、別の可能な実施形態においては、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するステップは、
分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を周期的に取得するステップ、または
ユーザのトリガ命令に応答して、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するステップを含む。
本発明の第2の態様の実施形態は、パーティション拡張装置をさらに規定し、パーティション拡張装置は、
分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するように構成される、第1の取得ユニットと、
パーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行するように構成される、第1の乗算ユニットと、
新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加するように構成される、マッピングユニットとを備える。
第2の態様に準拠する、可能な実施形態においては、パーティション拡張装置は、
第1の乗算ユニットが各物理ノードのパーティションの数に対する乗算を実行した後に、各物理ノードの各パーティションのデータのハッシュ値を取得するように構成される、第2の取得ユニットと、
データのハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、データが位置している物理ノードのパーティションの拡張後に得られる数とを取得するように構成される、第3の取得ユニットと、
データのモジュラス値に従って、データが移行されることになる宛先パーティションを決定して、宛先パーティションが、データが現在位置しているパーティションと異なる場合には、データを宛先パーティションに移行するように構成される、移行ユニットとをさらに備える。
第2の態様または前述の可能な実施形態に準拠する、別の可能な実施形態においては、第1の乗算ユニットは、各物理ノードのパーティションの数をパーティションの数の少なくとも2倍へと乗算するようにさらに構成される。
第2の態様に準拠する、別の可能な実施形態においては、パーティション拡張装置は、
マッピングユニットが新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加した後に、分散ストレージシステム内の物理ノードすべてのパーティションの拡張後に得られる数についての平均値を取得するように構成される、第4の取得ユニットと、
拡張後のパーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を再び実行するように構成される第2の乗算ユニットであって、乗算の倍数の各倍数は同一である、第2の乗算ユニットとをさらに備える。
第2の態様に準拠する、別の可能な実施形態においては、第1の取得ユニットは、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を周期的に取得するようにさらに構成される、または
ユーザのトリガ命令に応答して、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するようにさらに構成される。
本発明の第3の態様の実施形態は、パーティション拡張装置をさらに規定し、パーティション拡張装置は、
分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得して、パーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行して、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加するように構成される、プロセッサと、
プロセッサによって追加された、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を記憶するように構成される、メモリとを備える。
第3の態様に準拠する、可能な実施形態においては、プロセッサは、各物理ノードの各パーティションのデータのハッシュ値を取得して、データのハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、データが位置している物理ノードのパーティションの拡張後に得られる数とを取得して、データのモジュラス値に従って、データが移行されることになる宛先パーティションを決定して、宛先パーティションが、データが現在位置しているパーティションと異なる場合には、データを宛先パーティションに移行するようにさらに構成される。
第2の態様に準拠する、別の可能な実施形態においては、プロセッサは、各物理ノードのパーティションの数をパーティションの数の少なくとも2倍へと乗算するようにさらに構成される。
第2の態様に準拠する、別の可能な実施形態においては、プロセッサは、パーティションに対応する新規パーティションとパーティションが位置している物理ノードとの間のマッピング関係がDHTに追加された後に、分散ストレージシステム内の物理ノードすべてのパーティションの拡張後に得られる数についての平均値を取得して、拡張後のパーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を再び実行するようにさらに構成され、乗算の倍数の各倍数は同一である。
第2の態様に準拠する、別の可能な実施形態においては、プロセッサは、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を周期的に取得するようにさらに構成される、または
ユーザのトリガ命令に応答して、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するようにさらに構成される。
本発明の実施形態に規定したパーティション拡張方法および装置では、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値は取得され得るし、パーティションの数についての平均値がプリセット閾値未満である場合には、乗算は各物理ノードのパーティションの数に対して実行され得るし、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係は事前に記憶されている分散ハッシュテーブルDHTに追加され得る。物理ノードのパーティションの数が少ないことにより分散ストレージシステムの拡張性が乏しい従来技術と比較して、本発明の実施形態に規定したパーティション拡張方法および装置では、パーティションの数がプリセット値未満である場合には、分散ストレージシステムの容量拡張においてパーティションの数に対する乗算を実行することが可能であり、それによって分散ストレージシステムの拡張性を保証している。
本発明の実施形態または従来技術における技術的解決手法をより明確に記載するために、実施形態または従来技術を記載するにあたり必要となる添付の図面を以下に簡単に説明する。以下の記載における添付の図面は本発明の実施形態のいくつかを示したものにすぎず、当業者は創造的努力をすることなくこれらの添付の図面から他の図面をさらに導出し得ることは明らかであろう。
本発明の実施形態1によるパーティション拡張方法のフローチャートである。 本発明の実施形態2によるパーティション拡張方法のフローチャートである。 本発明の実施形態3によるパーティション拡張装置の概略構造図である。 本発明の実施形態3によるパーティション拡張装置の別の概略構造図である。 本発明の実施形態4によるパーティション拡張装置の概略構造図である。
本発明の実施形態の添付の図面を参照して本発明の実施形態の技術的解決手法を以下に明確かつ十分に記載する。記載した実施形態は一部にすぎず、本発明の実施形態のすべてではないことは明らかであろう。創造的努力をすることなく本発明の実施形態に基づいて当業者によって得られる他の実施形態のすべては、本発明の保護範囲に含まれるものとする。
実施形態1
本発明の実施形態は、パーティション拡張方法を規定する。図1に示したように、方法は、以下のステップを含む。
101. パーティション拡張装置が、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得する。
分散ハッシュテーブル(Distributed Hash Table、DHT)を使用してデータを記憶している場合には、分散ストレージシステムは、異なるデータのデータ識別子に従い、ハッシュ関数を使用することによって、データ識別子に対応するデータのハッシュ値Hashを計算し得る。データは、ハッシュ値に従って、始まりと終わりが連結している巡回型空間であるハッシュ空間にマッピングされる。ハッシュリングは、各部分がパーティションと称されるいくつかの均等な部分に分割され得るし、パーティションは、物理ノードに均等に分散される。物理ノードは、分散ストレージシステムの物理アドレスであってもよい。分散ストレージシステムは、分散ストレージシステムの物理アドレスを複数のアドレスセグメントに分割してもよいし、物理アドレスの各セグメントは、物理ノードである。
パーティション拡張装置によって、分散ストレージシステム内の物理ノードのパーティションの数についての平均値を取得するための方法は、パーティション拡張装置によって、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を周期的に取得するステップ、またはパーティション拡張装置によって、ユーザのトリガ命令に応答して、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するステップを含み得る。具体的には、パーティション拡張装置は、取得期間を事前に設定して、その期間に従って、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を自発的に取得してもよい。また、分散システムの容量拡張を実行した場合には、パーティション拡張装置は、ユーザのトリガ命令を受信して、トリガ命令に応答して、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得する。
102. パーティションの数についての平均値がプリセット閾値未満である場合には、パーティション拡張装置が、各物理ノードのパーティションの数に対する乗算を実行する。
容量拡張が分散ストレージシステムに対して少なくとも一回実行されると、プリセット閾値が、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を満たす値に設定され得る。
パーティション拡張装置が各物理ノードのパーティションの数に対する乗算を実行した後に、本発明の本実施形態における方法は、パーティション拡張装置によって、各物理ノードの各パーティションのデータのハッシュ値を取得するステップと、パーティション拡張装置によって、データのハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、データが位置している物理ノードのパーティションの拡張後に得られる数とを取得するステップと、パーティション拡張装置によって、データのモジュラス値に従って、データが移行されることになる宛先パーティションを決定して、宛先パーティションが、データが現在位置しているパーティションと異なる場合には、パーティション拡張装置によって、データを宛先パーティションに移行するステップとをさらに含む。
103. パーティション拡張装置が、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されているDHTに追加する。
分散ストレージシステムにおいて、DHTは、データの記憶位置を決定するために使用され得る。すなわち、DHTは、データ識別子とパーティションとの間のマッピング関係およびパーティションと物理ノードとの間のマッピング関係を記憶し得る。したがって、各物理ノードのパーティションの数に対する乗算を実行するステップの後に、パーティション拡張装置は、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されているDHTに追加する必要がさらにある。
本発明の本実施形態に規定したパーティション拡張方法においては、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値は取得され得るし、パーティションの数についての平均値がプリセット閾値未満である場合には、乗算は各物理ノードのパーティションの数に対して実行され得るし、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係は事前に記憶されている分散ハッシュテーブルDHTに追加され得る。物理ノードのパーティションの数が少ないことにより分散ストレージシステムの拡張性が乏しい従来技術と比較して、本発明の本実施形態に規定したパーティション拡張方法においては、パーティションの数がプリセット値未満である場合には、分散ストレージシステムの容量拡張においてパーティションの数に対する乗算を実行することが可能であり、それによって分散ストレージシステムの拡張性を保証している。
実施形態2
本発明の実施形態は、パーティション拡張方法を規定する。図2に示したように、方法は、以下のステップを含む。
201. パーティション拡張装置が、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得する。
例えば、パーティション拡張装置によって、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するための方法とは、具体的には、以下のように、パーティション拡張装置が、事前に記憶されているDHTにおいて、分散ストレージシステム内の物理ノードの数と、全物理ノードのパーティションの総数とを問い合わせ、パーティション拡張装置が、物理ノードの数と、全物理ノードのパーティションの総数とに従って、物理ノードのパーティションの数についての平均値を計算することであり得る。
物理ノードの数は、分散ストレージシステム内の物理ノードの総数である。パーティション拡張装置によって、物理ノードの数と、全物理ノードのパーティションの総数とに従って、物理ノードのパーティションの数についての平均値を計算する方法とは、具体的には、以下のように、全物理ノードのパーティションの総数を物理ノードの数で除算することによって、パーティション拡張装置によって得られる商を物理ノードのパーティションの数についての平均値として使用することである。例えば、物理ノードの数がA、全物理ノードのパーティションの総数がB、物理ノードのパーティションの数についての平均値がCであるとすると、物理ノードの数、全物理ノードのパーティションの総数、および物理ノードのパーティションの数についての平均値は、C=A/Bという数式を満たさなければならない。
さらに、本実施形態のある適用状況においては、分散ストレージシステムがDHTを使用してデータを記憶している場合には、物理ノードのパーティションの数はおおよそ同一となる。したがって、パーティション拡張装置は、事前に記憶されているDHTにおいて、分散ストレージシステム内の任意の物理ノードのパーティションの数を問い合わせて、物理ノードのパーティションの数を分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値として使用してもよい。
202. パーティション拡張装置が、パーティションの数についての平均値がプリセット閾値未満であるかどうかを決定して、パーティションの数についての平均値がプリセット閾値未満である場合にはステップ203を実行し、またパーティションの数についての平均値がプリセット閾値未満ではない場合にはステップ211を実行する。
203. パーティション拡張装置が、各物理ノードのパーティションの数に対する乗算を実行する。
パーティション拡張装置が各物理ノードのパーティションの数に対する乗算を実行することは、パーティション拡張装置によって、各物理ノードのパーティションの数をパーティションの数の少なくとも2倍へと乗算することを含み得る。
具体的には、パーティション拡張装置は、事前に記憶されているDHT内の各物理ノードのパーティションの数を各物理ノードにおいてパーティションの数の少なくとも2倍へと修正してもよい。
一般的に、パーティション拡張装置が各物理ノードのパーティションの数に対する乗算を実行する場合には、パーティションの数に対する乗算の倍数は2であることに留意されたい。当然のことながら、パーティション拡張装置は、各物理ノードのパーティションの数に対して3倍以上の拡張を実行してもよい。パーティション拡張装置が各物理ノードのパーティションの数に対して2倍の拡張を実行することを、本発明の本実施形態における一例として用いている。しかしながら、各物理ノードのパーティションの数に対するパーティション拡張装置によって実行される乗算の倍数は限定されない。
204. パーティション拡張装置が、各物理ノードの各パーティションのデータのハッシュ値を取得する。
具体的には、パーティション拡張装置は、事前に記憶されているDHTにおいて、各パーティションのデータの識別子に従って、各物理ノードの各パーティションのデータのハッシュ値を問い合わせ得る。パーティション中の異なるデータのハッシュ値は異なる。例えば、パーティションは、データ1と、データ2と、データ3とを含む。データ1のデータ識別子はaでありハッシュ値はHash1である、データ2のデータ識別子はbでありハッシュ値はHash2である、およびデータ3のデータ識別子はcでありハッシュ値はHash3である。
205. パーティション拡張装置が、データのハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、データが位置している物理ノードのパーティションの拡張後に得られる数とを取得する。
データが位置している物理ノードのパーティションの拡張後に得られる数は、データが位置している物理ノードのパーティションの拡張前の数を各物理ノードのパーティションの数に対するパーティション拡張装置によって実行される乗算の倍数で乗算することによって得られる積である。
例えば、データKのハッシュ値がHashkであり、データKが位置している物理ノードのパーティションの数がNであり、パーティション拡張装置が各物理ノードのパーティションの数に対してn倍の乗算を実行する場合には、データKが位置している物理ノードのパーティションの拡張後に得られる数はn×Nであり、データKのハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値はxkであり、データKが位置している物理ノードのパーティションの拡張後に得られる数はxk=Hashk%(n×N)という数式に基づいた計算によって得られ得る。
206. パーティション拡張装置が、データのモジュラス値に従って、データが移行されることになる宛先パーティションを決定して、宛先パーティションが、データが現在位置しているパーティションと異なる場合には、データを宛先パーティションに移行する。
分散ストレージシステムがデータを記憶する場合には、記憶されることになるデータのハッシュ値Hashは、ハッシュ関数に従って計算され得るし、記憶されることになるデータは、記憶されることになるデータの一部の各々のハッシュ値と分散ストレージシステム内のパーティションの総数とに従って、各記憶用パーティションに分散され、そして分散ストレージシステム内のパーティションは、各物理ノードに均等に分散される。
例えば、いくつかのデータのハッシュ値Hashがそれぞれ、45、46、47、47、…、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
例えば、前述のパーティション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である。
具体的には、パーティションの数に対する乗算の倍数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に対応するデータを、元のパーティションで保持してもよい。
前述のパーティション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倍に乗算するための方法と同様であり、その詳細を本実施形態においては再度記載しない。
207. パーティション拡張装置が、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されているDHTに追加する。
208. パーティション拡張装置が、分散ストレージシステム内の物理ノードすべてのパーティションの拡張後に得られる数についての平均値を取得する。
分散ストレージシステム内の物理ノードすべてのパーティションの数に対する乗算を実行して、パーティションの対応するデータの移行が完了した後に、パーティション拡張装置は、分散ストレージシステム内の物理ノードすべてのパーティションの拡張後に得られる数についての平均値を取得して、取得した平均値に従って、少なくとも一回拡張を実行するために分散ストレージシステム内のパーティションの数が分散ストレージシステムによって必要とされるパーティションの数を満たすかどうかを決定し得る。
パーティション拡張装置によって、分散ストレージシステム内の物理ノードすべてのパーティションの拡張後に得られる数についての平均値を取得するための方法は、本実施形態においては、パーティション拡張装置によって、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するための方法と同様であり、その詳細を本実施形態においては再度記載しないことに留意されたい。
209. パーティション拡張装置が、拡張後のパーティションの数についての平均値がプリセット閾値未満であるかどうかを決定して、拡張後のパーティションの数についての平均値がプリセット閾値未満である場合にはステップ210を実行して、または拡張後のパーティションの数についての平均値がプリセット閾値未満ではない場合にはステップ211を実行する。
210. パーティション拡張装置が、乗算の倍数の各倍数が同一である、各物理ノードのパーティションの数に対する乗算を再び実行する。
拡張後のパーティションの数についての平均値がプリセット閾値未満である場合には、パーティション拡張装置は、各物理ノードのパーティションの数に対する乗算を再び実行してもよい。各物理ノードのパーティションの数に対するパーティション拡張装置によって再び実行される乗算の乗算倍数は、パーティションの数に対するパーティション拡張装置によって一回目に実行された乗算の乗算倍数と同一である。
パーティション拡張装置が各物理ノードのパーティションの数に対する乗算を再び実行した後に、本実施形態の方法は、パーティション拡張装置によって、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されているDHTに追加することをさらに含み得る。
パーティション拡張装置は物理ノードのパーティションの数に対する乗算を少なくとも一回実行し得るし、乗算の倍数の各倍数は同一であり、乗算の倍数は2以上であることに留意されたい。
211. パーティション拡張処理を終了する。
パーティション拡張装置は、分散ストレージシステム内の物理ノードのパーティションの数についての平均値に従って、分散ストレージシステム内の物理ノードのパーティションに対する拡張を少なくとも一回実行し得ることに留意されたい。パーティション拡張の回数は、本発明の本実施形態に限定されない。パーティション拡張装置によって、分散ストレージシステム内の物理ノードのパーティションに対して二回以上拡張を実行するための方法は、本実施形態においては、パーティション拡張方法と同様であり、その詳細を本実施形態においては再度記載しない。
さらに、本実施形態に規定した乗算方法は分散ストレージシステムのパーティション拡張処理だけに適用され得るのではなく別のストレージシステム内のストレージノードの乗算処理にも適用され得るし、本発明の方法の適用範囲は本実施形態に限定されないことに留意されたい。
本発明の本実施形態に規定したパーティション拡張方法においては、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値は取得され得るし、パーティションの数についての平均値がプリセット閾値未満である場合には、乗算は各物理ノードのパーティションの数に対して実行され得るし、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係は事前に記憶されている分散ハッシュテーブルDHTに追加され得る。物理ノードのパーティションの数が少ないことにより分散ストレージシステムの拡張性が乏しい従来技術と比較して、本発明の本実施形態に規定したパーティション拡張方法においては、パーティションの数がプリセット値未満である場合には、分散ストレージシステムの容量拡張においてパーティションの数に対する乗算を実行することが可能であり、それによって分散ストレージシステムの拡張性を保証している。
実施形態3
本発明の本実施形態は、パーティション拡張装置を規定する。図3に示したように、装置は、第1の取得ユニット31と、第1の乗算ユニット32と、マッピングユニット33とを備える。
第1の取得ユニット31は、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するように構成される。
第1の乗算ユニット32は、パーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行するように構成される。
マッピングユニット33は、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加するように構成される。
図4に示したように、パーティション拡張装置は、第2の取得ユニット34と、第3の取得ユニット35と、移行ユニット36とをさらに備える。
第2の取得ユニット34は、第1の乗算ユニット32が各物理ノードのパーティションの数に対する乗算を実行した後に、各物理ノードの各パーティションのデータのハッシュ値を取得するように構成される。
第3の取得ユニット35は、データのハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、データが位置している物理ノードのパーティションの拡張後に得られる数とを取得するように構成される。
移行ユニット36は、データのモジュラス値に従って、データが移行されることになる宛先パーティションを決定して、宛先パーティションが、データが現在位置しているパーティションと異なる場合には、データを宛先パーティションに移行するように構成される。
第1の乗算ユニット32は、各物理ノードのパーティションの数をパーティションの数の少なくとも2倍へと乗算するようにさらに構成される。
パーティション拡張装置は、第4の取得ユニット37と、第2の乗算ユニット38とをさらに備える。
第4の取得ユニット37は、マッピングユニット33が新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加した後に、分散ストレージシステム内の物理ノードすべてのパーティションの拡張後に得られる数についての平均値を取得するように構成される。
第2の乗算ユニット38は、拡張後のパーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を再び実行するように構成され、乗算の倍数の各倍数は同一である。
第1の取得ユニット31は、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を周期的に取得するようにさらに構成される、またはユーザのトリガ命令に応答して、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するようにさらに構成される。
本発明の本実施形態に規定したパーティション拡張装置におけるいくつかの関数モジュールの特定の記載に関しては、方法の実施形態における対応する内容を参照し、その詳細を本実施形態においては再度記載しないことに留意されたい。
本発明の本実施形態に規定したパーティション拡張装置は、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得して、パーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行して、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加することが可能である。物理ノードのパーティションの数が少ないことにより分散ストレージシステムの拡張性が乏しい従来技術と比較して、パーティションの数がプリセット値未満である場合には、本発明の本実施形態に規定したパーティション拡張装置は、分散ストレージシステムの容量拡張においてパーティションの数に対する乗算を実行することが可能であり、それによって分散ストレージシステムの拡張性を保証している。
実施形態4
本発明の実施形態は、パーティション拡張装置を規定する。図5に示したように、装置は、プロセッサ41と、メモリ42とを備え得る。
プロセッサ41は、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得して、パーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行して、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加するように構成される。
メモリ42は、プロセッサ41によって追加された新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を記憶するように構成される。
プロセッサ41は、各物理ノードの各パーティションのデータのハッシュ値を取得して、データのハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、データが位置している物理ノードのパーティションの拡張後に得られる数とを取得して、データのモジュラス値に従って、データが移行されることになる宛先パーティションを決定して、宛先パーティションが、データが現在位置しているパーティションと異なる場合には、データを宛先パーティションに移行するようにさらに構成される。
プロセッサ41は、各物理ノードのパーティションの数をパーティションの数の少なくとも2倍へと乗算するようにさらに構成される。
プロセッサ41は、パーティションに対応する新規パーティションとパーティションが位置している物理ノードとの間のマッピング関係がDHTに追加された後に、分散ストレージシステム内の物理ノードすべてのパーティションの拡張後に得られる数についての平均値を取得して、拡張後のパーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を再び実行するようにさらに構成され、乗算の倍数の各倍数は同一である。
プロセッサ41は、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を周期的に取得するようにさらに構成される、またはユーザのトリガ命令に応答して、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するようにさらに構成される。
本発明の本実施形態に規定したパーティション拡張装置におけるいくつかの関数モジュールの特定の記載に関しては、方法の実施形態における対応する内容を参照し、その詳細を本実施形態においては再度記載しないことに留意されたい。
本発明の本実施形態に規定したパーティション拡張装置は、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得して、パーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行して、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加することが可能である。物理ノードのパーティションの数が少ないことにより分散ストレージシステムの拡張性が乏しい従来技術と比較して、パーティションの数がプリセット値未満である場合には、本発明の本実施形態に規定したパーティション拡張装置は、分散ストレージシステムの容量拡張においてパーティションの数に対する乗算を実行することが可能であり、それによって分散ストレージシステムの拡張性を保証している。
実施形態の前述の記載に基づいて、本発明が、必要となる汎用ハードウェアとともにソフトウェアによって、またはハードウェアのみによって、実装され得ることを、当業者は明確に理解されよう。大抵の状況においては、前者が望ましい実施形態である。そのような理解に基づけば、従来技術に対して本質的にまたは部分的に貢献する本発明の技術的解決手法は、ソフトウェア製品の形式で実装されてもよい。ソフトウェア製品は、コンピュータのフロッピー(登録商標)ディスク、ハードディスク、または光学ディスクなどのコンピュータ可読記憶媒体に記憶され、コンピュータデバイス(パーソナルコンピュータ、サーバ、またはネットワークデバイスであり得る)に本発明の実施形態に記載の方法を実行するように指示するためのいくつかの命令を含む。
前述の記載は、特定の本発明の実施形態を記載したものにすぎず、本発明の保護範囲を限定することを意図したものではない。本発明に記載の技術的範囲において当業者が用意に想到する任意の変形または置換は、本発明の保護範囲に含まれるものとする。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
31 第1の取得ユニット
32 第1の乗算ユニット
33 マッピングユニット
34 第2の取得ユニット
35 第3の取得ユニット
36 移行ユニット
37 第4の取得ユニット
38 第2の乗算ユニット
41 プロセッサ
42 メモリ
本発明の実施形態に規定したパーティション拡張方法および装置では、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値は取得され得るし、パーティションの数についての平均値がプリセット閾値未満である場合には、乗算は各物理ノードのパーティションの数に対して実行され得るし、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係は事前に記憶されている分散ハッシュテーブルDHTに追加され得る。物理ノードのパーティションの数が少ないことにより分散ストレージシステムの拡張性が乏しい従来技術と比較して、本発明の実施形態に規定したパーティション拡張方法および装置では、パーティションの数がプリセット閾値未満である場合には、分散ストレージシステムの容量拡張においてパーティションの数に対する乗算を実行することが可能であり、それによって分散ストレージシステムの拡張性を保証している。
パーティション拡張装置によって、分散ストレージシステム内の物理ノードのパーティションの数についての平均値を取得するための方法は、パーティション拡張装置によって、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を周期的に取得するステップ、またはパーティション拡張装置によって、ユーザのトリガ命令に応答して、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するステップを含み得る。具体的には、パーティション拡張装置は、取得期間を事前に設定して、その期間に従って、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を自発的に取得してもよい。また、分散ストレージシステムの容量拡張を実行した場合には、パーティション拡張装置は、ユーザのトリガ命令を受信して、トリガ命令に応答して、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得する。
本発明の本実施形態に規定したパーティション拡張方法においては、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値は取得され得るし、パーティションの数についての平均値がプリセット閾値未満である場合には、乗算は各物理ノードのパーティションの数に対して実行され得るし、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係は事前に記憶されている分散ハッシュテーブルDHTに追加され得る。物理ノードのパーティションの数が少ないことにより分散ストレージシステムの拡張性が乏しい従来技術と比較して、本発明の本実施形態に規定したパーティション拡張方法においては、パーティションの数がプリセット閾値未満である場合には、分散ストレージシステムの容量拡張においてパーティションの数に対する乗算を実行することが可能であり、それによって分散ストレージシステムの拡張性を保証している。
例えば、いくつかのデータのハッシュ値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
本発明の本実施形態に規定したパーティション拡張方法においては、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値は取得され得るし、パーティションの数についての平均値がプリセット閾値未満である場合には、乗算は各物理ノードのパーティションの数に対して実行され得るし、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係は事前に記憶されている分散ハッシュテーブルDHTに追加され得る。物理ノードのパーティションの数が少ないことにより分散ストレージシステムの拡張性が乏しい従来技術と比較して、本発明の本実施形態に規定したパーティション拡張方法においては、パーティションの数がプリセット閾値未満である場合には、分散ストレージシステムの容量拡張においてパーティションの数に対する乗算を実行することが可能であり、それによって分散ストレージシステムの拡張性を保証している。
本発明の本実施形態に規定したパーティション拡張装置は、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得して、パーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行して、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加することが可能である。物理ノードのパーティションの数が少ないことにより分散ストレージシステムの拡張性が乏しい従来技術と比較して、パーティションの数がプリセット閾値未満である場合には、本発明の本実施形態に規定したパーティション拡張装置は、分散ストレージシステムの容量拡張においてパーティションの数に対する乗算を実行することが可能であり、それによって分散ストレージシステムの拡張性を保証している。
本発明の本実施形態に規定したパーティション拡張装置は、分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得して、パーティションの数についての平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行して、新たに追加されたパーティションと新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加することが可能である。物理ノードのパーティションの数が少ないことにより分散ストレージシステムの拡張性が乏しい従来技術と比較して、パーティションの数がプリセット閾値未満である場合には、本発明の本実施形態に規定したパーティション拡張装置は、分散ストレージシステムの容量拡張においてパーティションの数に対する乗算を実行することが可能であり、それによって分散ストレージシステムの拡張性を保証している。

Claims (15)

  1. 分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するステップと、
    前記パーティションの前記数についての前記平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行するステップと、
    新たに追加されたパーティションと前記新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加するステップとを含む、パーティション拡張方法。
  2. 前記各物理ノードのパーティションの数に対する乗算を実行するステップの後に、前記方法は、
    各物理ノードの各パーティションのデータのハッシュ値を取得するステップと、
    前記データの前記ハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、前記データが位置している前記物理ノードのパーティションの拡張後に得られる数とを取得するステップと、
    前記データの前記モジュラス値に従って、前記データが移行されることになる宛先パーティションを決定して、前記宛先パーティションが、前記データが現在位置している前記パーティションと異なる場合には、前記データを前記宛先パーティションに移行するステップとをさらに含む、請求項1に記載のパーティション拡張方法。
  3. 前記各物理ノードのパーティションの数に対する乗算を実行するステップは、
    各物理ノードの前記パーティションの前記数を前記パーティションの前記数の少なくとも2倍へと乗算するステップを含む、請求項1または2に記載のパーティション拡張方法。
  4. 前記パーティションに対応する新規パーティションと前記パーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加するステップの後に、前記方法は、
    前記分散ストレージシステム内の前記物理ノードすべてのパーティションの拡張後に得られる数についての平均値を取得するステップと、
    拡張後の前記パーティションの前記数についての前記平均値が前記プリセット閾値未満である場合には、各物理ノードの前記パーティションの前記数に対する乗算を再び実行するステップであって、乗算の倍数の各倍数は同一である、ステップとをさらに含む、請求項1に記載のパーティション拡張方法。
  5. 前記分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するステップは、
    前記分散ストレージシステム内の前記物理ノードすべての前記パーティションの前記数についての前記平均値を周期的に取得するステップ、または
    ユーザのトリガ命令に応答して、前記分散ストレージシステム内の前記物理ノードすべての前記パーティションの前記数についての前記平均値を取得するステップを含む、請求項1に記載のパーティション拡張方法。
  6. 分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得するように構成される、第1の取得ユニットと、
    前記パーティションの前記数についての前記平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行するように構成される、第1の乗算ユニットと、
    新たに追加されたパーティションと前記新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加するように構成される、マッピングユニットとを備える、パーティション拡張装置。
  7. 前記第1の乗算ユニットが各物理ノードの前記パーティションの前記数に対する乗算を実行した後に、各物理ノードの各パーティションのデータのハッシュ値を取得するように構成される、第2の取得ユニットと、
    前記データの前記ハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、前記データが位置している前記物理ノードのパーティションの拡張後に得られる数とを取得するように構成される、第3の取得ユニットと、
    前記データの前記モジュラス値に従って、前記データが移行されることになる宛先パーティションを決定して、前記宛先パーティションが、前記データが現在位置している前記パーティションと異なる場合には、前記データを前記宛先パーティションに移行するように構成される、移行ユニットとをさらに備える、請求項6に記載のパーティション拡張装置。
  8. 前記第1の乗算ユニットは、各物理ノードの前記パーティションの前記数を前記パーティションの前記数の少なくとも2倍へと乗算するようにさらに構成される、請求項6または7に記載のパーティション拡張装置。
  9. 前記マッピングユニットが前記新たに追加されたパーティションと前記新たに追加されたパーティションが位置している前記物理ノードとの間の前記マッピング関係を前記事前に記憶されている分散ハッシュテーブルDHTに追加した後に、前記分散ストレージシステム内の前記物理ノードすべてのパーティションの拡張後に得られる数についての平均値を取得するように構成される、第4の取得ユニットと、
    拡張後の前記パーティションの前記数についての前記平均値が前記プリセット閾値未満である場合には、各物理ノードの前記パーティションの前記数に対する乗算を再び実行するように構成される第2の乗算ユニットであって、乗算の倍数の各倍数は同一である、第2の乗算ユニットとをさらに備える、請求項1に記載のパーティション拡張装置。
  10. 前記第1の取得ユニットは、前記分散ストレージシステム内の前記物理ノードすべての前記パーティションの前記数についての前記平均値を周期的に取得するようにさらに構成される、または
    ユーザのトリガ命令に応答して、前記分散ストレージシステム内の前記物理ノードすべての前記パーティションの前記数についての前記平均値を取得するようにさらに構成される、請求項6に記載のパーティション拡張装置。
  11. 分散ストレージシステム内の物理ノードすべてのパーティションの数についての平均値を取得して、前記パーティションの前記数についての前記平均値がプリセット閾値未満である場合には、各物理ノードのパーティションの数に対する乗算を実行して、新たに追加されたパーティションと前記新たに追加されたパーティションが位置している物理ノードとの間のマッピング関係を事前に記憶されている分散ハッシュテーブルDHTに追加するように構成される、プロセッサと、
    前記プロセッサによって追加された、前記新たに追加されたパーティションと前記新たに追加されたパーティションが位置している前記物理ノードとの間の前記マッピング関係を記憶するように構成される、メモリとを備える、パーティション拡張装置。
  12. 前記プロセッサは、各物理ノードの各パーティションのデータのハッシュ値を取得して、前記データの前記ハッシュ値に対するモジュロ演算を実行することによって得られるモジュラス値と、前記データが位置している前記物理ノードのパーティションの拡張後に得られる数とを取得して、前記データの前記モジュラス値に従って、前記データが移行されることになる宛先パーティションを決定して、前記宛先パーティションが、前記データが現在位置している前記パーティションと異なる場合には、前記データを前記宛先パーティションに移行するようにさらに構成される、請求項11に記載のパーティション拡張装置。
  13. 前記プロセッサは、各物理ノードの前記パーティションの前記数を前記パーティションの前記数の少なくとも2倍へと乗算するようにさらに構成される、請求項11または12に記載のパーティション拡張装置。
  14. 前記プロセッサは、前記パーティションに対応する新規パーティションと前記パーティションが位置している前記物理ノードとの間の前記マッピング関係が前記DHTに追加された後に、前記分散ストレージシステム内の前記物理ノードすべてのパーティションの拡張後に得られる数についての平均値を取得して、拡張後の前記パーティションの前記数についての前記平均値が前記プリセット閾値未満である場合には、各物理ノードの前記パーティションの前記数に対する乗算を再び実行するようにさらに構成され、乗算の倍数の各倍数は同一である、請求項11に記載のパーティション拡張装置。
  15. 前記プロセッサは、前記分散ストレージシステム内の前記物理ノードすべての前記パーティションの前記数についての前記平均値を周期的に取得するようにさらに構成される、または
    ユーザのトリガ命令に応答して、前記分散ストレージシステム内の前記物理ノードすべての前記パーティションの前記数についての前記平均値を取得するようにさらに構成される、請求項11に記載のパーティション拡張装置。
JP2015549922A 2012-12-27 2012-12-27 パーティション拡張方法および装置 Active JP6020867B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/087743 WO2014101070A1 (zh) 2012-12-27 2012-12-27 一种分区扩展方法及装置

Publications (2)

Publication Number Publication Date
JP2016507813A true JP2016507813A (ja) 2016-03-10
JP6020867B2 JP6020867B2 (ja) 2016-11-02

Family

ID=48838330

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015549922A Active JP6020867B2 (ja) 2012-12-27 2012-12-27 パーティション拡張方法および装置

Country Status (9)

Country Link
US (1) US9665284B2 (ja)
EP (2) EP3376395A1 (ja)
JP (1) JP6020867B2 (ja)
KR (1) KR101677946B1 (ja)
CN (1) CN103229151B (ja)
AU (1) AU2012398262C1 (ja)
CA (1) CA2894623C (ja)
ES (1) ES2658188T3 (ja)
WO (1) WO2014101070A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462124B (zh) * 2013-09-22 2018-04-06 中国电信股份有限公司 基于线性哈希表的数据存储平台组织方法和数据存储平台
CN103634401B (zh) * 2013-12-03 2015-11-25 北京京东尚科信息技术有限公司 一种存储数据副本的方法和终端装置以及服务器装置
CN103810244B (zh) * 2013-12-09 2017-10-27 北京理工大学 一种基于数据分布的分布式数据存储系统的扩容方法
CN103929500A (zh) * 2014-05-06 2014-07-16 刘跃 一种分布式存储系统的数据分片方法
JP6288596B2 (ja) * 2014-11-05 2018-03-07 華為技術有限公司Huawei Technologies Co.,Ltd. データ処理方法および装置
CN106843745A (zh) * 2015-12-03 2017-06-13 南京中兴新软件有限责任公司 容量扩展方法及装置
CN105630419B (zh) * 2015-12-25 2018-09-21 华为技术有限公司 一种资源池的分区视图发送方法及管理节点
US10157193B2 (en) 2016-03-03 2018-12-18 International Business Machines Corporation Switching between a non-partitioned hash join and a partitioned hash join based on an amount of available memory
CN107943412B (zh) * 2016-10-12 2021-10-22 阿里巴巴集团控股有限公司 一种分区分裂、删除分区中数据文件的方法、装置及系统
US10430706B2 (en) * 2016-12-01 2019-10-01 Via Alliance Semiconductor Co., Ltd. Processor with memory array operable as either last level cache slice or neural network unit memory
CN108804018A (zh) * 2017-04-26 2018-11-13 华为技术有限公司 一种数据分区的方法及装置
CN108932256A (zh) * 2017-05-25 2018-12-04 中兴通讯股份有限公司 分布式数据重分布控制方法、装置及数据管理服务器
CN107329692B (zh) * 2017-06-07 2020-02-28 杭州宏杉科技股份有限公司 一种数据重删的方法及存储设备
CN109995813B (zh) * 2017-12-29 2021-02-26 华为技术有限公司 一种分区扩展方法、数据存储方法及装置
KR102093145B1 (ko) * 2018-06-07 2020-03-25 한밭대학교 산학협력단 생체정보 인식 기반의 데이터 최적화를 위한 오브젝트 스토리지 클라우드 시스템
CN110169008B (zh) * 2018-07-10 2022-06-03 深圳花儿数据技术有限公司 一种基于一致性哈希算法的分布式数据冗余存储方法
CN111694693A (zh) * 2019-03-12 2020-09-22 上海晶赞融宣科技有限公司 数据流存储方法、装置以及计算机存储介质
CN110083312B (zh) * 2019-04-28 2021-01-15 联想(北京)有限公司 磁盘扩容方法、装置及计算机设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009295127A (ja) * 2008-06-09 2009-12-17 Nippon Telegr & Teleph Corp <Ntt> アクセス方法、アクセス装置及び分散データ管理システム
US20100106934A1 (en) * 2008-10-24 2010-04-29 Microsoft Corporation Partition management in a partitioned, scalable, and available structured storage
JP2012123790A (ja) * 2010-12-07 2012-06-28 Internatl Business Mach Corp <Ibm> 仮想パーティションを用いたデータベース再分配
WO2012164735A1 (ja) * 2011-06-03 2012-12-06 富士通株式会社 情報処理装置、データ管理方法およびデータ管理プログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2167790A1 (en) * 1995-01-23 1996-07-24 Donald S. Maier Relational database system and method with high data availability during table data restructuring
US7469253B2 (en) * 2003-04-01 2008-12-23 Microsoft Corporation Associative hash partitioning using pseudo-random number generator
CN101374087A (zh) * 2007-08-20 2009-02-25 华为技术有限公司 一种移动自组网络、节点及其区域划分方法
US8074049B2 (en) * 2008-08-26 2011-12-06 Nine Technology, Llc Online backup system with global two staged deduplication without using an indexing database
US8078825B2 (en) * 2009-03-11 2011-12-13 Oracle America, Inc. Composite hash and list partitioning of database tables
WO2010134437A1 (ja) 2009-05-18 2010-11-25 Nishiyama Shuhei 仮想単一メモリストレージ上におけるメタ情報共有型分散データベース・システム
JP4362839B1 (ja) * 2009-05-18 2009-11-11 修平 西山 仮想単一メモリストレージ上におけるメタ情報共有型分散データベース・システム
US20100312749A1 (en) * 2009-06-04 2010-12-09 Microsoft Corporation Scalable lookup service for distributed database
US8996803B2 (en) * 2010-07-02 2015-03-31 Futurewei Technologies, Inc. Method and apparatus for providing highly-scalable network storage for well-gridded objects
CN102043726B (zh) * 2010-12-29 2012-08-15 北京播思软件技术有限公司 一种大规模时序数据的存储管理方法
CN102591970B (zh) * 2011-12-31 2014-07-30 北京奇虎科技有限公司 一种分布式键-值查询方法和查询引擎系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009295127A (ja) * 2008-06-09 2009-12-17 Nippon Telegr & Teleph Corp <Ntt> アクセス方法、アクセス装置及び分散データ管理システム
US20100106934A1 (en) * 2008-10-24 2010-04-29 Microsoft Corporation Partition management in a partitioned, scalable, and available structured storage
JP2012507086A (ja) * 2008-10-24 2012-03-22 マイクロソフト コーポレーション パーティション化した拡張可能で可用性の高い構造化ストレージにおけるパーティション管理
JP2012123790A (ja) * 2010-12-07 2012-06-28 Internatl Business Mach Corp <Ibm> 仮想パーティションを用いたデータベース再分配
US20120323852A1 (en) * 2010-12-07 2012-12-20 Ibm Corporation Database redistribution utilizing virtual partitions
WO2012164735A1 (ja) * 2011-06-03 2012-12-06 富士通株式会社 情報処理装置、データ管理方法およびデータ管理プログラム

Also Published As

Publication number Publication date
KR101677946B1 (ko) 2016-11-21
US9665284B2 (en) 2017-05-30
ES2658188T3 (es) 2018-03-08
CA2894623A1 (en) 2014-07-03
US20150293707A1 (en) 2015-10-15
CN103229151A (zh) 2013-07-31
CN103229151B (zh) 2016-08-10
AU2012398262C1 (en) 2016-10-13
EP2921964B1 (en) 2017-12-20
EP2921964A4 (en) 2015-12-09
WO2014101070A1 (zh) 2014-07-03
JP6020867B2 (ja) 2016-11-02
AU2012398262A1 (en) 2015-07-02
KR20150091161A (ko) 2015-08-07
CA2894623C (en) 2019-09-10
AU2012398262B2 (en) 2016-04-14
EP3376395A1 (en) 2018-09-19
EP2921964A1 (en) 2015-09-23
EP2921964B8 (en) 2018-02-07

Similar Documents

Publication Publication Date Title
JP6020867B2 (ja) パーティション拡張方法および装置
KR101569093B1 (ko) 분산 시스템에서 데이터를 처리하는 방법
EP3129880B1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
EP2701064B1 (en) Robust tenant placement and migration in database-as-a-service environments
WO2018144403A3 (en) Resource management for virtual machines in cloud computing systems
CN109408590B (zh) 分布式数据库的扩容方法、装置、设备及存储介质
JPWO2012101933A1 (ja) 運用管理装置、運用管理方法、及びプログラム
EP2808778A1 (en) Capacity expansion method and device
CN106446061A (zh) 用于存储虚拟机镜像的方法及设备
CN104683408A (zh) OpenStack云计算管理平台建立虚拟机实例的方法和系统
EP3059670A1 (en) Data storage method and storage server
JP2018160149A (ja) 情報処理システム、オートスケーリング連携装置及びプログラム
CN113835823A (zh) 资源调度方法和装置、电子设备、计算机可读存储介质
CN106412075A (zh) 一种基于云计算的资源配置方法及装置
US10255306B2 (en) Deduplicated data processing hierarchical rate control in a data deduplication system
US10896056B2 (en) Cluster expansion method and apparatus, electronic device and storage medium
JPWO2014102997A1 (ja) 計算機、計算機システムの制御装置及び記録媒体
JP6189266B2 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
JP6207193B2 (ja) サーバ数調整システムおよび方法ならびにプログラム
JP2014206805A (ja) 制御装置
CN110069470B (zh) 实例迁移的方法和装置
JP6658093B2 (ja) 情報処理システム及びプログラム
JP6287427B2 (ja) ストレージシステム
JP2017182664A (ja) 分散ファイル管理装置、分散ファイル管理方法、及びプログラム
AU2015361959A1 (en) Tree structure network autonomous management and node adding method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160729

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160906

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160920

R150 Certificate of patent or registration of utility model

Ref document number: 6020867

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250