JP6690212B2 - データ管理プログラム及びデータ管理方法 - Google Patents

データ管理プログラム及びデータ管理方法 Download PDF

Info

Publication number
JP6690212B2
JP6690212B2 JP2015238953A JP2015238953A JP6690212B2 JP 6690212 B2 JP6690212 B2 JP 6690212B2 JP 2015238953 A JP2015238953 A JP 2015238953A JP 2015238953 A JP2015238953 A JP 2015238953A JP 6690212 B2 JP6690212 B2 JP 6690212B2
Authority
JP
Japan
Prior art keywords
data
server
migration
destination device
transfer
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.)
Active
Application number
JP2015238953A
Other languages
English (en)
Other versions
JP2017107300A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015238953A priority Critical patent/JP6690212B2/ja
Priority to US15/352,659 priority patent/US20170161508A1/en
Publication of JP2017107300A publication Critical patent/JP2017107300A/ja
Application granted granted Critical
Publication of JP6690212B2 publication Critical patent/JP6690212B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データ管理プログラム及びデータ管理方法に関する。
キーとバリューの組合わせでデータを複数のサーバで分散管理する分散データベースシステムは、キー空間を分割して得られる部分キー空間を各サーバに割り当ててデータを分散管理する。すなわち、各サーバは、自装置に割り当てられた部分キー空間に含まれるキーを有するデータを記憶する。データの参照では、データからハッシュ計算によりキーが求められ、データを記憶するサーバがキーから特定され、特定されたサーバにデータの参照要求が転送される。
なお、従来技術として以下の技術がある。管理装置が、複数の処理装置の識別子jと、一以上の完全データ集合i毎に、当該完全データ集合に所属するデータを記憶する一以上のデータ装置の識別子(データ装置リストi)、を取得する。そして、取得した各処理装置と各データ装置間の単位データ量毎の通信負荷に基づいて、各処理装置が、各完全データ集合の単位データ量を、データ装置リスト内のデータ装置から受信する通信負荷cijを含むc’ijを算出する。そして、各処理装置が各完全データ集合を受信する0以上の通信量fijを、fijc’ijを含む値の所定和が最小となるように決定する。
また、従来技術として、以下の技術がある。各ノードは、自ノードが保持すべきターゲットデータの値域を求めるための第1の識別子と、メッセージを受信したノードが、そのメッセージを他ノードに転送する転送経路の決定に用いる第2の識別子とを有する。また、各ノードは、第1の識別子を基に決定した値域に属するところの、第3の識別子によって特定されるターゲットデータを保持する保持手段と、第2の識別子が含まれる経路情報を用いてメッセージを転送すべき他ノードを決定する転送手段とを備える。そして、転送手段は第1乃至第3の少なくとも何れかの識別子を自ノードに受信するのに応じて、その識別子を検索キーとして、経路情報を参照した結果、対応する他ノードが存在する場合には該他ノードにメッセージを転送する。
また、従来技術として、以下の技術がある。1つ以上の分散処理装置(ノード)によって構成される分散処理システムにおいて、あるノード(比較ノード)が担当する処理の一部を分担させる候補となるノードを候補ノードとする。そして、候補ノードが担当している処理の全てを1つ以上のノード(代行ノード)を用いて代行させる代行ノード集合を作成し、代行ノード集合が候補ノードの処理を代行する場合の各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を求める。そして、各代行ノードの代行後負荷予測値が所定の条件を満たす場合に、候補ノードの処理を代行ノード集合に代行させて候補ノードを空きノードとすると共に、比較ノードが担当する処理の一部を、空きノードとなった候補ノードに分担させる負荷分散を実行する。
国際公開第2011/074699号 特開2012−43330号公報 特開2013−149069号公報
キーとバリューの組合わせでデータを複数のサーバで分散管理する分散データベースシステムでは、あるサーバへのアクセスが他のサーバと比較して非常に多くなったとき、サーバの低負荷対策の1つとしてデータの移動が行われる。ただし、データを他のサーバに移動する場合には、サーバ毎に管理するキーの範囲を変更する必要がある。
図20は、サーバ毎に管理するキーの範囲の変更を説明するための図である。図20は、5台のサーバでキー空間が分割される場合を示す。図20に示すように、サーバ93が管理するデータ91のアクセス数が多く、サーバ93のDB(Data Base:データベース)プロセス負荷(データベース処理の負荷)が高くなり、サーバ93の負荷が増加すると、データ91が低負荷のサーバ94に移動される。このとき、サーバ毎に管理するキーの範囲は連続する必要があるため、データ92もデータ91とともに移動される。そして、サーバ93が管理するキーの範囲及びサーバ94が管理するキーの範囲が変更される。
各サーバは、サーバが管理するキーの範囲が登録されたルーティング・テーブルを備えるため、各サーバが管理するキーの範囲を変更する場合には、各サーバのルーティング・テーブルを更新する必要がある。したがって、データ91を移動すると、関連するデータ92の移動及びルーティング・テーブルの更新に時間がかかるという問題がある。
本発明は、1つの側面では、データの移動に伴う関連データの移動及びルーティングテーブルの更新を不要とし、データ移動の処理時間を短縮することを目的とする。
1つの態様では、データ管理プログラムは、複数のデータを管理する複数の装置それぞれからデータへのアクセス状況を取得し、各装置の出力負荷及び入力負荷を計算し、出力負荷又は入力負荷が最も高い装置を移動元装置として特定するとともに、所定期間のデータへのアクセス状況から移動すべきデータと移動先装置を特定する処理をコンピュータに実行させる。そして、データ管理プログラムは、特定した移動元装置と特定した移動先装置との間のデータの移動、及び、移動元装置と移動データと移動先装置とを記憶する移動テーブルの更新を移動元装置と移動先装置に指示する処理をコンピュータに実行させる。
また、他の態様では、データ管理プログラムは、複数のデータを管理する複数の装置それぞれからデータへのアクセス状況を取得し、所定期間のデータへのアクセス状況から移動すべきデータと移動先装置を特定し、移動すべきデータを保持する移動元装置と特定した移動先装置との間のデータの移動、及び、移動元装置と移動データと移動先装置とを記憶する移動テーブルの更新を移動元装置と移動先装置に指示する処理をコンピュータに実行させる。そして、前記特定する処理は、移動元装置から移動先装置へ移動データに関する要求を転送する負荷が移動元装置から移動先装置へ移動データを転送する負荷より小さい場合にデータを移動すべきと判断して移動データを特定する。
また、他の態様では、データ管理プログラムは、複数のデータを管理する複数の装置それぞれからデータへのアクセス状況を取得し、所定期間のデータへのアクセス状況から移動すべきデータと移動先装置を特定し、移動すべきデータを保持する移動元装置と特定した移動先装置との間のデータの移動、及び、移動元装置と移動データと移動先装置とを記憶する移動テーブルの更新を移動元装置と移動先装置に指示する処理をコンピュータに実行させる。そして、前記複数の装置は、スイッチ及びルータを介して接続される。そして、前記特定する処理は、移動元装置を除いて負荷の低い装置から順番に移動先装置を特定し、特定した移動先装置に移動データを移動することができない場合には、該移動先装置と同じスイッチの配下にある装置、該移動先装置と同じルータの配下にある他のスイッチの配下にある装置の順番で移動先装置を特定する。
1つの側面では、データ移動の処理時間を短縮することができる。
図1は、実施例1に係る分散データベースシステムの構成を示す図である。 図2Aは、Chord方式を説明するための図である。 図2Bは、Kademlia方式を説明するための図である。 図3は、移動データ・ルーティング・テーブルを説明するための図である。 図4は、実施例1に係る分散データベースシステムの機能構成を示す図である。 図5は、実施例1に係るデータ管理装置の処理のフローを示すフローチャートである。 図6は、検索処理のフローを示すフローチャートである。 図7は、削除処理のフローを示すフローチャートである。 図8Aは、特定部がコスト計算に用いるマトリックスの一例を示す図である。 図8Bは、マトリックス作成のベースにしたネットワーク物理構成図である。 図8Cは、コスト計算方法を示す図である。 図8Dは、出力量及び入力量を示す図である。 図8Eは、各サーバの出力負荷及び入力負荷の計算結果を示す図である。 図8Fは、偏差値計算結果を示す図である。 図9は、特定部の機能構成を示す図である。 図10は、実施例2に係るデータ管理装置による処理のフローを示すフローチャートである。 図11は、特定部による処理のフローを示すフローチャートである。 図12は、マトリックス構築の処理のフローを示すフローチャートである。 図13は、データ収集の処理のフローを示すフローチャートである。 図14は、偏り判断の処理のフローを示すフローチャートである。 図15は、移動判断の処理のフローを示すフローチャートである。 図16は、移動データを特定する処理のフローを示すフローチャートである。 図17は、サーバ特定処理のフローを示すフローチャートである。 図18は、低負荷データの移動処理のフローを示すフローチャートである。 図19は、実施例に係るデータ管理プログラムを実行するコンピュータのハードウェア構成を示す図である。 図20は、サーバ毎に管理するキーの範囲の変更を説明するための図である。
以下に、本願の開示するデータ管理プログラム及びデータ管理方法の実施例を図面に基づいて詳細に説明する。なお、実施例は開示の技術を限定するものではない。
まず、実施例1に係る分散データベースシステムの構成について説明する。図1は、実施例1に係る分散データベースシステムの構成を示す図である。図1に示すように、実施例1に係る分散データベースシステム1は、複数台のサーバ2とデータ管理装置2aとを有する。複数台のサーバ2とデータ管理装置2aはネットワーク6により接続される。なお、図1では、分散データベースシステム1は4台のサーバ2を有するが、分散データベースシステム1はクラウドシステム等に含まれる任意の台数のサーバ2を有してよい。また、ネットワーク6は、例えばLAN(Local Area Network)である。
サーバ2は、他のサーバ2とデータを分担して管理する装置であり、DB3とルーティング・テーブル4と移動データ・ルーティング・テーブル5を有する。DB3は、サーバ2が担当するキー範囲のデータを記憶する。ルーティング・テーブル4は、自身を含めいくつかのサーバ2が管理するキーの範囲がサーバ2の識別子と対応付けられて登録されたテーブルである。ルーティング・テーブル4を用いたルーティング方式には、Chord方式、Kademlia方式等がある。
図2Aは、Chord方式を説明するための図である。Chord方式では、各サーバ2にハッシュ値が割り当てられ、ハッシュ値の昇降順にサーバ2がソーティングされる。図2Aでは、6台のサーバ2にそれぞれ1〜6のいずれかが割り当てられ、各サーバ2は、割り当てられたハッシュ値のノードで示される。
そして、登録されるデータにもハッシュ値が割り当てられ、割り当てられたハッシュ値が各サーバ2に割り当てられたハッシュ値に小さい方向で近いサーバ2にデータが登録される。例えば、データのハッシュ値が1.5である場合には、ハッシュ値が小さい方向で近いサーバ2は、ノード#1である。ここで、ノード#1は、割り当てられたハッシュ値が1であるノードを表す。
各サーバ2は、ハッシュ値の昇順方向で所定の数のサーバ2についてハッシュ値とサーバ2の識別子とを対応付けたルーティング・テーブル4を管理し、いくつかのサーバ2を経由すればデータを記憶するサーバ2にたどり着けるように管理される。例えば、ノード#1は、ノード#2とノード#3について、サーバ2の識別子をルーティング・テーブル4で管理する。図2Aにおいて、各ノードに隣接する(m,n)は、隣接するノードがノード#m〜ノード#nの識別子をルーティング・テーブル4で管理することを示す。
例えば、ハッシュ値4.3のデータ取得がノード#1に要求されると、ノード#1のルーティング・テーブル4に基づきノード#3にたどり着くことが可能である。そして、ノード#3のルーティング・テーブル4に基づき、ハッシュ値4.3のデータを記憶するノード#4にたどり着くことが可能である。すなわち、Chord方式では、図2Aの破線矢印で示す方向にルーティングが行われる。また、ノード#4のハッシュ値を4.5に更新する場合、ノード#4を管理するノード#2とノード#3のルーティング・テーブル4の更新が発生する。
図2Bは、Kademlia方式を説明するための図である。Kademlia方式では、各サーバ2は、ハッシュ値の昇順及び降順の2つの方向でいくつかのサーバ2についてサーバ2の識別子をルーティング・テーブル4で管理する。したがって、Kademlia方式では、各サーバ2は、Chord方式より短時間でデータを記憶するサーバ2にたどり着けるように管理される。例えば、ノード#1は、昇順方向のノード#2とノード#3、及び降順方向のノード#5とノード#6について、サーバ2の識別子をルーティング・テーブル4で管理する。図2Bにおいて、各ノードに隣接する(i,j,m,n)は、隣接するノードがノード#i〜ノード#j及びノード#m〜ノード#nの識別子をルーティング・テーブル4で管理することを示す。
例えば、ハッシュ値5.3のデータ取得がノード#1に要求されると、ノード#1のルーティング・テーブル4に基づき、ハッシュ値5.3のデータを記憶するノード#5にたどり着くことが可能である。Kademlia方式では、図2Bの破線矢印で示すように、双方向にルーティングが行われる。また、ノード#4のハッシュ値を4.5に更新する場合、ノード#4を管理する4つのノードすなわちノード#2、ノード#3、ノード#5及びノード#6のルーティング・テーブル4の更新が発生する。
図1に戻って、移動データ・ルーティング・テーブル5は、移動されたデータに関する情報が登録されるテーブルである。図3は、移動データ・ルーティング・テーブル5を説明するための図である。図3は、サーバ#1のDB3に記憶されたデータ“b”がサーバ#2に移動される場合を示す。サーバ#1のIPアドレスは「192.168.0.1」であり、サーバ#2のIPアドレスは「192.168.0.5」である。IPアドレスはサーバIDすなわちサーバ2を識別する識別子として用いられる。データ“b”のハッシュ値は「2002」である。
サーバ#1のルーティング・テーブル4には、自装置のハッシュ値範囲として「2001−2003」が登録される。また、サーバ#1のルーティング・テーブル4には、IPアドレス「192.168.0.2」のハッシュ値範囲として「0001−1000」が、IPアドレス「192.168.0.128」のハッシュ値範囲として「1001−2000」が登録される。サーバ#2のルーティング・テーブル4には、自装置のハッシュ値範囲として「5001−6000」が登録される。また、サーバ#2のルーティング・テーブル4には、IPアドレス「192.168.0.9」のハッシュ値範囲として「3001−4000」が、IPアドレス「192.168.0.15」のハッシュ値範囲として「4001−5000」が登録される。これらのルーティング・テーブル4は、データ“b”の移動後も更新されない。
移動データ・ルーティング・テーブル5には、移動先リストと移動元リストが含まれる。移動先リストは、ハッシュキーと移動先サーバIDの組のリストである。ここで、ハッシュキーはハッシュ値である。移動元リストは、ハッシュキーと移動元サーバIDの組のリストである。データ“b”がサーバ#1からサーバ#2に移動されると、サーバ#1の移動先リストに、データ“b”のハッシュキー「2002」とサーバ#2のIPアドレス「192.168.0.5」が追加される。また、サーバ#2の移動元リストに、データ“b”のハッシュキー「2002」とサーバ#1のIPアドレス「192.168.0.1」が追加される。
このように、移動されたデータに関する情報を移動データ・ルーティング・テーブル5に登録することによって、分散データベースシステム1は、ルーティング・テーブル4の更新を不要とすることができる。
図1に戻って、データ管理装置2aは、各サーバ2の負荷を取得し、負荷の高いサーバ2、移動すべきデータ及び移動先のサーバ2を特定する。そして、データ管理装置2aは、移動元のサーバ2及び移動先のサーバ2にデータの移動と移動データ・ルーティング・テーブル5の更新を指示する。
次に、実施例1に係る分散データベースシステム1の機能構成について説明する。図4は、実施例1に係る分散データベースシステム1の機能構成を示す図である。図4では、分散データベースシステム1は、n台のサーバ2を有する。図4に示すように、サーバ2は、DB3と、記憶部3aと、データ要求処理部31と、移動データ制御部32とを有する。データ管理装置2aは、取得部21と、特定部22と、移動指示部23とを有する。
記憶部3aは、サーバ2が担当するデータの管理に用いられるデータを記憶する。記憶部3aは、ルーティング・テーブル4と、移動データ・ルーティング・テーブル5と、データ・プロパティ・テーブル8とを記憶する。データ・プロパティ・テーブル8は、ハッシュ値にアクセス頻度とデータサイズを対応付ける。アクセス頻度は、書込み数と読出し数である。
データ要求処理部31は、ネットワーク6を介してクライアント装置又は他のサーバ2から送られてくるデータアクセス要求を記憶部3aを用いて処理する。具体的には、データ要求処理部31は、ルーティング・テーブル4と移動データ・ルーティング・テーブル5を参照して、データアクセス要求を処理する。また、データ要求処理部31は、処理したデータアクセス要求に基づいてデータ・プロパティ・テーブル8を更新する。また、データ要求処理部31は、移動データ制御部32の指示に基づいてデータの移動を行う。
移動データ制御部32は、データ管理装置2aの指示に基づいてサーバ2間のデータの移動に関する制御を行う。具体的には、移動データ制御部32は、データ管理装置2aに指示されたデータの移動をデータ要求処理部31に指示する。また、移動データ制御部32は、移動データに基づいて移動データ・ルーティング・テーブル5を更新する。
取得部21は、一定の時間間隔で各サーバ2からハッシュ値毎のアクセス頻度、データサイズを取得する。特定部22は、取得部21が取得したハッシュ値毎のアクセス頻度、データサイズ等に基づいて、移動するデータ、データの移動元及び移動先を特定する。移動指示部23は、特定部22が特定したデータの移動、移動データ・ルーティング・テーブル5の更新をデータの移動元のサーバ2及びデータの移動先のサーバ2に指示する。
次に、実施例1に係るデータ管理装置2aの処理のフローについて説明する。図5は、実施例1に係るデータ管理装置2aの処理のフローを示すフローチャートである。図5に示すように、取得部21が、一定の時間間隔で各サーバ2からハッシュ値毎のアクセス頻度、データサイズを取得するデータ取得処理を行う(ステップS1)。
そして、特定部22が、ハッシュ値毎のアクセス頻度、データサイズ等に基づいて、移動するデータ及びデータの移動先を特定する特定処理を行う(ステップS2)。そして、移動指示部23が、移動元のサーバ2及び移動先のサーバ2にデータの移動を指示する(ステップS3)。なお、以下では、移動元のサーバ2を移動元サーバA、移動先のサーバ2を移動先サーバCとする。また、過去にデータが移動されている場合の移動先をサーバBとする。
そして、移動指示部23は、移動元サーバAに問い合わせることによって、移動元サーバAの移動データ・ルーティング・テーブル5の移動元リストに、移動データのハッシュキーXが登録されているか否かを判定する(ステップS4)。その結果、移動データのハッシュキーXが登録されていない場合には、移動指示部23は、移動データ・ルーティング・テーブル5の移動先リストに、ハッシュキーXと移動先サーバCのサーバIDを登録するように、移動元サーバAに指示する(ステップS5)。そして、移動指示部23は、移動データ・ルーティング・テーブル5の移動元リストに、ハッシュキーXと移動元サーバAのサーバIDを登録するように、移動先サーバCに指示する(ステップS6)。
一方、ハッシュキーXが登録されている場合には、移動指示部23は、ハッシュキーXに対応して登録されたサーバIDのサーバBに移動データの削除と移動データ・ルーティング・テーブル5のハッシュキーXに関するエントリーの削除を指示する(ステップS7)。そして、移動指示部23は、移動データ・ルーティング・テーブル5の移動元リストに、ハッシュキーXと移動元サーバAのサーバIDを登録するように、移動先サーバCに指示する(ステップS8)。そして、移動指示部23は、移動データ・ルーティング・テーブル5の移動先リストに登録されているハッシュキーXのサーバIDを移動先サーバCに書き換えるように、移動元サーバAに指示する(ステップS9)。
このように、移動指示部23は、データの移動と移動データ・ルーティング・テーブル5の更新を移動元サーバA及び移動先サーバCに指示し、データの削除と移動データ・ルーティング・テーブル5の更新をサーバBに指示する。したがって、データ管理装置2aは、ルーティング・テーブル4の更新と不要なデータの移動をなくすことができる。
次に、検索処理のフローについて説明する。図6は、検索処理のフローを示すフローチャートである。図6に示すように、クライアント装置からデータの検索依頼を受信したサーバ2は、検索データのハッシュキーを基に、ルーティング・テーブル4を検索し、ルーティング先と連携して、データを登録する登録サーバ2までルーティングする(ステップS11)。
そして、登録サーバ2は、移動データ・ルーティング・テーブル5に検索データのハッシュキーが登録されているかを調査する(ステップS12)。そして、登録サーバ2は、移動データ・ルーティング・テーブル5に検索データのハッシュキーが登録されているか否かを判定し(ステップS13)、登録されていない場合には、DB3に登録されているデータの値を検索結果として返信する(ステップS14)。
一方、移動データ・ルーティング・テーブル5に検索データのハッシュキーが登録されている場合には、登録サーバ2は、ハッシュキーに対応する移動先サーバ2に検索依頼を転送する(ステップS15)。そして、検索依頼を受けたサーバ2は、DB3に登録されているデータの値を検索結果として返信する(ステップS16)。
このように、データの検索依頼を受信したサーバ2が移動データ・ルーティング・テーブル5を参照してデータを記憶するサーバ2へ検索依頼を転送することによって、データ管理装置2aは、ルーティング・テーブル4の更新を不要とすることができる。なお、クライアント装置からデータの修正依頼を受信した場合には、分散データベースシステム1は、ステップS14及びステップS16で検索結果を返信する代わりにDB3を修正して修正完了を返信する点を除いて同様のフローで処理を行う。
次に、削除処理のフローについて説明する。図7は、削除処理のフローを示すフローチャートである。図7に示すように、クライアント装置からデータの削除依頼を受信したサーバ2は、削除データのハッシュキーを基に、ルーティング・テーブル4を検索し、ルーティング先と連携して、データを登録する登録サーバ2までルーティングする(ステップS21)。
そして、登録サーバ2は、移動データ・ルーティング・テーブル5に削除データのハッシュキーが登録されているかを調査する(ステップS22)。そして、登録サーバ2は、移動データ・ルーティング・テーブル5にハッシュキーが登録されているか否かを判定し(ステップS23)、登録されていない場合には、DB3に登録されているデータの値を削除し削除結果として返信する(ステップS24)。
一方、移動データ・ルーティング・テーブル5にハッシュキーが登録されている場合には、登録サーバ2は、ハッシュキーに対応する移動先サーバ2に削除依頼を転送する(ステップS25)。そして、削除依頼を受けた移動先サーバ2は、移動データ・ルーティング・テーブル5の削除データの移動元サーバ2に対しデータを削除した旨を通知する(ステップS26)。
そして、移動元サーバ2は、移動データ・ルーティング・テーブル5から削除データのハッシュキー及び移動先サーバ2のサーバIDを削除する(ステップS27)。そして、削除依頼を受けた移動先サーバ2は、移動データ・ルーティング・テーブル5から削除データのハッシュキー及び移動元サーバ2のサーバIDを削除する(ステップS28)。そして、削除依頼を受けた移動先サーバ2は、DB3に登録されているデータの値を削除し削除結果として返信する(ステップS29)。
このように、データが移動された場合に、移動先サーバ2がデータを削除するとともに、移動元サーバ2及び移動先サーバ2が移動データ・ルーティング・テーブル5から削除データに関する情報を削除する。したがって、分散データベースシステム1は、移動データ・ルーティング・テーブル5から不要になった情報を削除することができる。
上述してきたように、実施例1では、データ管理装置2aの移動指示部23は、移動元サーバ2及び移動先サーバ2にデータの移動を指示するとともに、移動データ・ルーティング・テーブル5の更新を指示する。そして、移動元サーバ2及び移動先サーバ2の移動データ制御部32は、データの移動を制御するとともに、移動データに関して移動データ・ルーティング・テーブル5を更新する。したがって、分散データベースシステム1は、移動データ以外のデータの移動、及び、ルーティング・テーブル4の更新を不要とすることができ、データ移動の処理時間を短縮することができる。
実施例2では、特定部22の一例として、マトリックスを用いたコスト計算を行うことによって、移動データ、移動元サーバ2及び移動先サーバ2を特定する特定部22aについて説明する。ここで、コストとは、分散データベースシステム1の処理負荷である。コストには、サーバ2間のデータ・アクセスコスト、ネットワークコスト、サーバコストが含まれる。特定部22aは、分散データベースシステム1のコストが最小になるように、すなわち、分散データベースシステム1の性能が最大になるように、移動データ、移動元サーバ2及び移動先サーバ2を特定する。
図8A〜図8Fは、マトリックスを用いたコスト計算方法を説明するための図である。図8Aは、特定部22aがコスト計算に用いるマトリックスの一例を示す図であり、図8Bは、マトリックス作成のベースにしたネットワーク物理構成図である。図8において、RT#1はルータを示し、SW#1〜SW#3はスイッチを示す。図8Bに示すように、サーバ#1〜#5で表される5台のサーバ2が3台のスイッチ及びルータを介して接続される。
図8Aに示すように、5台のサーバ2を縦及び横に配置することによりマトリックスが作成される。行がjで列がiの要素は、サーバ#jからサーバ#iへ送信されるデータ量、サーバ#jからサーバ#iの経路にあるスイッチ(SW)数及びルータ(RT)数を表す。
データ量は、マトリックスの各要素を表す円の上半分に示され、左側から上側のサーバ2へのDB通信量を表す。単位はメガバイト(MB)である。上側サーバ2へのデータ量の総和がそのサーバ2の入力量であり、左側サーバ2からのデータ量の総和がそのサーバ2の出力量である。SW数はマトリックスの各要素を表す円の左下半分に示され、RT数はマトリックスの各要素を表す円の右下半分に示される。
例えば、サーバ#2からサーバ#1への通信については、DB通信量は20MBであり、経由するスイッチの数は1であり、経由するルータの数は0である。サーバ#1の入力量は、1列のデータ量の総和であり、20+40+10+60=130MBである。サーバ#1の出力量は、1行のデータ量の総和であり、10+30+20+15=75MBである。
図8Cは、コスト計算方法を示す図である。図8Cに示すように、サーバ数をkとすると、サーバ#jの出力負荷は、式(1)により、サーバ#j出力負荷=Σ[m=1..k](データ量jm×(SWレイテンシ係数×SW数jm+RTレイテンシ係数×RT数jm))で定義される。ここで、SWレイテンシ係数はスイッチによる遅れを表す係数であり、RTレイテンシ係数はルータによる遅れを表す係数である。また、サーバ#iの入力負荷は、式(2)により、サーバ#i入力負荷=Σ[n=1..k](データ量ni×(SWレイテンシ係数×SW数ni+RTレイテンシ係数×RT数ni))で定義される。
また、データ移動に伴う要求転送負荷に関して、移動先に要求を転送する時間は、式(3)により、データ移動に伴う要求転送負荷(要求転送量)=アクセス数/単位時間×要求情報量(バイト)と定義される。
そして、サーバ負荷[i,j]が要求転送量より大きければデータの移動及び移動データ・ルーティング・テーブル5の更新が妥当であると判断される。ここで、サーバ負荷[i,j]は、サーバ#jからサーバ#iへのデータの転送負荷である。また、データ移動に伴う帯域変動による帯域利用率は許容範囲内でなければならない。なお、データ移動に伴う負荷については、データ移動はバックグラウンドでおこなわれるため低いと判断される。
図8Dは、出力量及び入力量を示す図である。図8Dのネットワーク物理構成図において、サーバ2とスイッチを接続する線の上の値はサーバ2の出力量を示し、下の値はサーバ2の入力量を示す。また、スイッチとルータを接続する線の上の値はスイッチの出力量を示し、下の値はスイッチの入力量を示す。
スイッチの出力量は、接続するサーバ2間の通信はスイッチの外に影響しないので、接続するサーバ2の出力量の総和から、接続するサーバ2間の通信量を引いたものである。また、スイッチの入力量は、接続するサーバ2間の通信はスイッチの外から影響を受けないので、接続するサーバ2の入力量の総和から、接続するサーバ2間の通信量を引いたものである。
例えば、スイッチ#1の出力量は、(サーバ#1の出力量−サーバ#1からサーバ#2への通信量)+(サーバ#2の出力量−サーバ#2からサーバ#1への通信量)=(75−10)+(85−20)=65+65=130である。また、スイッチ#1の入力量は、(サーバ#1の入力量−サーバ#2からサーバ#1への通信量)+(サーバ#2の入力量−サーバ#1からサーバ#2への通信量)=(130−20)+(90−10)=110+80=190である。
図8Eは、各サーバ2の出力負荷及び入力負荷の計算結果を示す図である。各サーバ2の出力負荷は、図8Dに示した各サーバ2の出力量と図8Cに示した式(1)から計算され、各サーバ2の入力負荷は、図8Dに示した各サーバ2の入力量と図8Cに示した式(2)から計算される。なお、ここでは、SWレイテンシ係数及びRTレイテンシ係数は、それぞれ0.01及び0.012としている。
特定部22aは、各サーバ2の出力負荷及び入力負荷を計算した後、負荷の高いサーバ2を特定する。図8Eでは、サーバ#5の出力負荷が最も高い。そして、特定部22aは、次に負荷の高いサーバ2を特定する。図8Eでは、サーバ#1の入力負荷が高い。したがって、サーバ#5上のデータをサーバ#1に移動すれば、サーバ#5の出力負荷が軽減される。そこで、特定部22aは、サーバ#1でDB3を記憶するHDD(Hard Disk Drive)に余裕があれば、サーバ#5上のデータをサーバ#1に移動すると決定し、余裕がなければ、サーバ#5上のデータを別のサーバ2に移動すると決定する。
サーバ#1のHDDに余裕がないとすると、サーバ#1への最短パスを有するサーバ#2が移動先の候補となる。サーバ#2とSW#1との間の帯域に余裕があれば、特定部22aは、サーバ#5上のデータをサーバ#2に移動すると決定する。サーバ#2とSW#1との間の帯域に余裕がなく、RT#1とSW#2との間の帯域及びSW#2とサーバ#4との間の帯域に余裕があれば、特定部22aは、サーバ#5上のデータをサーバ#4に移動すると決定する。
なお、特定部22aは、負荷の高いサーバ2を特定する場合に、偏差値を用いる。図8Fは、偏差値計算結果を示す図である。図8Fの出力偏差値及び入力偏差値は、図8Eの出力負荷及び入力負荷に基づいてそれぞれ算出されたものである。図8Fに示すように、出力負荷については、サーバ#5の偏差値が最高であり、入力負荷については、サーバ#1の偏差値が最高である。
次に、特定部22aの機能構成について説明する。図9は、特定部22aの機能構成を示す図である。図9に示すように、特定部22aは、マトリックス構築部41と、データ収集部42と、偏り判断部43と、移動判断部44とを有する。
マトリックス構築部41は、特定部22aがコスト計算に用いるマトリックスを作成する。マトリックス構築部41は、ネットワーク物理構成情報、又は、スイッチやルータの機器接続情報等を含むMIB(Management Information Base)情報を基にマトリックスを作成する。
データ収集部42は、サーバ2間でやり取りされているデータについて送信データ量を一定の周期で各サーバ2から取得し、マトリックスに反映させる。
偏り判断部43は、マトリックスに基づいて図8Cに示した式(1)及び式(2)を用いて各サーバ2の出力負荷及び入力負荷をそれぞれ計算し、各サーバ2の出力負荷及び入力負荷の偏差値を計算する。そして、偏り判断部43は、各サーバ2の出力負荷及び入力負荷の偏差値を所定の閾値と比較して偏りがあるか否かを判断し、最も偏りがあるサーバ2をデータの移動元サーバ2として特定する。
移動判断部44は、偏り判断部43により特定された移動元サーバ2に対して、移動データを特定するように指示する。そして、移動判断部44は、データの移動により分散データベースシステム1の負荷が減少するか否か、及び、データの移動によりネットワーク6の関連個所の帯域が許容範囲内であるか否かを移動条件として判定する。そして、移動判断部44は、移動条件が満たされた場合には、データの移動を行うと判断し、移動条件が満たされない場合には、データの移動は行わないと判断する。
次に、実施例2に係るデータ管理装置による処理のフローについて説明する。図10は、実施例2に係るデータ管理装置による処理のフローを示すフローチャートである。図10に示すように、実施例2に係るデータ管理装置は、定期的にCPU(Central Processing Unit)負荷やDBプロセス負荷を収集し(ステップS41)、CPU負荷の内、DBプロセス負荷が一定率以上占めているか否かを判定する(ステップS42)。
その結果、DBプロセス負荷が一定率以上占めない場合には、実施例2に係るデータ管理装置は、処理を終了する。一方、DBプロセス負荷が一定率以上占める場合には、実施例2に係るデータ管理装置は、移動元サーバ2、移動データ及び移動先サーバ2を特定して移動条件が満たされるか否かを判断する特定処理を行う(ステップS43)。そして、移動条件が満たされている場合に、実施例2に係るデータ管理装置は、データの移動及び移動データ・ルーティング・テーブル5の更新を指示する移動指示処理を行う(ステップS44)。
このように、実施例2に係るデータ管理装置は、移動条件が満たされている場合に、移動指示処理を行うことによって、分散データベースシステム1の負荷を減少することができる。
次に、特定部22aによる処理のフローについて説明する。図11は、特定部22aによる処理のフローを示すフローチャートである。図11に示すように、マトリックス構築部41が、コスト計算に用いるマトリックスを構築するマトリックス構築の処理を行う(ステップS51)。そして、データ収集部42が、全サーバ2からデータ量を収集するデータ収集の処理を行う(ステップS52)。
そして、偏り判断部43が、偏差値を用いてサーバ2の負荷の偏りを判断する偏り判断の処理を行う(ステップS53)。そして、サーバ2の負荷に偏りがあると、移動判断部44が、データを移動するか否かを判断する移動判断の処理を行う(ステップS54)。
このように、サーバ2の負荷に偏りがあると、移動判断部44が、データを移動するか否かを判断することによって、特定部22aは、データを適切に移動することができる。
次に、マトリックス構築の処理のフローについて説明する。図12は、マトリックス構築の処理のフローを示すフローチャートである。図12に示すように、マトリックス構築部41は、ネットワーク物理構成情報、もしくは、スイッチやルータの機器接続情報等を含むMIB情報を基に、サーバ2、スイッチ、ルータ等の構成情報を取得する(ステップS61)。
そして、マトリックス構築部41は、取得した構成情報を基に、コスト計算用のマトリックスに、各サーバ2間のスイッチ数及びルータ数を登録する(ステップS62)。
このように、マトリックス構築部41が、構成情報を基にマトリックスを構築し、スイッチ数及びルータ数をマトリックスに登録することによって、特定部22aは、マトリックスを用いてコスト計算を行うことができる。
次に、データ収集の処理のフローについて説明する。図13は、データ収集の処理のフローを示すフローチャートである。図13に示すように、データ収集部42は、送信データ取得周期に達したか否かを判定し(ステップS71)、達していない場合には、送信データ取得周期になるまで判定を繰り返す。
そして、データ収集部42は、コスト計算用のマトリックスに基づき、サーバ2間でやり取りされているデータについて送信データ量を各サーバ2から取得し、データ量としてマトリックスに反映する(ステップS72)。
そして、データ収集部42は、全てのサーバ2から送信データ量を取得したか否かを判定し(ステップS73)、取得した場合には、処理を終了し、取得していないサーバ2がある場合には、全てのサーバ2から取得するまで判定を繰り返す。
このように、データ収集部42がデータ量をマトリックスに登録することによって、特定部22aは、マトリックスを用いてコスト計算を行うことができる。
次に、偏り判断の処理のフローについて説明する。図14は、偏り判断の処理のフローを示すフローチャートである。図14に示すように、偏り判断部43は、コスト計算用のマトリックスから図8Cの式(1)及び式(2)を用いて各サーバ2の出力負荷及び入力負荷を計算する(ステップS81)。
そして、偏り判断部43は、各サーバ2の出力負荷を用いて各サーバ2の出力負荷の偏差値を計算し、各サーバ2の入力負荷を用いて、各サーバ2の入力負荷の偏差値を計算する(ステップS82)。そして、偏り判断部43は、偏差値に基づいて、出力負荷又は入力負荷に偏りがあるか否かを判定し(ステップS83)、偏りがない場合には、特定部22aは、図15に示す移動判断の処理をスキップするように移動する。一方、偏りがある場合には、特定部22aは、最も偏りがあるサーバ2をデータの移動元サーバ2として図15に示す移動判断の処理に移動する。
このように、偏り判断部43が偏差値に基づいて負荷の偏りを判断することによって、特定部22aは、データ移動の必要性を判断することができる。
次に、移動判断の処理のフローについて説明する。図15は、移動判断の処理のフローを示すフローチャートである。図15に示すように、移動判断部44は、移動元サーバ2に移動データの特定を指示し(ステップS91)、図8Cの式(3)を用いて要求転送量を計算する(ステップS92)。
そして、移動判断部44は、移動先サーバ2を特定するサーバ特定処理を行い(ステップS93)、単位時間に移動データが移動元サーバ2から移動先サーバ2へ移動するサイズが要求転送量を超えているか否かを判定する(ステップS94)。その結果、当該サイズが要求転送量を超えていない場合には、移動判断部44は、データを移動すると判断する。
一方、当該サイズが要求転送量を超えている場合には、移動判断部44は、移動先サーバ2のHDDの容量に基づいて、移動先サーバ2へデータの移動が可能か否かを判定する(ステップS95)。その結果、移動が可能である場合には、移動先サーバ2へデータを移動すると判断する(ステップS96)。
一方、移動先サーバ2へデータの移動が可能でない場合には、移動判断部44は、移動先サーバ2と同じSW配下のサーバ2で負荷の低いサーバ2から順に移動可能性を調査する(ステップS97)。そして、移動判断部44は、移動可能なサーバ2があるか否かを判定し(ステップS98)、移動可能なサーバ2がある場合には、移動先サーバ2と同じSW配下で移動可能なサーバ2を新たに移動先サーバ2と判断する(ステップS99)。
一方、同じSW配下で移動可能なサーバ2がない場合には、移動判断部44は、移動先サーバ2と同じRT配下のSWの内、移動先サーバ2を接続するSWを除いたSWの配下のサーバ2で負荷の低いサーバ2から順に移動可能性を調査する(ステップS100)。そして、移動判断部44は、移動可能なサーバ2があるか否かを判定する(ステップS101)。その結果、移動可能なサーバ2がある場合には、移動先サーバ2と同じRT配下のSWの内、移動先サーバ2を接続するSWを除いたSWの配下で移動可能なサーバ2を新たに移動先サーバ2と判断する(ステップS102)。一方、移動可能なサーバ2がない場合には、移動判断部44は、データを移動しないと判断する。
このように、移動判断部44は、サーバ特定処理により特定した移動先サーバ2へデータを移動できない場合に、移動先サーバ2と同じSW配下、RT配下のサーバ2への移動可能性を順番に調査することによって、適切な移動先サーバ2を見つけることができる。なお、ステップS91により移動データが複数特定された場合には、ステップS92〜ステップS102の処理が各移動データに対して行われる。
次に、移動データを特定する処理のフローについて説明する。図16は、移動データを特定する処理のフローを示すフローチャートである。図16に示すように、サーバ2は、ハッシュキー毎に、単位時間当たりの書込み数及び読出し数をデータ・プロパティ・テーブル8に記録する(ステップS111)。
そして、移動データの特定依頼を受けると、サーバ2は、データ・プロパティ・テーブル8の記録に基づき、依頼に含まれる負荷減量になるように、書込み数と読出し数の多いデータを上位から選択する(ステップS112)。ここで、依頼に含まれる負荷減量は、書込み数と読出し数を20%減らせ等を指定する。そして、サーバ2は、選択したデータのハッシュキーリストをデータ管理装置に通知する(ステップS113)。
このように、サーバ2は、ハッシュキー毎に、単位時間当たりの書込み数及び読出し数をデータ・プロパティ・テーブル8に記録するので、移動データの特定依頼を受けた際に、単位時間当たりの書込み数及び読出し数に基づいて移動データを特定することができる。
次に、サーバ特定処理のフローについて説明する。図17は、サーバ特定処理のフローを示すフローチャートである。図17に示すように、移動判断部44は、特定された移動データのハッシュキーに対応する、単位時間の書込み数及び読出し数に、同ハッシュキーに対応するデータサイズを積算し、データ移動によってネットワーク6が影響を受ける通信量を計算する(ステップS121)。
そして、移動判断部44は、移動元以外でサーバ負荷が一番少ないサーバ2を移動先候補として選択する(ステップS122)。ここで、サーバ負荷は、単位時間の書込み数と読出し数である。そして、移動判断部44は、データを移動しても移動先候補の負荷は許容範囲内か否かを判定する(ステップS123)。
その結果、許容範囲内でない場合には、移動判断部44は、次にサーバ負荷が少ないサーバ2を移動先候補として選択し(ステップS124)、移動元以外のサーバ2全てを調べたか否かを判定する(ステップS125)。その結果、移動元以外のサーバ2全てを調べた場合には、移動判断部44は、移動先サーバ2がないと判断して処理を終了する。一方、移動元以外のサーバ2で調べていないサーバ2がある場合には、移動判断部44は、ステップS123に戻る。
また、ステップS123において、移動先候補の負荷が許容範囲内である場合には、移動判断部44は、移動先候補にデータを移動した場合の通信負荷を調べるために、計算した通信量を関係するSW−サーバ2間、RT−SW間の通信量に加算する(ステップS126)。そして、移動判断部44は、データを移動しても、関係するSW−サーバ2間、RT−SW間の通信量は許容範囲内か否かを判定し(ステップS127)、許容範囲内でない場合には、ステップS124に移動する。一方、許容範囲内である場合には、移動判断部44は、移動先候補を移動先サーバ2として特定する(ステップS128)。
このように、移動判断部44は、サーバ負荷と通信負荷に基づいて移動先サーバ2を特定することによって、データ移動にともなう分散データベースシステム1の性能低下を防ぐことができる。
上述してきたように、実施例2では、特定部22aは、コスト計算用のマトリックスを用いて各サーバ2の出力負荷及び入力負荷を計算し、計算した出力負荷及び入力負荷に基づいてデータの移動元サーバ2を特定する。したがって、特定部22aは、データの移動元サーバ2を適切に特定することができる。
また、実施例2では、特定部22aは、移動データが単位時間に移動元サーバ2から移動先サーバ2へ移動するサイズと要求転送量とを比較し、当該サイズが要求転送量より大きい場合に、データを移動すると判断する。したがって、特定部22aは、データ移動にともなう分散データベースシステム1の性能低下を防ぐことができる。
また、実施例2では、特定部22aは、サーバ特定処理により特定した移動先サーバ2へデータを移動できない場合に、移動先サーバ2と同じSW配下、RT配下のサーバ2の順番で新たな移動先サーバ2を特定する。したがって、特定部22aは、サーバ特定処理により特定した移動先サーバ2とできるだけ近い通信環境のサーバ2を新たな移動先サーバ2とすることができる。
実施例2では、最も負荷の高いサーバ2のデータを他のサーバ2に移すことによって分散データベースシステム1の性能を向上させる場合について説明した。一方、アクセスが少ない低負荷のデータをまとめることによっても分散データベースシステム1の性能を向上させることができる。そこで、実施例3では、低負荷データを移動する処理について説明する。なお、以下では、実施例3に係るデータ管理装置を単にデータ管理装置と呼ぶ。
図18は、低負荷データの移動処理のフローを示すフローチャートである。図18に示すように、データ管理装置は、全データに対してアクセス負荷をサーバ2から収集する(ステップS131)。そして、データ管理装置は、アクセスが少ない低負荷データの内、連続するキー空間の広いものを広い順にソートする(ステップS132)。ここで、低負荷データとは、例えばアクセス数が所定の閾値より小さいデータである。
そして、データ管理装置は、連続するキー空間の最も広いものに含まれるデータを移動対象データとする。そして、データ管理装置は、移動対象データのキー空間のハッシュ値の平均値を算出し、担当するキー空間のハッシュ値の平均値が算出した平均値と最も近いサーバ2を移動先サーバ2として選択する(ステップS133)。ただし、移動対象データの移動元のサーバ2は、移動先サーバ2から除外される。
そして、データ管理装置は、選択した移動先サーバ2が移動対象データを全て受け入れ可能か否かを判定し(ステップS134)、全ては受け入れ可能でない場合には、一部を受け入れ可能か否かを判定する(ステップS135)。その結果、一部でも受け入れ可能でない場合には、データ管理装置は、全てのサーバ2に対し受け入れの可能性を試したか否かを判定する(ステップS136)。その結果、データ管理装置は、全てのサーバ2に対し受け入れの可能性を試した場合には、処理を終了し、試していないサーバ2がある場合には、平均値が次に近いサーバ2を移動先サーバ2として選択し(ステップS137)、ステップS134に戻る。
一方、一部を受け入れ可能である場合には、データ管理装置は、移動元サーバ2及び移動先サーバ2に対して、受け入れ可能な移動対象データの移動と移動データ・ルーティング・テーブル5の更新を指示する。そして、データ管理装置は、移動できなかったデータを移動対象データとして特定し(ステップS138)、ステップS136へ移動する。
また、選択した移動先サーバ2が移動対象データを全て受け入れ可能である場合には、データ管理装置は、移動元サーバ2及び移動先サーバ2に対して、移動対象データの移動と移動データ・ルーティング・テーブル5の更新を指示する(ステップS139)。
上述してきたように、実施例3では、連続するキー空間が最も広い低負荷データを移動対象データとして移動することで、データ管理装置は、低負荷データをまとめることができ、分散データベースシステム1の性能を向上させることができる。
なお、実施例1〜3では、データ管理装置について説明したが、データ管理装置が有する構成をソフトウェアによって実現することで、同様の機能を有するデータ管理プログラムを得ることができる。そこで、データ管理プログラムを実行するコンピュータについて説明する。
図19は、実施例に係るデータ管理プログラムを実行するコンピュータのハードウェア構成を示す図である。図19に示すように、コンピュータ50は、メインメモリ51と、CPU52と、LANインタフェース53と、HDD54とを有する。また、コンピュータ50は、スーパーIO(Input Output)55と、DVI(Digital Visual Interface)56と、ODD(Optical Disk Drive)57とを有する。
メインメモリ51は、プログラムやプログラムの実行途中結果などを記憶するメモリである。CPU52は、メインメモリ51からプログラムを読出して実行する中央処理装置である。CPU52は、メモリコントローラを有するチップセットを含む。
LANインタフェース53は、コンピュータ50をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD54は、プログラムやデータを格納するディスク装置であり、スーパーIO55は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。DVI56は、液晶表示装置を接続するインタフェースであり、ODD57は、DVDの読み書きを行う装置である。
LANインタフェース53は、PCIエクスプレス(PCIe)によりCPU52に接続され、HDD54及びODD57は、SATA(Serial Advanced Technology Attachment)によりCPU52に接続される。スーパーIO55は、LPC(Low Pin Count)によりCPU52に接続される。
そして、コンピュータ50において実行されるデータ管理プログラムは、DVDに記憶され、ODD57によってDVDから読出されてコンピュータ50にインストールされる。あるいは、データ管理プログラムは、LANインタフェース53を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読出されてコンピュータ50にインストールされる。そして、インストールされたデータ管理プログラムは、HDD54に記憶され、メインメモリ51に読み出されてCPU52によって実行される。
また、実施例1〜3では、データ管理装置について説明したが、データを管理するサーバ2あるいはクラウドシステムに含まれる他のサーバ2がデータ管理プログラムを実行することによってデータ管理装置の機能を有してもよい。
また、実施例1〜3では、キーとバリューの組合わせでデータを複数のサーバで分散管理する分散データベースシステムについて説明したが、分散データベースシステムは、他の構成のデータを複数のサーバで分散管理してもよい。
1 分散データベースシステム
2,93,94 サーバ
2a データ管理装置
3 DB
3a 記憶部
4 ルーティング・テーブル
5 移動データ・ルーティング・テーブル
6 ネットワーク
8 データ・プロパティ・テーブル
21 取得部
22,22a 特定部
23 移動指示部
31 データ要求処理部
32 移動データ制御部
41 マトリックス構築部
42 データ収集部
43 偏り判断部
44 移動判断部
50 コンピュータ
51 メインメモリ
52 CPU
53 LANインタフェース
54 HDD
55 スーパーIO
56 DVI
57 ODD
91,92 データ

Claims (6)

  1. 複数のデータを管理する複数の装置それぞれからデータへのアクセス状況を取得し、
    各装置の出力負荷及び入力負荷を計算し、出力負荷又は入力負荷が最も高い装置を移動元装置として特定するとともに、所定期間のデータへのアクセス状況から移動すべきデータと移動先装置を特定し、
    特定した移動元装置と特定した移動先装置との間のデータの移動、及び、移動元装置と移動データと移動先装置とを記憶する移動テーブルの更新を移動元装置と移動先装置に指示する
    処理をコンピュータに実行させることを特徴とするデータ管理プログラム。
  2. 複数のデータを管理する複数の装置それぞれからデータへのアクセス状況を取得し、
    所定期間のデータへのアクセス状況から移動すべきデータと移動先装置を特定し、
    移動すべきデータを保持する移動元装置と特定した移動先装置との間のデータの移動、及び、移動元装置と移動データと移動先装置とを記憶する移動テーブルの更新を移動元装置と移動先装置に指示する
    処理をコンピュータに実行させ、
    前記特定する処理は、移動元装置から移動先装置へ移動データに関する要求を転送する負荷が移動元装置から移動先装置へ移動データを転送する負荷より小さい場合にデータを移動すべきと判断して移動データを特定することを特徴とするデータ管理プログラム。
  3. 複数のデータを管理する複数の装置それぞれからデータへのアクセス状況を取得し、
    所定期間のデータへのアクセス状況から移動すべきデータと移動先装置を特定し、
    移動すべきデータを保持する移動元装置と特定した移動先装置との間のデータの移動、及び、移動元装置と移動データと移動先装置とを記憶する移動テーブルの更新を移動元装置と移動先装置に指示する
    処理をコンピュータに実行させ、
    前記複数の装置は、スイッチ及びルータを介して接続され、
    前記特定する処理は、移動元装置を除いて負荷の低い装置から順番に移動先装置を特定し、特定した移動先装置に移動データを移動することができない場合には、該移動先装置と同じスイッチの配下にある装置、該移動先装置と同じルータの配下にある他のスイッチの配下にある装置の順番で移動先装置を特定することを特徴とするデータ管理プログラム。
  4. コンピュータが、
    複数のデータを管理する複数の装置それぞれからデータへのアクセス状況を取得し、
    各装置の出力負荷及び入力負荷を計算し、出力負荷又は入力負荷が最も高い装置を移動元装置として特定するとともに、所定期間のデータへのアクセス状況から移動すべきデータと移動先装置を特定し、
    特定した移動元装置と特定した移動先装置との間のデータの移動、及び、移動元装置と移動データと移動先装置とを記憶する移動テーブルの更新を移動元装置と移動先装置に指示する
    処理を実行することを特徴とするデータ管理方法。
  5. コンピュータが、
    複数のデータを管理する複数の装置それぞれからデータへのアクセス状況を取得し、
    所定期間のデータへのアクセス状況から移動すべきデータと移動先装置を特定し、
    移動すべきデータを保持する移動元装置と特定した移動先装置との間のデータの移動、及び、移動元装置と移動データと移動先装置とを記憶する移動テーブルの更新を移動元装置と移動先装置に指示する
    処理を実行し、
    前記特定する処理は、移動元装置から移動先装置へ移動データに関する要求を転送する負荷が移動元装置から移動先装置へ移動データを転送する負荷より小さい場合にデータを移動すべきと判断して移動データを特定することを特徴とするデータ管理方法。
  6. コンピュータが、
    複数のデータを管理する複数の装置それぞれからデータへのアクセス状況を取得し、
    所定期間のデータへのアクセス状況から移動すべきデータと移動先装置を特定し、
    移動すべきデータを保持する移動元装置と特定した移動先装置との間のデータの移動、及び、移動元装置と移動データと移動先装置とを記憶する移動テーブルの更新を移動元装置と移動先装置に指示する
    処理を実行し、
    前記複数の装置は、スイッチ及びルータを介して接続され、
    前記特定する処理は、移動元装置を除いて負荷の低い装置から順番に移動先装置を特定し、特定した移動先装置に移動データを移動することができない場合には、該移動先装置と同じスイッチの配下にある装置、該移動先装置と同じルータの配下にある他のスイッチの配下にある装置の順番で移動先装置を特定することを特徴とするデータ管理方法。
JP2015238953A 2015-12-07 2015-12-07 データ管理プログラム及びデータ管理方法 Active JP6690212B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015238953A JP6690212B2 (ja) 2015-12-07 2015-12-07 データ管理プログラム及びデータ管理方法
US15/352,659 US20170161508A1 (en) 2015-12-07 2016-11-16 Management device, method executed by the management device, and non-transitory computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015238953A JP6690212B2 (ja) 2015-12-07 2015-12-07 データ管理プログラム及びデータ管理方法

Publications (2)

Publication Number Publication Date
JP2017107300A JP2017107300A (ja) 2017-06-15
JP6690212B2 true JP6690212B2 (ja) 2020-04-28

Family

ID=58800379

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015238953A Active JP6690212B2 (ja) 2015-12-07 2015-12-07 データ管理プログラム及びデータ管理方法

Country Status (2)

Country Link
US (1) US20170161508A1 (ja)
JP (1) JP6690212B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10437800B2 (en) * 2016-12-02 2019-10-08 International Business Machines Corporation Data migration using a migration data placement tool between storage systems based on data access
US10437799B2 (en) * 2016-12-02 2019-10-08 International Business Machines Corporation Data migration using a migration data placement tool between storage systems based on data access
US11429302B2 (en) * 2020-07-29 2022-08-30 Dell Products L.P. Data mover selection system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271316A (ja) * 2002-03-14 2003-09-26 Hitachi Ltd ストレージシステム、その動作プログラム及びその運用方法、情報処理端末及びその動作プログラム、データ管理システム
US20060245433A1 (en) * 2005-04-28 2006-11-02 International Business Machines Corporation Apparatus and method for dynamic routing of messages with target validation and peer forwarding
JP2009245004A (ja) * 2008-03-28 2009-10-22 Nippon Telegraph & Telephone West Corp 双方向データ配置システム、アクセス解析サーバ、データ移動サーバ、双方向データ配置方法、及び、プログラム
JP5422298B2 (ja) * 2009-08-12 2014-02-19 株式会社日立製作所 階層管理ストレージシステムおよびストレージシステムの運用方法
JP2011186794A (ja) * 2010-03-09 2011-09-22 Hitachi Ltd ストレージシステム内のデータの配置を制御する管理システム、及び、データ配置制御方法
JP2012174113A (ja) * 2011-02-23 2012-09-10 Hitachi Ltd ファイルストレージシステム及び記憶制御方法
US9852010B2 (en) * 2012-02-03 2017-12-26 Microsoft Technology Licensing, Llc Decoupling partitioning for scalability
US20130332608A1 (en) * 2012-06-06 2013-12-12 Hitachi, Ltd. Load balancing for distributed key-value store
JP2014044677A (ja) * 2012-08-28 2014-03-13 Fujitsu Ltd 送信制御プログラム、通信ノード、および送信制御方法
WO2015140931A1 (ja) * 2014-03-18 2015-09-24 株式会社 東芝 トライアル領域を備えた階層化ストレージシステム、ストレージコントローラ及びプログラム

Also Published As

Publication number Publication date
JP2017107300A (ja) 2017-06-15
US20170161508A1 (en) 2017-06-08

Similar Documents

Publication Publication Date Title
US9851911B1 (en) Dynamic distribution of replicated data
JP6107429B2 (ja) データベースシステム、検索方法およびプログラム
US20170220662A1 (en) Massively Scalable Object Storage System
US9237193B2 (en) Modification of an object replica
JP5099128B2 (ja) ストレージ管理プログラム、ストレージ管理装置およびストレージ管理方法
EP2501108B1 (en) Massively scalable object storage system
JP4462969B2 (ja) フェイルオーバクラスタシステム及びフェイルオーバ方法
US20130332608A1 (en) Load balancing for distributed key-value store
KR101426673B1 (ko) 검색 시스템에서 시계열 데이터의 효율적 분석을 위한 분산 인덱싱 및 검색 방법
EP2791813A1 (en) Load balancing in cluster storage systems
JP2007156815A (ja) データマイグレーション方法及びシステム
JP5825359B2 (ja) 負荷分散システム
JP6690212B2 (ja) データ管理プログラム及びデータ管理方法
CN109196807B (zh) 网络节点以及操作网络节点以进行资源分发的方法
US20180260463A1 (en) Computer system and method of assigning processing
US11409771B1 (en) Splitting partitions across clusters in a time-series database
US9891992B2 (en) Information processing apparatus, information processing method, storage system and non-transitory computer readable storage media
JP5765441B2 (ja) 情報処理装置、データ管理方法およびプログラム
US11366598B1 (en) Dynamic lease assignments in a time-series database
JP6036190B2 (ja) 情報処理装置、情報処理システムの制御方法及び情報処理システムの制御プログラム
CN114253936A (zh) 分布式数据库的缩容方法、装置、设备和介质
US10788995B2 (en) Information processing apparatus, method and non-transitory computer-readable storage medium
JP6963465B2 (ja) 計算機システム及びデータ処理の制御方法
JP5978297B2 (ja) 管理システム及び管理方法
JP6155861B2 (ja) データ管理方法、データ管理プログラム、データ管理システム及びデータ管理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190709

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200129

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: 20200310

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200323

R150 Certificate of patent or registration of utility model

Ref document number: 6690212

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150