JP2010074604A - データアクセスシステム、データアクセス方法およびデータアクセス用プログラム - Google Patents

データアクセスシステム、データアクセス方法およびデータアクセス用プログラム Download PDF

Info

Publication number
JP2010074604A
JP2010074604A JP2008240771A JP2008240771A JP2010074604A JP 2010074604 A JP2010074604 A JP 2010074604A JP 2008240771 A JP2008240771 A JP 2008240771A JP 2008240771 A JP2008240771 A JP 2008240771A JP 2010074604 A JP2010074604 A JP 2010074604A
Authority
JP
Japan
Prior art keywords
data
coordinates
data processing
list
processing device
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.)
Pending
Application number
JP2008240771A
Other languages
English (en)
Inventor
Shinji Nakadai
慎二 中台
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2008240771A priority Critical patent/JP2010074604A/ja
Publication of JP2010074604A publication Critical patent/JP2010074604A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】読み込みや書き込みの応答時間が短く、ネットワークの輻輳を発生させることが少ないデータアクセスシステムを提供する。
【解決手段】データアクセスシステムは、分散されたデータを記憶する各データ処理装置の座標を記憶する座標記憶手段85を備える。各データ処理装置71は、所定の装置との通信遅延の計測結果から自装置のコンピュータネットワークにおける座標を決定する座標決定手段81と、分散されたデータを記憶するデータ記憶手段82とを備える。また、データアクセスシステムは、分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストの中から、候補の座標と自装置の座標との距離に基づいて、読み込み先または書き込み先となるデータ処理装置を決定するアクセス先決定手段83を備える。
【選択図】図14

Description

本発明は、データアクセスシステム、データアクセス方法、データ処理装置、クライアント装置、データアクセス用プログラムに関し、特に、応答速度が速く、ネットワーク利用効率が高く、ネットワークのアドレス設定に依存しないデータアクセスシステム、データアクセス方法、データ処理装置、クライアント装置、データアクセス用プログラムに関する。
データアクセスシステムの一例が、非特許文献1に記載されている。図15は、非特許文献1に記載されたデータアクセスシステムの例を模式的に示す説明図である。非特許文献1に記載されたデータアクセスシステムは、マスタ130と、データセンタ101,102に配置されたラック103,104,105に格納されたデータ管理サーバ111〜118およびデータアクセスクライアント120とから構成され、分散システムに適用される。
マスタ130は、この分散システムにおいて利用される名前空間におけるデータ名毎に、そのデータの状態を管理するデータ管理サーバのアドレスを格納する。また、マスタ130は、この分散システムにおいて利用される名前空間におけるデータ名を入力として受け取ると、そのデータ名に対応するデータ管理サーバのアドレスを返す。
データ管理サーバ111には、分散システムに格納されたファイル150が格納される。このファイル150は、同一内容のファイルが複製され、複数個所に格納される。図15に示す例では、ファイル150と同一内容のファイル151,152が、それぞれデータ管理サーバ114とデータ管理サーバ117に格納されている。
前述のマスタ130は、これらのデータの名前「/foo」が、データ管理サーバ111、114、117に格納されていることを、それぞれのIPアドレスである(10.1.1.1)、(10.1.85.9)、(10.60.1.54)に対応づけて記憶している。
データ管理サーバ111は、自ノードと他ノードとの近傍性を自ノードのアドレスと他ノードのアドレスを用いて推定し、最も近いと推定されるノードをアクセス先とする。例えば、同一サブネットに属するといった判断や、アドレスのプレフィックスを長く共有しているといった情報から最も近いアクセス先を推定する。データ管理サーバ111は、データの読み書き要求を受け付け、自ノードに格納されたデータの読み書きを行い、必要に応じて、他ノードへの複製書き込みを行う。
データアクセスクライアント120は、データ管理サーバ111と同様にアドレスを用いて近傍性を推定し、アクセスすべきデータ管理サーバを決定する。
データアクセスクライアント120がデータ名「/foo」に対して書き込みを行う場合、まずデータアクセスクライアント120は、マスタ130に「/foo」に対応するデータ管理サーバのアドレスを問い合わせ、マスタ130は(10.1.1.1)、(10.1.85.9)、(10.60.1.54)を取り出し、データアクセスクライアント120に返す。データアクセスクライアント120は、自ノードのアドレス10.1.1.64に最も近いアドレスとして、10.1.1.1を選択し、このアドレスのデータ管理サーバ111にデータの書き込みを行う。次に、データ管理サーバ111は、次に近いデータ管理サーバ114に対してデータの書き込みを行い、データ管理サーバ114は次に近いデータ管理サーバ117にデータを書き込む。一方、データアクセスクライアント120がデータ名「/foo」に対して読み込みを行う場合、書き込み時と同様にマスタ130からアドレスを取り出し、最も近傍なアドレスを持つデータ管理サーバ111に対して、データ名「/foo」を要求し、データ管理サーバ111は、データ150を返す。
分散システムにおけるデータアクセスシステムの他の例が、非特許文献2に記載されている。図16は、非特許文献2に記載されたデータアクセスシステムの例を模式的に示す説明図である。非特許文献2に記載されたデータアクセスシステムは、データ管理サーバ211〜219、およびデータアクセスクライアント220とから構成されている。非特許文献2に記載されたデータアクセスシステムでは、マスタが存在しない代わりに、論理アドレス空間200が設けられ、これら構成要素は通信用のIPアドレスの他に、この論理アドレス空間における論理アドレスを持つ。例えば、データ管理サーバ211には、10.1.1.1という通信用のIPアドレスの他に、1953という論理アドレスが割り当てられている。
論理アドレス空間200には、各データ管理サーバについて、テーブル201に示す論理アドレスとIPアドレスの対応が存在する。データは、そのデータ名のハッシュ値を論理アドレス空間のサイズで除した値と、このテーブル201とで決定される。例えば、データ管理サーバ211には、データ名のハッシュ値を論理アドレス空間のサイズで除した値が(1500,1953]の範囲に存在するようなデータが格納される。例えば、「/foo」というデータ名に対して、ハッシュ関数を適用した値をアドレス空間のサイズで除した値が1800であったとすると、データ管理サーバ211がCoordinatorとして、データ名「/foo」を管理する。また、テーブル201において、予め定められた複製数分だけ、次の順序にあるデータ管理サーバにもデータが配置される。このデータ管理サーバのアドレス付け、およびそれを用いてデータの格納先データ管理サーバを決定する手法は、ConsistentHashingと呼ばれる。
データ管理サーバ211は、データ名、値、バージョンを有すデータ250を格納する。図16に示す例では、「/foo」というデータ名のバージョン3の値5が格納されている。これらは複製されており、データ管理サーバ212〜214においても、同じデータ名と対応するデータ251〜253が格納されている。ただし、データ管理サーバ213のデータ252は、バージョンが異なる。これはこの複製法がQuorumアルゴリズムで複製され、全ての複製用のサーバに同一データを書き込まれる必要のある二相コミットメントとは異なり、複製数の半分より大きい値(書き込みQuorum数)だけ書き込むだけで良いためである。そのため、書き込みの応答速度は、二相コミットメントのように、全レプリカ数に対する書き込みの中で最も遅い書き込み速度と等しくなるのではなく、書き込みQuorum数の中で最も遅い書き込み速度と等しくなり、書き込みの戻りが遅いデータ管理サーバに対する書き込み完了を待つ必要はない。また、一部のデータ管理サーバの故障やデータ管理サーバへのネットワーク切断が発生していても、他の代替サーバに書き込むことで、処理を正常に終えることができる。これは、読み込みについても同じである。
また、データ管理サーバ211には、論理アドレスとIPアドレスの対応テーブル201が格納される。データ管理サーバ211は、与えられたデータ名の複製に対する複製数をもとに、どのデータ管理サーバから複製を取得するかを決定する。また、データ管理サーバ211は、データ名を指定した書き込み・読み込み要求に応じて、データの書き込みや読み込みを行ったり、決定したデータ管理サーバに対するデータ書き込み・読み込みを管理する。
データアクセスクライアント220には、論理アドレスとIPアドレスの対応テーブル201が格納される。データアクセスクライアント220は、データ名を指定した書き込み・読み込みを行う場合、このデータ名のCoordinatorであるデータ管理サーバ211に書き込み・読み込み要求を送る。ここでCoordinatorは、データ名のハッシュ値をアドレス空間サイズで除して得られる論理アドレスと対応するデータ管理サーバである。
このような構成を有するデータアクセスシステムは次のように動作する。すなわち、データアクセスクライアント220がデータ名「/foo」に対して書き込みを行う場合、データ名のCoordinatorを決定し、そのCoordinatorであるデータ管理サーバ211に書き込み要求を送信する。データ管理サーバは、自身に格納していたデータを取得するとともに、他の複数のデータ管理サーバへのIPアドレスを決定し、その全てに対して書き込み要求を非同期送信する。そして、応答した書き込み数と、自身のデータ格納部のデータとが書き込みQuorum数に達すると、データの書き込みが正常に成功したと判断する。読み込みの場合も同様であり、読み込みQuorum数に達するまで、データの読み込みは正常に成功したとは判断されない。
また、非特許文献3には、ネットワーク上のコンピュータの座標を求める方法が記載されている。非特許文献3に記載された方法では、あるコンピュータにおいて計測された遅延を主成分分析することにより、そのコンピュータの座標を計算する。
Sanjay Ghemawat, Howard Gobioff, and Shun−Tak Leung,"The Google File System",Proceedings of the nineteenth ACM symposium on Operating systems principles(SOSP‘03),2003年10月19日 Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall and Werner Vogels,"Dynamo:Amazon‘s Highly Available Key−value Store",Proceedings of the nineteenth ACM symposium on Operating systems principles(SOSP’07),2007年10月14日 Hyuk Lim,Jennifer C.Hou,Chong−Ho Choi,"Constructing Internet Coordinate System Based on Delay",IMC‘03,2003年
非特許文献1に記載されたシステムでは、近傍性を推定する時間は少ないものの、データアクセスの応答速度が遅い、あるいはネットワークが輻輳を起こしやすいという問題がある。ネットワーク内でメッセージの到達先を表すアドレスについて、その先頭ビットが共通といった類似性では、推定精度は低い。そのため、実際には応答速度がより近いデータ管理サーバが存在しても、より遠くのデータ管理サーバにアクセスする可能性が高く、その結果、応答速度が低くなる。また、ネットワーク的に離れたデータ管理サーバ間でデータ通信を行うため、その経路上のスイッチで輻輳が発生しやすくなる。
また、非特許文献1に記載されたシステムは、既にアドレス体系が決定されたシステムに導入することが困難であるという問題がある。その理由は、ネットワーク内でメッセージの到達先を表すアドレスで以て近傍性を推定するには、データセンター、ラック、サーバといった物理的な設備の収容関係をアドレス体系に反映させる必要があるが、通常はある程度物理的な近傍性が反映されるものの、アドレス体系はセキュリティを考慮して組織毎に決定されたり、動的に変更されたりするものであるからである。
また、非特許文献2に記載されたシステムでは、通信量やデータ管理サーバでの処理が必要以上に多くなる。その理由は、全ての複製先のデータ管理サーバにデータを送付すること自体の通信量の発生に加えて、データ管理サーバ側の状態を変更するために、再度通信が必要になり、そのための処理負荷が必要となるからである。
本発明は、分散されたデータを有する複数のデータ処理装置から特定のデータ処理装置を選択してアクセスする際、読み込みや書き込みの応答時間が短く、ネットワークの輻輳を発生させることが少ないデータアクセスシステム、データアクセス方法、データアクセス方法、データ処理装置、クライアント装置、データアクセス用プログラムを提供することを目的とする。また、コンピュータネットワークのアドレス体系を変更したり再設計したりすることなく、容易に既存のシステムに導入することができるデータアクセスシステム、データアクセス方法、データアクセス方法、データ処理装置、クライアント装置、データアクセス用プログラムを提供することを目的とする。
また、本発明によるデータアクセスシステムは、1つ以上のデータ処理装置を備え、コンピュータネットワークにおけるデータ処理装置の位置を表した多次元の実座標であって、他のデータ処理装置が読み込みまたは書き込みを行うことが可能な分散されたデータを記憶する各データ処理装置の位置を表した座標を記憶する座標記憶手段を備え、各データ処理装置が、所定の装置との通信遅延の計測結果から自装置のコンピュータネットワークにおける座標を決定する座標決定手段と、分散されたデータを記憶するデータ記憶手段とを備え、分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストの中から、候補の座標と自装置の座標との距離に基づいて、読み込み先または書き込み先となるデータ処理装置を決定するアクセス先決定手段を備えることを特徴とする。
また、本発明によるデータアクセス方法は、他のデータ処理装置が読み込みまたは書き込みを行うことが可能な分散されたデータを記憶するデータ処理装置とは別に設けられた装置であるマスタが、コンピュータネットワークにおけるデータ処理装置の位置を表した多次元の実座標であって、分散されたデータを記憶する各データ処理装置の位置を表した座標を記憶し、分散されたデータの読み込みまたは書き込みの要求元であるクライアント装置が、所定の装置との通信遅延の計測結果から自装置のコンピュータネットワークにおける座標を決定し、読み込み対象である分散されたデータを記憶する各データ処理装置の座標をマスタから取得し、分散されたデータの読み込み先の候補となるデータ処理装置の座標のリストとして、受信した座標のリストを作成し、リストに含まれる座標と当該クライアント装置の座標との距離に基づいて、読み込み先となるデータ処理装置を決定することを特徴とする。
また、本発明によるデータアクセス方法は、一の装置が、他のデータ処理装置が読み込みまたは書き込みを行うことが可能な分散されたデータを記憶する各データ処理装置にアクセスするデータアクセス方法であって、一の装置が、所定の装置との通信遅延の計測結果から、多次元の実座標であって自装置のコンピュータネットワークにおける位置を表す座標を決定し、分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストの中から、候補の座標と自装置の座標との距離に基づいて、読み込みまたは書き込みの対象となる分散されたデータに対して定められている読み込み先または書き込み先となるデータ処理装置数である充足定数分だけ、データ処理装置を決定し、決定した各データ処理装置に対して分散されたデータの読み込みまたは書き込みを行うことを特徴とする。
また、本発明によるクライアント装置は、他のデータ処理装置が読み込みまたは書き込みを行うことが可能な分散されたデータの読み込みまたは書き込みの要求元であるクライアント装置であって、所定の装置との通信遅延の計測結果から、多次元の実座標であって自装置のコンピュータネットワークにおける位置を表す座標を決定するクライアント座標決定手段と、読み込みまたは書き込みの対象である分散されたデータを指定する情報を、分散されたデータを記憶する各データ処理装置の座標を記憶するマスタに送信して、マスタからそのデータを記憶する各データ処理装置の座標を受信し、分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストとして、受信した座標のリストを作成する座標取得手段と、座標取得手段が読み込み対象である分散されたデータを指定する情報をマスタに送信して得たリストに含まれる座標とクライアント装置の座標との距離に基づいて、読み込み先となるデータ処理装置を決定する読み込み先決定手段とを備えることを特徴とする。
また、本発明によるデータ処理装置は、所定の装置との通信遅延の計測結果から、多次元の実座標であって自装置のコンピュータネットワークにおける位置を表す座標を決定する座標決定手段と、他のデータ処理装置が読み込みまたは書き込みを行うことが可能な分散されたデータを記憶するデータ記憶手段と、分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストの中から、候補の座標と自装置の座標との距離に基づいて、読み込み先または書き込み先となるデータ処理装置を決定するアクセス先決定手段とを備え、アクセス先決定手段は、リストとして、分散されたデータの書き込み先の候補となるデータ処理装置の座標のリストが入力されると、リストのうち未だデータの書き込みが完了していない候補の座標と自装置の座標との距離に基づいて、書き込み先となるデータ処理装置を決定することを特徴とする。
また、本発明によるデータ処理装置は、他のデータ処理装置が読み込みまたは書き込みを行うことが可能な分散されたデータを記憶する各データ処理装置にアクセスするデータ処理装置であって、所定の装置との通信遅延の計測結果から、多次元の実座標であって自装置のコンピュータネットワークにおける位置を表す座標を決定する座標決定手段と、分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストの中から、候補の座標と自装置の座標との距離に基づいて、読み込みまたは書き込みの対象となる分散されたデータに対して定められている読み込み先または書き込み先となるデータ処理装置数である充足定数分だけ、データ処理装置を決定するアクセス先決定手段と、決定された各データ処理装置に対して、分散されたデータの読み込みまたは書き込みを行うアクセス手段とを備えることを特徴とする。
また、本発明によるデータアクセス用プログラムは、コンピュータに、所定の装置との通信遅延の計測結果から、多次元の実座標であって自装置のコンピュータネットワークにおける位置を表す座標を決定する座標決定処理、他のデータ処理装置が読み込みまたは書き込みを行うことが可能な分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストの中から、候補の座標と自装置の座標との距離に基づいて、読み込み先または書き込み先となるデータ処理装置を決定するアクセス先決定処理を実行させ、アクセス先決定処理で、リストとして、分散されたデータの書き込み先の候補となるデータ処理装置の座標のリストが入力されると、リストのうち未だデータの書き込みが完了していない候補の座標と自装置の座標との距離に基づいて、書き込み先となるデータ処理装置を決定させることを特徴とする。
また、本発明によるデータアクセス用プログラムは、他のデータ処理装置が読み込みまたは書き込みを行うことが可能な分散されたデータの読み込みまたは書き込みの要求元であるコンピュータに搭載されるデータアクセス用プログラムであって、コンピュータに、所定の装置との通信遅延の計測結果から、多次元の実座標であって自装置のコンピュータネットワークにおける位置を表す座標を決定するクライアント座標決定処理、読み込みまたは書き込みの対象である分散されたデータを指定する情報を、分散されたデータを記憶する各データ処理装置の座標を記憶するマスタに送信して、マスタからデータを記憶する各データ処理装置の座標を受信し、分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストとして、受信した座標のリストを作成する座標取得処理、および、読み込み対象である分散されたデータを指定する情報をマスタに送信して得たリストに含まれる座標とクライアント装置の座標との距離に基づいて、読み込み先となるデータ処理装置を決定する読み込み先決定処理を実行させることを特徴とする。
また、本発明によるデータアクセス用プログラムは、他のデータ処理装置が読み込みまたは書き込みを行うことが可能な分散されたデータを記憶する各データ処理装置にアクセスするコンピュータに搭載されるデータアクセス用プログラムであって、コンピュータに、所定の装置との通信遅延の計測結果から、多次元の実座標であって自装置のコンピュータネットワークにおける位置を表す座標を決定する座標決定処理、分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストの中から、候補の座標と自装置の座標との距離に基づいて、読み込みまたは書き込みの対象となる分散されたデータに対して定められている読み込み先または書き込み先となるデータ処理装置数である充足定数分だけ、データ処理装置を決定するアクセス先決定処理、および、決定された各データ処理装置に対して、分散されたデータの読み込みまたは書き込みを行うアクセス処理を実行させることを特徴とする。
本発明によれば、読み込みや書き込みの応答時間を短くすることができ、ネットワークの輻輳を少なく抑えることができる。また、既存のシステムに容易に導入することができる。
実施形態1.
以下に示す第1の実施形態では、データの書き込み時に1つのデータから複製された各データを複数のデータ管理サーバに書き込み場合を例にする。この場合、同一内容のデータが各データ管理サーバに記憶される。また、データ書き込み時には、データを複製して冗長化する場合における冗長数(換言すれば複製の結果得られたデータの総数)が、書き込みに関する充足定数となる。また、このデータを読み込む場合には、全てのデータを読み込む必要はなく1台のデータ管理サーバから読み込めばよいので、読み込みに関する充足定数は1である。充足定数は、書き込みまたは読み込みの対象となるデータ管理サーバの台数である。
図1は、本発明のデータアクセスシステムの第1の実施形態を示すブロック図である。第1の実施形態のデータアクセスシステムは、マスタ330と、データアクセスクライアント320と、データ管理サーバ311〜318とを備える。マスタ330、データアクセスクライアント320およびデータ管理サーバ311〜318は、いずれもプログラム制御により動作するコンピュータ(中央処理装置、プロセッサ、データ処理装置)である。データ管理サーバは1台以上設けられ、以下、複数のデータ管理サーバが設けられる場合を例にして説明する。
なお、図1に示す例では、データ管理サーバ311,312はデータセンタ301のラック303に配置され、データ管理サーバ313〜315は、データセンタ301の別のラック304に配置されている。また、データ管理サーバ316〜318は、他のデータセンタ302のラック305に配置されている。
マスタ330は、分散されたデータを記憶するデータ管理サーバ311〜318とは別に設けられ、各データ管理サーバ311〜318のコンピュータネットワークにおける座標を記憶する。マスタ330は、アドレス格納部331と、座標格納部332と、アドレス応答手段333とを備える。各データ管理サーバ311〜318のコンピュータネットワークにおける座標は、多次元の実座標(実数の座標)として求められる。
アドレス格納部331は、データ名に対応付けて、そのデータを保持している各データ管理サーバのアドレスを記憶する記憶手段である。アドレス格納部331には、予めデータ名とアドレスとの対応関係を記憶させておく。例えば、データ名から求められるハッシュ値の範囲とアドレスとの対応関係を記憶させておく。座標格納部332は、各データ管理サーバ311〜318の座標を記憶する記憶手段である。アドレス応答手段333は、アクセス要求されるデータについて、そのデータを有しているデータ管理サーバのアドレスを、アドレス格納部331から複数取得し、その取得されたアドレス毎に、データ管理サーバの座標を座標格納部332に問い合わせる。そして、アドレス応答手段333は、得られたデータ管理サーバのアドレスと座標との各組を座標の要求元(データアクセスクライアント)に返す。アドレス応答手段333は、例えば、データ名が与えられた場合、そのデータ名のハッシュ値を求め、そのハッシュ値に応じたアドレスを特定し、そのアドレスを持つデータ管理サーバの座標を読み込む。アドレス応答手段333は、例えば、プログラムに従って動作するCPUによって実現される。
データアクセスクライアント320は、分散されたデータの読み込みまたは書き込みの要求元となる装置である。データアクセスクライアント320は、座標格納部321と、座標算出手段322と、アクセス先決定手段323と、データアクセス手段324とを備える。
座標格納部321は、データアクセスクライアント320自身の多次元実数座標を記憶する記憶手段である。
座標算出手段322は、計測用サーバ339,340等の、コンピュータネットワーク内における他の所定の装置に対してメッセージを送信し、その所定の装置との通信遅延(所定の装置との間の通信において生じる遅延時間)に基づいて、データアクセスクライアント320の座標を算出し、座標格納部321に記憶させる。ここでは、所定の装置からの応答待ち時間(所定の装置にメッセージを送信して所定の装置から応答が帰ってくるまでの時間)を通信遅延として用いる場合を例にして説明するが、通信遅延は応答待ち時間に限定されず、応答待ち時間以外の値であってもよい。この方法は、特定の計測用サーバを用いない分散型の座標算出方法Vivaldiや、計測用サーバを用いた座標算出方法であって、計測結果に対して多次元尺度構成法(MDS)を用いるVirtual Landmarks等であってよい。
計測用サーバ339,340は、他の装置からのメッセージを受けると、メッセージへの応答をその装置に送信する。計測用サーバ339,340の数は2台に限定されない。座標算出手段322は、具体的には、各計測用サーバ339,340にメッセージを送信してから応答を受信するまでの時間(応答待ち時間)に基づいて座標を決定し、その座標を座標格納部321に記憶させる。複数の計測用サーバからの応答待ち時間をそれぞれ座標値として座標を定めてもよいが、得られた応答待ち時間のデータに対して、次元圧縮を行うことが好ましい。例えば、計測用サーバが5台ある場合、(10,90,30,50,100)等の5次元データが得られるが、この結果に対して、修正分分析(PCA:Principal Component Analysis)や、他次元尺度構成(MDS:Multi Dimensional Scaling )を用いて、3次元座標を算出してもよい。
このような、次元圧縮は、非特許文献3に記載された方法で行ってもよい。非特許文献3に記載の方法では、予め個々の計測用サーバが、それぞれ他の計測用サーバからの応答待ち時間を測定し、その結果を行列Dで表わす。例えば、計測用サーバが4台存在し、1台目の計測用サーバにおける各計測用サーバに対する測定結果がベクトル(0,1,3,3)で表わされると、Dの第1行はこのベクトルで表わされる。同様に、n台目の計測用サーバにおける計測結果を示すベクトルを行列Dの第n行として、行列Dを表せばよい。座標算出手段322は、行列Dに対するSVD(Singular Value Decomposition)分解を行い、D=UWVの形式で表わす。SVD分解により得られる所定の行列Uのうち、予め定められた次元数分の列を取り出した行列をUとすると、このUが次元圧縮変換に用いる行列となる。すなわち、座標算出手段322は、4台の計測用サーバ毎に応答待ち時間を計測し、その結果、4次元ベクトルdを得たとすると、以下に示す式(1)の計算を行うことによって、自身の座標cを算出すればよい。
c=U d 式(1)
通信遅延(本例では応答待ち時間)は実数として得られ、通信遅延を用いて上記のように求めた座標は実数の座標(実座標)となる。
アクセス先決定手段323は、まず、読み込みや書き込みの対象となるデータのデータ名に対応するデータ管理サーバおよびその座標をマスタ330に問い合わせる。そして、得られた座標のリストを作成し、その中から、座標格納部321に記憶されるデータアクセスクライアント320自身の座標との距離が最も小さいデータ管理サーバを選択する。また、それ以外のデータ管理サーバのアドレスともにリストに含める。
データアクセス手段324は、データに対する読み込みあるいは書き込みの要求が発生すると、そのデータ名に応じたアクセス先をアクセス先決定手段344に問い合わせ、データアクセスクライアント自身が直接アクセスすべきデータ管理サーバのアドレスと、その他のデー-タ管理サーバのアドレスと座標を受け取る。そして、データアクセス手段32は、その直接アクセスすべきデータ管理サーバ311に対して、データの書き込みあるいは読み込みを要求する。
データアクセスクライアント320の座標算出手段322、アクセス先決定手段323およびデータアクセス手段324は、例えば、プログラムに従って動作するCPUによって実現される。プログラムがデータアクセスクライアント320の記憶装置に記憶され、CPUがそのプログラムを読み込んで、座標算出手段322、アクセス先決定手段323およびデータアクセス手段324として動作する。
各データ管理サーバは同様の構成であり、データ管理サーバ311を例にして、データ管理サーバの構成を説明する。データ管理サーバ311は、データ格納部341と、座標格納部342と、座標算出手段343と、アクセス先決定手段344と、データ管理手段345とを備える。
データ格納部341は、データ350を格納する記憶手段である。図1に示す例では、データ管理サーバ314およびデータ管理サーバ317のデータ格納部(図示せず)にも同じ情報のデータ351およびデータ352が格納されている。すなわち、本例では、複製によって冗長化された同じデータ350〜352が、3台のデータ管理サーバ311,314,352に分散されている。データ管理サーバに分散され、それぞれのデータ管理サーバのデータ格納部に記憶されたデータは、他のデータ管理サーバが読み込みを行ったり、書き込みを行ったりすることが可能なデータである。
座標格納部342は、コンピュータネットワーク内でのデータ管理サーバ311自身の位置を表す多次元実数座標を記憶する記憶装置である。
座標算出手段343は、コンピュータネットワーク内における他の所定の装置(各計測サーバ339,340)にメッセージを送信し、その応答待ち時間に基づいてデータ管理サーバ311自身の座標を算出し、座標格納部342に記憶させる。座標算出手段343が、自装置の座標を算出する処理は、データアクセスクライアント320の座標算出手段322と同様である。
また、座標算出手段343は、算出したデータ管理サーバ311の座標をマスタ330に送信する。マスタ330は、データ管理サーバから、新たに算出されたそのデータ管理サーバの座標を受信すると、その座標を座標格納部332に記憶させる。この結果、マスタ330の座標格納部332には、各データ管理サーバの座標が記憶される。
アクセス先決定手段344は、書き込みの際に利用される。アクセス先決定手段344は、データの書き込み対象となるデータ管理サーバのリストに含まれる他のデータ管理サーバの座標と、座標格納部342に記憶された自装置(ここではデータ管理サーバ311)の座標とから、他の各データ管理サーバまでの距離を求め、最も距離が短い他のデータ管理サーバを決定する。
データ管理手段345は、データアクセスクライアント320や他のデータ管理サーバから、データの書き込み要求を受信した場合、そのデータをデータ格納部350に記憶させる。また、データ管理手段345は、アクセス先決定手段344に決定された最も近傍のデータ管理サーバにデータの書き込み要求を送信する。また、データ管理手段345は、データの読み込み要求を受信した場合、そのデータをデータ格納部350から読み込み、要求元のデータアクセスクライアント320に送信する。
データ管理サーバ311の座標算出手段343、アクセス先決定手段344およびデータ管理手段345は、例えば、プログラムに従って動作するCPUによって実現される。プログラムがデータ管理差サーバ311の記憶装置に記憶され、CPUがそのプログラムを読み込んで、座標算出手段343、アクセス先決定手段344およびデータ管理手段345として動作する。
次に、動作について説明する。
まず、データ読み込み時の動作について説明する。図2は、データ読み込み時の処理経過の例を示す説明図である。データアクセスクライアント320のデータアクセス手段324にて、特定のデータ名のデータに対する読み込み要求が発生すると、アクセス先決定手段323は、そのデータ名に対応するデータ管理サーバのアドレスおよび座標をマスタ330に問い合わせ、データ名に対応するデータ管理サーバのリストを作成する(ステップS401)。具体的には、アクセス先決定手段323は、データ名をマスタ330に送信し、マスタ330からそのデータ名に対応するデータ管理サーバのアドレスおよび座標の組を受信し、受信したアドレスおよび座標の組のリストを作成する。このリストは、データの読み込み先の候補となるデータ管理サーバのリストである。また、このとき、マスタ330のアドレス応答手段333は、アクセス先決定手段323からデータ名を受信すると、そのデータ名に対応するデータ管理サーバのアドレスをアドレス格納部331から読み込み、また、そのデータ管理サーバのアドレスを座標格納部332から読み込み、データ管理サーバ毎のアドレスおよび座標の組をデータアクセスクライアント320に送信すればよい。
次に、データアクセスクライアント320のアクセス先決定手段323は、ステップS401で作成されたリストに、データ管理サーバのアドレスおよび座標の組が含まれているか否かを判定する(ステップS402)。含まれていなければ(ステップS402におけるNo)、読み込み先が存在しないため、異常終了とする。
リストに、データ管理サーバのアドレスおよび座標の組が含まれていれば(ステップS402におけるYes)、アクセス先決定手段323は、リストに含まれている各座標と、座標格納部321に記憶されているデータアクセスクライアント320自身の座標との距離を計算し、データアクセスクライアント320に最も近いデータ管理サーバを選択する(ステップS403)。具体的には、データアクセスクライアント320の座標と最も近距離の座標およびその座標と組をなすアドレスを選択すればよい。座標間の距離を計算する場合には、座標間のユークリッド距離を計算すればよい。
次に、データアクセス手段324は、ステップS403で選択されたアドレスのデータ管理サーバからデータを読み込む(ステップS404)。このとき、データアクセス手段324は、読み込み対象のデータ名を、選択されたアドレスのデータ管理サーバに送信することによって、そのデータ名を持つデータを要求すればよい。このデータ名を受信したデータ管理サーバのデータ管理手段345は、データ格納部341からデータを読み込み、そのデータをデータアクセスクライアント320に送信する。
データアクセスクライアント320のデータアクセス手段324は、データ管理サーバからデータの受信に成功したならば、正常に読み込みが完了し、処理を終了する。一方、データ名を送信したデータ管理サーバからデータを受信できなかった場合、アクセス先決定手段323は、そのデータ管理サーバの座標およびアドレスをリストから削除し(ステップS406)、その後、ステップS402以降の処理を繰り返す。
次に、データ書き込み時の動作について説明する。図3は、データ書き込み時の処理経過の例を示す説明図である。データアクセス手段324にて、特定のデータ名に対する書き込み要求が発生すると、そのデータ名に対応するデータ管理サーバのアドレスおよび座標をマスタ330に問い合わせ、データ名に対応するデータ管理サーバのリストを作成する(ステップS501)。ステップS501では、ステップS401と同様に、データ名をマスタ330に送信し、マスタ330からそのデータ名に対応するデータ管理サーバのアドレスおよび座標の組を受信し、受信したアドレスおよび座標の組のリストを作成する。このリストは、データの書き込み先の候補となるデータ管理サーバのリストである。ステップS501におけるマスタ330の動作は、ステップS401と同様である。
次に、アクセス先決定手段323は、リストに含まれている各座標と、座標格納部321に記憶されているデータアクセスクライアント320自身の座標との距離を計算し、データアクセスクライアント320に最も近いデータ管理サーバを選択する(ステップS502)。ステップS502の動作は、ステップS402と同様であり、データアクセスクライアント320の座標と最も近距離の座標およびその座標と組をなすアドレスを選択すればよい。
次に、データアクセス手段324は、ステップS502で選択されたアドレスのデータ管理サーバに書き込み要求を送信する(ステップS503)。データアクセス手段324は、例えば、選択されたアドレスのデータ管理サーバに書き込み対象データ送信することによって、その書き込み対象データの書き込みを要求する。また、このとき、データアクセス手段324は、データの書き込み先の候補となるデータ管理サーバのリストも書き込み対象データと合わせて、選択されたデータ管理サーバに送信する。ここでは、選択されたデータ管理サーバ311である場合を例にする。
データ管理サーバ311のデータ管理手段345は、データアクセスクライアント320から書き込み対象データおよびリストを受信すると、その書き込み対象データをデータ格納部350に記憶させる(ステップS504)。
次に、データ管理サーバ311のアクセス先決定手段344は、データアクセスクライアント320から受信したリストの中から、自装置(データ管理サーバ311)の座標およびアドレスの組を削除し、リストに残っている各座標と、座標格納部342に記憶されているデータ管理サーバ311自身の座標との距離を計算し、データ管理サーバ311に最も近いデータ管理サーバを選択する(ステップS505)。具体的には、データ管理サーバ311の座標と最も近距離の座標およびその座標と組をなすアドレスを選択すればよい。この場合も、座標間の距離として、ユークリッド距離を計算すればよい。
次に、データ管理手段345は、ステップS505で選択されたアドレスのデータ管理サーバに書き込み要求を送信する(ステップS506)。ステップS506では、ステップS503と同様に、選択されたデータ管理サーバに書き込み対象データを送信することにより、その書き込み対象データの書き込みを要求すればよい。また、データ管理サーバ345は、自装置の座標およびアドレスが除かれたリストも、書き込み対象データと合わせて、選択されたデータ管理サーバに送信する。
この書き込み対象データおよびリストを受信したデータ管理サーバは、ステップS504〜S506の処理を行う。この結果、書き込み対象データは、リストに示される各データ管理サーバに順に送信され、その各データ管理サーバに記憶される。
また、アクセス先決定手段344は、リストから自装置の座標およびアドレスを削除した後、リストに座標が残っていなければ、その時点で処理を終了する。
本実施形態によれば、データ管理サーバおよびデータアクセスクライアントが、所定の計測サーバ339,340からの応答待ち時間に基づいて、コンピュータネットワークにおける自装置の座標を算出する。そして、読み込み時には、読み込み対象データを記憶しているデータ管理サーバのうち、最も近距離のデータ管理サーバを座標に基づいて特定し、そのデータ管理サーバからデータの読み込みを行う。また、書き込み時には、データを書き込むデータ管理サーバのリストの中から自装置と最も近距離のデータ管理サーバを選択し、そのデータ管理サーバに書き込み要求を行い、データを記憶したデータ管理サーバも同様の処理を行って、書き込むべきデータを順次、受け渡していく。このように、実際に計測した応答待ち時間に基づく座標から他の装置との距離を計算し、距離の短いデータ管理サーバを選択して読み込みや書き込みを行う。非特許文献1に記載された方法のようにアドレスが近い装置を選択してデータアクセスする場合には、アドレスが類似していても実際には応答速度が遅い場合があったが、本発明においては距離の近さと実際の応答速度との速さに相関関係があるので、データアクセスの応答速度を高速化することができる。また、スイッチやルータを多段に経由したデータ転送を減らすことができるので、データアクセス時のネットワークの輻輳の発生を少なくすることができる。
また、ネットワークのアドレスの類似性ではなく、実際に計測した応答待ち時間に基づく座標間の距離から近傍のデータ管理サーバを判定するので、本発明のデータアクセスシステムの導入のためにコンピュータネットワークにおけるアドレス体系を変更したり再設計したりする必要がない。従って、既存のシステムへの導入が容易である。
実施形態2.
以下に示す実施形態では、予め定められた数の冗長数で分散される同一形式のデータを複数のデータ管理サーバが記憶する場合を例にして説明する。ただし、以下に示す例では、データ毎に読み込みに関するQuorum数および書き込みに関するQuorum数が定められている。Quorum数は、充足定数である。従って、冗長数分のデータが複数のデータ管理サーバに分散管理されていても、読み込みを行う場合には、全てのデータを読み込む必要はなく、Quorum数分のデータを読み込んだ時点で読み込みを終了する。また、書き込みを行う場合には、冗長数分のデータ管理サーバに全てデータを書き込む必要はなく、Quorum数分のデータ管理サーバに対して書き込みを行った時点で書き込みを終了する。また、以下に示す例では、データ書き込み時には、データのバージョンを更新する。
図4は、本発明のデータアクセスシステムの第2の実施形態を示すブロック図である。第2の実施形態のデータアクセスシステムは、データ管理サーバ611〜619と、データアクセスクライアント620とを備える。データ管理サーバ611〜619およびデータアクセスクライアント620は、いずれもプログラム制御により動作するコンピュータ(中央処理装置、プロセッサ、データ処理装置)である。データ管理サーバは1台以上設けられ、以下、複数のデータ管理サーバが設けられる場合を例にして説明する。
各データ管理サーバは同様の構成であり、データ管理サーバ611を例にして、データ管理サーバの構成を説明する。データ管理サーバ611は、データ格納部641と、アドレス格納部642と、座標格納部643と、座標算出手段644と、アクセス先決定手段645と、データ管理手段646とを備える。
データ格納部641は、分散されたデータ650を記憶する記憶手段である。また、図1に示す例では、冗長数が4であり、データ650と同じ情報のデータ651〜653が、それぞれデータ管理サーバ612〜614のデータ格納部(図示せず)に記憶されている。これらのデータ650〜653は、同一のデータ名の同一形式のデータであり、複数のデータ管理サーバに分散されている。
なお、データ管理サーバには、ネットワークにおいてメッセージを到達させるIPアドレスの他に、予め大きさの定まったアドレス空間600の中で一意に定められた論理アドレスが割り当てられている。データ管理サーバに割り当てられた論理アドレスに基づいて、そのデータ管理サーバに格納されるべきデータのデータ名が決まる。
アドレス格納部642は、他のデータ管理サーバのメッセージ転送用のIPアドレスと、論理アドレスとを記憶する記憶手段である。座標格納部643は、各データ管理サーバのコンピュータネットワークにおける座標を記憶する記憶手段である。共通のデータ管理サーバのIPアドレスと論理アドレスと座標は関連付けて記憶されている。関連付けられたIPアドレス、論理アドレスおよび座標の組の集合は、IPアドレス、論理アドレスおよび座標の対応関係を表すテーブルとなる。
また、IPアドレスと論理アドレスとを対応付けて記憶していることにより、データ名から求められるハッシュ値の範囲と、その範囲に応じたデータ管理サーバ(IPアドレス)とを対応づけていることになる。例えば、図4に示すテーブル601を記憶しているとすると、ハッシュ値の範囲(1500,1953]とIPアドレス「10.1.1.1」とが対応付けられている。そして、データ名から求めたハッシュ値が(1500,1953]の範囲に含まれるデータは、IPアドレス「10.1.1.1」のデータ管理サーバに記憶されることを意味する。
このような、各データ管理サーバは、全てのハッシュ値の範囲について、ハッシュ値の範囲とデータ管理サーバおよびその座標の対応関係を記憶していてもよい。あるいは、各データ管理サーバは、テーブル601のエントリを一定数記憶するだけでもよい。すなわち、一部のハッシュ値の範囲について、ハッシュ値の範囲とデータ管理サーバおよびその座標の対応関係を記憶していてもよい。一部のハッシュ値の範囲における対応関係を管理する場合、Chord等の分散ハッシュテーブル(Distributed Hash Table:DHT)のアルゴリズムに基づき、各データ管理サーバがCoordinatorとなるデータ管理サーバを決定すればよい。例えば、Chordでは、各ノードが持っている自ノードの論理アドレスから近いハッシュ値範囲については、ハッシュ値の範囲を細かく区切ってデータ管理サーバと対応付け、自ノードの論理アドレスから遠いハッシュ値範囲については、範囲を粗く区切ってデータ管理サーバと対応付ける。データ名を指定したメッセージは、そのデータ名のハッシュ値に対応するデータ管理サーバに転送されていくことにより、最終的に、そのハッシュ値に対応するデータ管理サーバに転送される。このデータ管理サーバがCoordinatorである。Coordinatorとは、ハッシュ値をアドレス空間のサイズで除した値に対応するデータ管理サーバである。Coordinatorが記憶するデータのデータ名のハッシュ値をHとし、アドレス空間のサイズをSとすると、「H mod S 」の値の範囲とCoordinatorが対応している。従って、データ名によってCoordinatorを定めることができる。
座標算出手段644は、コンピュータネットワーク内における他の所定の装置(各計測サーバ640,641)にメッセージを送信し、その応答待ち時間に基づいてデータ管理サーバ611自身の座標を算出し、座標格納部643に記憶させる。座標算出手段644が、自装置の座標を算出する処理は、第1の実施形態における座標算出処理と同様である。
また、座標算出手段644は、データ管理サーバ611のIPアドレスおよび論理アドレスをアドレス格納部のエントリとして記憶する他のデータ管理サーバに送信する。データ管理サーバ611からその座標を受信した他のデータ管理サーバは、データ管理サーバ611のエントリと対応づけてその座標を座標格納部643に記憶させる。データ管理サーバ611も他のデータ管理サーバの座標を受信した場合も同様である。
自装置のIPアドレスおよび論理アドレスをエントリとして持つデータ管理サーバは、以下のように判定すればよい。各データ管理サーバを含むアドレス空間はリング状になっていて、Coorinatorからリングの一定方向に並んでいる冗長数分のデータ管理サーバ(Coordinatorを含む)のデータ管理サーバは、分散されたデータを記憶する。そして、Coordinatorのアドレス格納部642には、予め同じデータを記憶する他のデータ管理サーバのIPアドレスおよび論理アドレスを記憶させておく。この場合、Coordinatorと同じデータを記憶する他のデータ管理サーバは、Coordinatorに自装置の座標を送信する。Coordinatorは、同じデータを記憶する他のデータ管理サーバに死活監視メッセージを送信する。死活監視メッセージを受信したデータ管理サーバの座標算出手段644は、死活監視メッセージの送信元のデータ管理サーバに対して自装置の座標を送信すればよい。また、死活監視メッセージの受信時に、その応答とともに自装置の座標を送信してもよい。
なお、各データ管理サーバが全てのハッシュ値の範囲に関する対応関係を保持する場合には、自装置の座標をブロードキャスト送信すればよい。
アクセス先決定手段645は、データ管理手段646がデータアクセスクライアントからデータの読み込み要求または書き込み要求を受け付けると、アドレス格納部642および座標格納部643を参照し、そのデータのデータ名のハッシュ値からそのデータが格納されている複数のデータ管理サーバの座標を列挙する。そして、それらの座標の中から、自装置(本例ではデータ管理サーバ611)の座標に近い順に、必要数(読み込みQuorum数または書き込みQuorum数)のデータ管理サーバを特定し、そのデータ管理サーバの座標のリストを作成する。
データ管理手段646は、データアクセスクライアントからデータの読み込み要求または書き込み要求を受け付ける。そして、その要求に応じて、データ格納部650に格納された、データ名に対応するデータ650の読み込みあるいは書き込みを行う。また、読み込み要求されたデータに対して予め定められた読み込みに関するQuorum数(以下、読み込みQuorum数)が2以上である場合、自装置以外のデータ管理サーバからも読み込みを行うため、読み込みQuorum数分のデータ管理サーバの座標のリストをアクセス先決定手段645に作成させる。同様に、書き込み要求されたデータに対して予め定められたQuorum数(以下、書き込みQuorum数)が2以上である場合、自装置以外のデータ管理サーバにも読み込みを行うため、書き込みQuorum数分のデータ管理サーバの座標のリストをアクセス先決定手段645に作成させる。データ管理手段646は、そのリストに含まれる各データアクセス装置に対してデータの読み込みまたは書き込みを行う。
なお、読み込みQuorum数および書き込みQuorum数は、予めデータの種別毎に、スキーマ等の形で全てのデータ管理サーバあるいは、書き込みおよび読み込みを行う各データ管理サーバ(Coordinator)に与えられる。各データ管理サーバは、予め与えられた読み込みQuorum数および書き込みQuorum数を記憶しておけばよい。
また、読み込みQuorum数は、例えば、冗長数の1/2よりも大きな数として定めておく。また、読み込みQuorum数は、例えば、冗長数と書き込みQuorum数との差よりも大きな数として定めておく。
データ管理サーバ611の座標算出手段644、アクセス先決定手段645、データ管理手段646は、例えば、プログラムに従って動作するCPUによって実現される。プログラムがデータ管理サーバ611の記憶装置に記憶され、CPUがそのプログラムを読み込んで、座標算出手段644、アクセス先決定手段645およびデータ管理手段646として動作する。
データアクセスクライアント620は、アドレス格納部621と、データアクセス手段622とを備える。図4では、図示を省略しているが、データアクセスクライアント620は、第1の実施形態におけるデータアクセスクライアント320(図1参照)と同様に、自装置の座標を算出する座標算出手段を備える。
アドレス格納部621は、データアクセスクライアント620自身の多次元実数座標を記憶する記憶手段である。データアクセスクライアント620の座標算出手段(図示せず)は、他の所定の装置(計測サーバ640,641)からの応答待ち時間を用いて、データアクセスクライアント自身の座標を計算し、その座標をアドレス格納部621に記憶させる。
また、アドレス格納部621は、全てのハッシュ値の範囲について、ハッシュ値の範囲とデータ管理サーバおよびその座標の対応関係を記憶する。例えば、各データ管理サーバのIPアドレスと論理アドレスの対応関係を、テーブル601と同様に記憶しておけばよい。ただし、データ管理サーバの座標は記憶していなくてよい。
データアクセス手段621は、データに対する読み込みあるいは書き込みの要求が発生すると、そのデータのデータ名についてのCoordinatorとなるデータ管理サーバを決定する。そして、Coordinatorに決定したデータ管理サーバにデータの読み込みまたは書き込みを要求する。
データアクセス手段621は、データ名のハッシュ値を論理アドレス空間のサイズで除した値が属する範囲に応じたIPアドレスを特定することによってCoordinatorを決定すればよい。例えば、図4に示すテーブル601に示す論理アドレス(例えば「1500」等)とIPアドレス(例えば「10.9.10.81」等)との対応関係がアドレス格納部621に記憶されているとする。図4に示す例では、例えば、(1500:1953]というハッシュ値の範囲はIPアドレス「10.1.1.1」に対応づけられる。
データ名「/foo」のハッシュ値を論理アドレス空間のサイズで除した値が1800であったとする。この値は、(1500:1953]の範囲に属するので、データ名「/foo」についてのCoordinatorは、IPアドレスが10.1.1.1であるデータ管理サーバ611であると決定される。データアクセス手段621は、このようにして決定したCoordinatorに、データ名「/foo」のデータの読み込みまたは書き込みを要求する。
次に、動作について説明する。
まず、データ読み込み時の動作について説明する。図5は、データ読み込み時の処理経過の例を示すフローチャートである。データアクセスクライアント620のデータアクセス手段622にて、特定のデータ名のデータに対する読み込み要求が発生すると、 データアクセス手段622は、そのデータ名に応じたCoordinatorを決定する。この決定は、上記のように、データ名のハッシュ値を論理アドレス空間のサイズで除算した値を求め、その値が属する範囲に応じたIPアドレスを特定し、そのIPアドレスが示すデータ管理サーバをCoordinatorとして決定すればよい。データアクセス手段622は、そのCoordinatorに、例えばデータ名を送信することによって、そのデータの読み込みを要求する。以下、図4に示すデータ管理サーバ611がCoordinatorである場合を例にして説明する。
読み込み要求を受信したCoordinator(データ管理サーバ611)のデータ管理手段646は、読み込み対象となるデータ名に対応する読み込みQuorum数を取得する(ステップS701)。例えば、データ名に応じた読み込みQuorum数および書き込みQuorum数との関係を予め、そのデータ名についてのCoordinatorとなるデータ管理サーバに記憶させておき、データ管理手段646は、受信したデータ名に対応する読み込みQuorum数を読み込めばよい。
次に、アクセス先決定手段645は、要求されたデータを記憶している各データ管理サーバを特定する。アクセス先決定手段645は、リング状に接続されている各データ管理サーバのうち、Coordinatorであるデータ管理サーバから一方の方向に並んでいる冗長数分のデータ管理サーバを特定し、それらのデータ管理サーバからQuorum数分のデータ管理サーバを特定する(ステップS702)。ステップS702では、冗長数分の各データ管理サーバの座標とCoordinatorの座標との距離を求め、その距離が短い順にQuorum数分のデータ管理サーバを選択すればよい。
また、ステップS702では、データ管理サーバ毎に格納される同一物理収容リストや、実測遅延テーブルを用いて読み込みQuorum数分のデータ管理サーバを決定してもよい。図6は、同一物理収容リストの例を示す説明図である。同一物理収容リストは、通信応答が短いことが予めわかっているデータ管理サーバのリストである。例えば、同一ラックに収容されていたり、同じスイッチに接続されていたりするデータ管理サーバのリストである。図6に示す例は、同一ラックに収容されているデータ管理サーバのリストであり、各データ管理サーバをIPアドレスで表している。同一物理収容リストは、個々のデータ管理サーバに人手で予め記憶させておいてもよい。あるいは、個々のデータ管理サーバが、ネットワークトポロジを管理する構成管理システム(図示せず)から同一物理収容リストを取得して記憶しておいてもよい。同一物理収容リストによって、座標間の距離を計算しなくても、通信応答の短いデータ管理サーバを選択することができる。また、図7は、実測遅延テーブルの例を示す説明図である。実測遅延リストは、データ管理サーバが他のデータ管理サーバに過去にアクセスしたときの応答遅延(例えば応答待ち時間)の実測値である。各データ管理サーバは、例えば、他のデータ管理サーバからの応答待ち時間を計測したときに、その計測結果を実測遅延テーブルに追加すればよい。実測遅延リストによって、座標間の距離を計算しなくても、実際に応答時間の短いデータ管理サーバを選択することができる。
図8は、同一物理収容リストや実測遅延テーブルを用いてQuorum数分のデータ管理サーバを決定する動作の例を示すフローチャートである。図8を参照して、Quorum数分のデータ管理サーバを特定する処理を説明する。アクセス先決定手段645は、アクセス先(ここでは読み込み先)となるデータ管理サーバの候補リスト、および決定リストを初期化し、候補リストおよび決定リストに何も含まれない状態とする(ステップS1001)。アクセス先決定手段645は、冗長数分のデータ管理サーバを特定し、そのデータ管理サーバを候補リストに追加する(ステップS1002)。例えば、リング状に接続されている各データ管理サーバのうち、Coordinatorであるデータ管理サーバから一方の方向に並んでいる冗長数分のデータ管理サーバを特定すればよい。この結果、候補リストは、冗長数分のデータ管理サーバのリストとなり、この中からQuorum数分のデータ管理サーバが決定される。決定リストは、Quorum数分のデータ管理サーバが追加されるリストである。いずれのリストにおいても、データ管理サーバは、例えばIPアドレス等を用いて表せばよい。
アクセス先決定手段645は、候補リストに含まれるデータ管理サーバ数がQuorum数以上であるか否かを判定し(ステップS1003)、Quorum数未満であれば、異常終了とする。データ管理サーバ数がQuorum数以上あれば、アクセス先決定手段645は、候補リストに含まれるデータ管理サーバが同一物理収容リスト(図6参照)に含まれているか否かを判定する(ステップS1005)。含まれていなければステップS1007に移行する。含まれていれば、アクセス先決定手段645は、候補リストに含まれるデータ管理サーバのうち、同一物理収容リストに含まれているデータ管理サーバを決定リストに追加し、そのデータ管理サーバを候補リストから削除する(ステップS1005)。ただし、決定リストに含めるデータ管理サーバ数の上限はQuorum数である。
次に、アクセス先決定手段645は、決定リストに含まれるデータ管理サーバ数がQuorum数未満であるか否かを判定し(ステップS1006)、Quorum数異常であれば、正常に処理を終了する。Quorum数未満であれば、アクセス先決定手段645は、アクセス先決定手段645は、候補リストに含まれる各データ管理サーバと、アクセス元となるCoordinatorとの通信遅延(例えば応答待ち時間)を、座標間の距離として算出する(ステップS1007)。そして、アクセス先決定手段645は、実測遅延リストに含まれるデータ管理サーバについては、ステップS1007で算出した距離を、実測値に置き換える(ステップS1008)。次に、アクセス先決定手段645は、決定リストに含まれるデータ管理サーバがQuorum数に達する分だけ、距離の短い順に候補リストの中からデータ管理サーバを選択し、そのデータ管理サーバを決定リストに含める(ステップS1009)。このとき、そのデータ管理サーバを候補リストから除外する。
データ読み込み時には、上記のように読み込みQuorum数分のデータ管理サーバを決定すればよい。
この結果、読み込みQuorum数分のデータ管理サーバが決定され、ステップS702(図5参照)が終了する。ステップS702の次に、データ管理手段646は、ステップS702で決定された読み込みQuorum分のデータ管理サーバから、データを読み込む(ステップS703)。このとき、読み込みQuorum分のデータ管理サーバの中には、必ずCoordinator自身も含まれるので、データ管理手段646は、Coordinator自身のデータ格納部641からデータを読み込む。また、データ管理手段646は、他のデータ管理サーバに対して、データアクセスクライアント620から要求されたデータを要求する。Coordinatorからデータを要求された他のデータ管理サーバのデータ管理手段は、自装置のデータ格納部からデータを読み込み、Coordinatorに送信する。
続いて、データ管理手段646は、読み込みQuorum数分のデータ管理サーバからデータを読み込めたか否かを判定する(ステップS704)。読み込みQuorum数分のデータ管理サーバからデータを読み込めなかった場合(ステップS704におけるNO)、データ管理手段646は、候補リストに残っているデータ管理サーバの中から、読み込みの失敗数分のデータ管理サーバを距離の短い順に選択し(ステップS706)、ステップS703以降の処理を繰り返す。
読み込みQuorum数分のデータ管理サーバからデータを読み込めた場合(ステップS704におけるYES)、データ管理手段646は、読み込んだデータのうちの最新のバージョンのデータの値を取得し、データをデータアクセスクライアント620に送信する。
次に、データ書き込み時の動作について説明する。図9は、データ書き込み時の処理経過の例を示すフローチャートである。データアクセスクライアント620のデータアクセス手段622にて、特定のデータ名のデータに対する書き込み要求が発生すると、データアクセス手段622は、そのデータ名に応じたCoordinatorを決定する。そして、書き込むデータをCoordinatorに送信する。なお、Coordinatorの決定は、データ読み込み処理の場合と同様に行えばよい。
書き込み要求を受信したCoordinator(ここではデータ管理サーバ611とする)のデータ管理手段は、書き込み対象となるデータ名に対応するQuorum数を取得する(ステップS702)。次に、アクセス先決定手段645は、データを書き込むべきデータ管理サーバを書き込みQuorum数分特定する(ステップS802)。アクセス先決定手段645は、Coordinatorであるデータ管理サーバから一方の方向に並んでいる冗長数分のデータ管理サーバを特定し、それらのデータ管理サーバからQuorum数分のデータ管理サーバを特定する。そして、冗長数分の各データ管理サーバの座標とCoordinatorの座標との距離を求め、その距離が短い順にQuorum数分のデータ管理サーバを選択すればよい。また、既に説明したように、同一物理収容リストや実測遅延テーブルを用いてステップS1001〜S1009の処理を行ってもよい。
ステップS802の後、データ管理手段646は、ステップS702で決定された書き込みQuorum分のデータ管理サーバに、データを書き込む(ステップS703)。このとき、書き込みQuorum分のデータ管理サーバの中には、必ずCoordinator自身も含まれるので、データ管理手段646は、Coordinator自身のデータ格納部641にデータを書き込む。データを書き込む時には、データのバージョンを更新する。また、データ管理手段646は、他のデータ管理サーバに対してデータの書き込みを要求する。Coordinatorからデータの書き込みを要求された他のデータ管理サーバは、データのバージョンを更新して、自装置のデータ格納部にデータを書き込む。そして、データの書き込みに成功したか否かをCoordinatorに通知する。
Coordinatorのデータ管理手段646は、書き込みQuorum数分のデータ管理サーバに対する書き込みが成功したか否かを判定し(ステップS804)、成功していれば処理を終了する。失敗している場合、冗長数分のデータ管理サーバの中から、書き込みの失敗数分のデータ管理サーバを距離の短い順に選択し(ステップS806)、ステップS803以降の処理を繰り返す。
本実施形態では、Coordinatorが、実際に計測した応答待ち時間に基づく座標間の距離から近傍のデータ管理サーバを判定するので、第1の実施形態と同様に、データアクセスの応答速度を高速化でき、また、ネットワークの輻輳の発生を抑えられる。また、アドレス体系を変更したり再設計したりする必要がなく、既存のシステムへの導入が容易である。また、冗長数分の全てのデータ管理サーバに対して読み込みや書き込みを行う必要がなく、距離の近い充足定数(Quorum数)分のデータ管理サーバに対して読み込みや書き込みを行えばよい。従って、充足定数分以上のデータ管理サーバに対する不要な通信量や処理負荷を発生させずに、読み込みや書き込みの応答速度を高速化することができる。
また、同一形式のデータが分散して記憶されるので、故障時の耐性を高くすることができる。
実施形態3.
図10は、本発明のデータアクセスシステムの第3の実施形態を示すブロック図である。第3の実施形態のデータアクセスシステムは、データ管理サーバ1111〜1119と、データアクセスクライアント1120とを備える。各データ管理サーバおよびデータアクセスクライアントは、いずれもプログラム制御により動作するコンピュータである。本実施形態では、Coordinatorとなるデータ管理サーバは存在せず、データアクセスクライアントが、各データ管理サーバに対して直接データの読み込みや書き込みを要求する。以下、分散されるデータは、第2の実施形態と同様のデータである場合を例にして説明する。すなわち、読み込みQuorum数および書き込みQuorum数が定められ、データ書き込み時にはデータのバージョンは更新される。
また、第2の実施形態と同様に、各データ管理サーバには、IPアドレスおよび論理アドレスが割り当てられている。
各データ管理サーバは同様の構成であり、データ管理サーバ1111を例にして、データ管理サーバの構成を説明する。データ管理サーバ1111は、データ格納部1141と、座標算出手段1142と、データ管理手段1142とを備える。
データ格納部1141は、分散されたデータ1150を記憶する記憶手段である。また、図10に示す例では、冗長数が4であり、データ1150と同じ情報のデータ1151〜1153が、それぞれデータ管理サーバ1112〜1114のデータ格納部(図示せず)に記憶されている。これらのデータ1150〜1153は、同一のデータ名の同一形式のデータである。
座標算出手段1142は、コンピュータネットワーク内における他の所定の装置(各計測サーバ1140,1141)にメッセージを送信し、その応答待ち時間に基づいてデータ管理サーバ1111自身の座標を算出し、その座標をデータアクセスクライアント1101に送信する。データアクセスクライアント1101は、データ管理サーバから受信した座標を座標格納部1122に記憶させる。
データ管理手段1143は、データアクセスクライアント1120からの要求に応じて、データ格納部1150に記憶されたデータを読み込んでデータアクセスクライアント1120に送信したり、データ格納部1150にデータを記憶させたりせる。
座標算出手段1142およびデータ管理手段1143は、プログラムに従って動作するCPUによって実現される。プログラムがデータ管理サーバ1111の記憶装置に記憶され、CPUがそのプログラムを読み込んで、座標算出手段1142およびデータ管理手段1143として動作する。
データアクセスクライアント1120は、アドレス格納部1121と、座標格納部1122と、座標算出手段1123と、アクセス先決定手段1124と、データアクセス手段1125とを備える。
アドレス格納部1121は、各データ管理サーバのIPアドレスと論理アドレスを記憶する記憶手段である。座標格納部1122は、各データ管理サーバの座標およびデータアクセスクライアント1120自身の座標を記憶する記憶手段である。共通のデータ管理サーバのIPアドレスと論理アドレスと座標は関連付けて記憶され、第2の実施形態と同様に、データ名からデータ管理サーバを決定することが可能である。
座標算出手段1123は、コンピュータネットワーク内における他の所定の装置(各計測サーバ1140,1141)にメッセージを送信し、その応答待ち時間に基づいてデータアクセスクライアント1111自身の座標を算出し、その座標を座標格納部1122に記憶させる。座標算出手段1123,1142における座標の計算処理は、第1の実施形態と同様である。
アクセス先決定手段1124は、読み込みまたは書き込みの対象となるデータのデータ名からデータ管理サーバを特定する。なお、第2の実施形態と同様に、データ名のハッシュ値から一意に定められるデータ管理サーバからリングの一定方向に順に並ぶ冗長数分の管理サーバが、同じデータを記憶する。アクセス先決定手段1124は、データ名のハッシュ値を求め、そのハッシュ値に応じたデータ管理サーバを第2の実施形態と同様に特定する。さらに、そのデータ管理サーバに基づいて冗長数(図10に示す例では4つ)分のデータ管理サーバを特定すればよい。そして、アクセス先決定手段1124は、冗長数分の各データ管理サーバの座標と、データアクセスクライアント1120の座標との距離を計算し、距離の短い順にQuorum数のデータ管理サーバを、読み込みまたは書き込みの要求先として決定する。
データアクセス手段1125は、データ読み要求を行う場合、アクセス先決定手段1124に決定された読み込みQuorum数分のそれぞれのデータ管理サーバに対してデータの読み込み要求を送信する。そして、各データ管理サーバから受信したデータのうち、最新のバージョンのデータと選択する。また、データアクセス手段1125は、データ書き込み要求を行う場合、アクセス先決定手段1124に決定された書き込みQuorum数分のそれぞれのデータ管理サーバに対してデータの読み込み要求を送信する。
本実施形態でも、第2の実施形態と同様の効果が得られる。さらに、本実施形態の構成により、Coordinator役を担うデータ管理サーバの負荷が減る。また、さらに実際に計測した応答待ち時間から求めた座標を用いたデータアクセス先の選択を行うことで、データアクセスクライアントはCoordinatorを経由する必要がないため、データアクセス元に応じて、より近傍なデータ管理サーバに直接データを取得しに行くことができる。
なお、上記の各実施形態は、本発明の典型的な実施形態である。アドレスや座標の共有方法は、第1の実施形態のように集中的に管理する共有方法であってもよい。あるいは、第2、第3の実施形態のように分散管理する共有方法であってもよい。
また、第1の実施形態では、冗長数が書き込みに関する充足定数であり、読み込みに関する充足定数は1である。第1の実施形態において、充足定数として、第2の実施形態等同様の読み込みQuorum数や書き込みQuorum数が定められていてもよい。
また、上記の各実施形態において、1つのデータを分割して冗長符号化したデータをそれぞれ、関連するデータとして、複数のデータ管理サーバに分散させて記憶させてもよい。1つのデータを分割して冗長符号化したデータブロックの数をNとすると、Nが冗長数となり、N個のデータブロックをN台のデータ管理サーバに記憶させておけばよい。このN個のデータブロックの中には、パリティブロックも含める。すなわち、データアクセスクライアントは、分散させるデータを作成するときに、1つのデータを分割すると、その分割したデータブロックから、パリティブロックも作成する。パリティブロックを含むデータブロックの和が上記のNである。パリティブロックの数は1つに限定されない。この場合、冗長符号化後のデータブロック数Nを書き込みQuorum数と定めておけばよい。また、読み込みデータQuorum数は、元のデータを復元可能なデータブロック数と等しい値に定めればよい。読み込み処理時には、データアクセスクライアントが、読み込み要求時にQuorum数分のデータブロックを取得し、そのデータブロックから元のデータを復元すればよい。この場合、一部のデータブロックに障害が発生しても、Quorum数分のデータの読み込みを行うことで、元のデータを復元することができる。
以下、第1の実施形態の実施例を図11を参照して説明する。ここでは、データアクセスシステムが分散ファイルシステムである場合を例にして説明する。図11は、分散ファイルシステムが備えるデータ管理サーバの座標の例を示す散布図である。本例では、各データ管理サーバおよびデータアクセスクライアントは、自身の座標を2次元座標として算出するものとする。この場合、2以上の計測用サーバからの応答待ち時間を計測し、得られた各計測結果を2次元に次元圧縮するものとする。図11に示す2つの座標軸の絶対値には意味がなく、円形の印で表した各データ管理サーバとデータアクセスクライアント間の相対的な位置関係(ユークリッド距離)が通信遅延となる。
データアクセスクライアント1203がデータ名「/foo」のデータに読み込みあるいは書き込みを行う際には、アクセス先決定手段324(図1参照)は、マスタ(図11において図示せず)から、そのデータ名「/foo」に対応するデータ管理サーバとして、データ管理サーバ1204〜1206のIPアドレスおよび座標を取得する。
次に、データアクセスクライアント1203は、直接アクセスするデータ管理サーバを決定するため、マスタから得たデータ管理サーバ1204〜1206の座標(73,124)、(80,60)、(40,50)と、データアクセスクライアント自身の座標(70,120)とのユークリッド距離を算出し、5,61,76を得る。よって、データアクセスクライアント1203は、自装置からのユークリッド距離が5で最短となるデータ管理サーバ1204をアクセス先と決定し、データ管理サーバ1204に対してデータの読み込みあるいは書き込みを要求する。読み込みを要求する場合、データアクセスクライアント1203は、データ管理サーバ1204からデータを受信したときに読み込みを終了する。
書き込みの場合、データ管理サーバ1204は、自身のデータ格納部341(図1参照)にデータを書き込んだ後、その複製の書き込みを他のデータ管理サーバ1205,1206のいずれかに要求する。データ管理サーバ1204は、各データ管理サーバ1205,1206の座標と、自身の座標(73,124)との距離を算出し、算出結果として64,81を得る。この中で最短となる距離は64であるので、データ管理サーバ1204は、複製先をデータ管理サーバ1205に決定し、データ管理サーバ1205にデータの書き込みを要求する。データ管理サーバ1205は、そのデータを自装置のデータ格納部341(図1参照)に書き込み、残りのデータ管理サーバ1206にその複製の書き込みを要求する。データ管理サーバ1206は、この要求に応じて、データを自身のデータ格納部に書き込む。
次に、第2の実施形態の実施例を図12を参照して説明する。ここでは、データアクセスシステムが分散ストレージである場合を例にして説明する。図12は、第2の実施例における動作の例を示す説明図である。データ名「foo」のデータが、冗長数4でデータ管理サーバにデータが分散格納されており、書き込みQuorum数が3であり、読み込みQuorum数が2であるとする。
図12(a)は、書き込み時の動作の例を示している。データ名「foo」のハッシュ値を管理するCoordinatorがデータ管理サーバ1303であり、Coordinatorがデータアクセスクライアント(図12において図示せず)から値2の書き込み要求を受信しているとする。また、図12(a)に示すデータ1307が、データ管理サーバ1303〜1306に記憶されているとする。この場合、Coordinatorであるデータ管理サーバ1303は、自身のデータ格納部にデータを書き込む。さらに、データ管理サーバ1304〜1306のうち、座標空間において距離の近い2つのデータ管理サーバ1304,1305にデータを書き込む。すると、データ管理サーバ1303〜1035に記憶されていたデータの値は2に更新され、バージョンが2に更新される。
図12(b)は、読み込み時の動作を示している。データ名「foo」のハッシュ値を管理するCoordinatorがデータ管理サーバ1313であり、Coordinatorがデータアクセスクライアント(図12において図示せず)から読み込み要求を受信しているとする。また、図12(b)に示すデータ1317が、データ管理サーバ1313〜1316に記憶されているとする。Coordinatorであるデータ管理サーバ1313は、自身のデータ格納部からデータを読み込む。また、Coordinatorは、データ管理サーバ1314〜1316のうち、座標空間上で最も近距離にあるデータ管理サーバ1314を選択し、そのデータ管理サーバ1314からデータを読み込む。この結果得られた2つのデータが、データ1317のうち、枠で囲んだ2つであるとする。すると、最新バージョンは2であるため、そのデータの値2を読み込み結果とする。
次に、第3の実施形態の実施例を図13を参照して説明する。ここでは、データアクセスシステムが分散ストレージである場合を例にして説明する。図13は、第3の実施例における動作の例を示す説明図である。本例においても、データ名「foo」のデータが、冗長数4でデータ管理サーバにデータが分散格納されており、書き込みQuorum数が3であり、読み込みQuorum数が2であるとする。
図13(a)は、書き込み時の動作の例を示している。図13(a)に示すデータ1407がデータ管理サーバ1403〜1406に記憶されているとする。また、データアクセスクライアント1410が値2の書き込みを要求するものとする。データアクセスクライアント1410は、データ名「foo」のハッシュ値からデータを有しているデータアクセスクライアントを複数選択する。さらに、データアクセスクライアント1410は、その各座標と自身の座標との距離を算出し、距離が近い順に3つのデータ管理サーバ1043〜1404を選択する。データアクセスクライアント1410は、その3つのデータ管理サーバ1043〜1404に値2の書き込み要求を送信する。この結果、データ管理サーバ1043〜1404に記憶されていたデータの値は2に更新され、バージョンが2に更新される。
図13(b)は、読み込み時の動作を示している。データ名「foo」のデータがデータ管理サーバ1413〜1416に記憶されている。データアクセスクライアント1419は、データ名「foo」のハッシュ値からデータを有しているデータアクセスクライアントを複数選択する。データアクセスクライアント1419は、その各座標と自身の座標との距離を算出し、距離が近い順に2つのデータ管理サーバ1415,1416を選択する。データアクセスクライアント1419は、その2つのデータ管理サーバ1415,1416からデータを読み込む。この結果得られた2つのデータが、データ1417のうち、枠で囲んだ2つであるとする。すると、最新バージョンは2であるため、そのデータの値2を読み込み結果とする。
以上のように、分散環境においてデータの堅牢性を維持しつつ、複数ノード間でのデータ共有ができる。
以下、本発明の概要を説明する。図14は、本発明の概要を示すブロック図である。本発明のデータアクセスシステムは、1つ以上のデータ処理装置71(例えば、データ管理サーバ311等)を備え、コンピュータネットワークにおけるデータ処理装置の位置を表した多次元の実座標であって、他のデータ処理装置が読み込みまたは書き込みを行うことが可能な分散されたデータを記憶する各データ処理装置の位置を表した座標を記憶する座標記憶手段85(例えば、マスタ330)を備える。各データ処理装置71は、所定の装置(例えば計測サーバ399,340)との通信遅延の計測結果から自装置のコンピュータネットワークにおける座標を決定する座標決定手段81(例えば座標算出手段343)と、分散されたデータを記憶するデータ記憶手段82(例えば、データ格納部341)とを備える。また、データアクセスシステムは、分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストの中から、候補の座標と自装置の座標との距離に基づいて、読み込み先または書き込み先となるデータ処理装置を決定するアクセス先決定手段83(例えばアクセス先決定手段344)を備える。
そのような構成により、通信遅延の計測結果から求めた座標間の距離に基づいて読み込み先または書き込み先となるデータ処理装置を決定するので、通信応答を短くし、ネットワークの輻輳の発生を少なくすることができる。また、アドレスに依存せずに、読み込み先または書き込み先となるデータ処理装置を決定するので、アドレス体系を変更等せずに、既存のシステムに導入することができる。
また、上記の実施形態には、座標記憶手段が、分散されたデータを記憶するデータ処理装置とは別に設けられた装置であるマスタ(例えば、マスタ330)に備えられ、マスタは、分散されたデータを指定する情報を受信すると、そのデータを記憶する各データ処理装置の座標を出力する応答手段(例えば、アドレス応答手段333)を備える構成が開示されている。
また、上記の実施形態には、分散されたデータの読み込みまたは書き込みの要求元であるクライアント装置(例えば、データアクセスクライアント320)を備え、クライアント装置が、所定の装置(例えば、計測サーバ339,340)との通信遅延の計測結果から自装置のコンピュータネットワークにおける座標を決定するクライアント座標決定手段(例えば、座標算出手段322)と、読み込みまたは書き込みの対象である分散されたデータを指定する情報をマスタに送信して、マスタからそのデータを記憶する各データ処理装置の座標を受信し、分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストとして、受信した座標のリストを作成する座標取得手段(例えば、アクセス先決定手段323)と、座標取得手段が読み込み対象である分散されたデータを指定する情報をマスタに送信して得たリストに含まれる座標と当該クライアント装置の座標との距離に基づいて、読み込み先となるデータ処理装置を決定する読み込み先決定手段(例えば、アクセス先決定手段323)とを備える構成が開示されている。
また、上記の実施形態には、アクセス先決定手段83が、データ記憶手段を備える各データ処理装置71に備えられ、座標のリストとして分散されたデータの書き込み先の候補となるデータ処理装置の座標のリストが入力され、リストのうち未だデータの書き込みが完了していない候補の座標と自装置の座標との距離に基づいて、書き込み先となるデータ処理装置を決定し、各データ処理装置71が、リストおよび書き込み対象である分散されたデータを受信すると、当該データを自装置のデータ記憶手段82に記憶させるデータ書き込み手段(例えば、データ管理手段345)と、リストから自装置の座標を除いたリストと分散されたデータを、アクセス先決定手段83が決定したデータ処理装置に送信する送信手段(例えば、データ管理手段)とを備え、クライアント装置が、座標取得手段が書き込み対象である分散されたデータを指定する情報をマスタに送信して得たリストに含まれる座標とクライアント装置の座標との距離に基づいてリストの送信先となるデータ処理装置を決定するリスト送信先決定手段(例えば、アクセス先決定手段323)と、リスト送信先決定手段によって決定されたデータ処理装置にリストと分散されたデータとを送信するリスト送信手段(例えばデータアクセス手段324)とを備える構成が開示されている。
また、上記の実施形態には、座標記憶手段85およびアクセス先決定手段83が、データ記憶手段82を備える各データ処理装置71に備えられ、アクセス先決定手段83が、分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストの中から、読み込みまたは書き込みの対象となる分散されたデータに対して定められている読み込み先または書き込み先となるデータ処理装置数である充足定数分(例えば、Quorum数)だけ、データ処理装置を決定し、各データ処理装置が、アクセス先決定手段83によって決定された各データ処理装置に対して分散されたデータの読み込みまたは書き込みを行うアクセス手段(例えばデータ管理手段646)を備える構成が開示されている。
また、上記の実施形態には、分散されたデータの読み込みまたは書き込みの要求元であるクライアント装置(例えばデータアクセスクライアント1120)を備え、座標記憶手段85およびアクセス先決定手段83が、クライアント装置に備えられ、アクセス先決定手段83は、分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストの中から、読み込みまたは書き込みの対象となる分散されたデータに対して定められている読み込み先または書き込み先となるデータ処理装置数である充足定数(例えば、Quorum数)分だけ、データ処理装置を決定し、各クライアント装置が、アクセス先決定手段83によって決定された各データ処理装置に対して分散されたデータの読み込みまたは書き込みを行うアクセス手段を備える構成が開示されている。
また、分散されたデータが、予め与えられた数の冗長数で分散された同一形式のデータであり、書き込みに関する充足定数(例えば、書き込みQuorum数)が、冗長数の1/2より大きな数に定められ、読み込みに関する充足定数(例えば、読み込みQuorum数)が、冗長数と書き込みに関する充足定数との差よりも大きな数に定められる場合が開示されている。
また、分散されたデータが、1つのデータを分割して冗長符号化したデータブロックであり、データブロック数の数を冗長数としたときに、書き込みに関する充足定数(例えば、書き込みQuorum数)が、冗長数に等しい数に定められ、読み込みに関する充足定数(例えば、読み込みQuorum数)が、1つのデータを復元可能なデータブロックの数に等しい値に定められる場合が開示されている。
本発明は、データセンタ内や企業システムにおける分散ストレージや、分散ファイルシステム、分散データベース、分散処理システムにおいて、特定のノードの障害に対しても堅牢性が保たれ、なおかつデータの一貫性が保たれ、データへの応答速度の速いシステムとして利用可能である。
本発明のデータアクセスシステムの第1の実施形態を示すブロック図である。 データ読み込み時の処理経過の例を示す説明図である。 データ書き込み時の処理経過の例を示す説明図である。 本発明のデータアクセスシステムの第2の実施形態を示すブロック図である。 データ読み込み時の処理経過の例を示すフローチャートである。 同一物理収容リストの例を示す説明図である。 実測遅延テーブルの例を示す説明図である。 同一物理収容リストや実測遅延テーブルを用いてQuorum数分のデータ管理サーバを決定する動作の例を示すフローチャートである。 データ書き込み時の処理経過の例を示すフローチャートである。 本発明のデータアクセスシステムの第3の実施形態を示すブロック図である。 分散ファイルシステムが備えるデータ管理サーバの座標の例を示す散布図である。 第2の実施例における動作の例を示す説明図である。 第3の実施例における動作の例を示す説明図である。 本発明の概要を示すブロック図である。 非特許文献1に記載されたデータアクセスシステムの例を模式的に示す説明図である。 非特許文献2に記載されたデータアクセスシステムの例を模式的に示す説明図である。
符号の説明
311〜318 データ管理サーバ
320 データアクセスクライアント
321 座標格納部
322 座標算出手段
323 アクセス先決定手段
324 データアクセス手段
330 マスタ
331 アドレス格納部
332 座標格納部
333 アドレス応答手段
339,340 計測サーバ
342 座標格納部
343 座標算出手段
344 アクセス先決定手段
345 データ管理手段

Claims (17)

  1. 1つ以上のデータ処理装置を備え、
    コンピュータネットワークにおけるデータ処理装置の位置を表した多次元の実座標であって、他のデータ処理装置が読み込みまたは書き込みを行うことが可能な分散されたデータを記憶する各データ処理装置の位置を表した座標を記憶する座標記憶手段を備え、
    各データ処理装置は、
    所定の装置との通信遅延の計測結果から自装置のコンピュータネットワークにおける座標を決定する座標決定手段と、
    分散されたデータを記憶するデータ記憶手段とを備え、
    分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストの中から、候補の座標と自装置の座標との距離に基づいて、読み込み先または書き込み先となるデータ処理装置を決定するアクセス先決定手段を備える
    ことを特徴とするデータアクセスシステム。
  2. 座標記憶手段は、分散されたデータを記憶するデータ処理装置とは別に設けられた装置であるマスタに備えられ、
    前記マスタは、分散されたデータを指定する情報を受信すると、当該データを記憶する各データ処理装置の座標を出力する応答手段を備える
    請求項1に記載のデータアクセスシステム。
  3. 分散されたデータの読み込みまたは書き込みの要求元であるクライアント装置を備え、
    前記クライアント装置は、
    所定の装置との通信遅延の計測結果から自装置のコンピュータネットワークにおける座標を決定するクライアント座標決定手段と、
    読み込みまたは書き込みの対象である分散されたデータを指定する情報をマスタに送信して、マスタから当該データを記憶する各データ処理装置の座標を受信し、前記分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストとして、受信した座標のリストを作成する座標取得手段と、
    座標取得手段が読み込み対象である分散されたデータを指定する情報をマスタに送信して得たリストに含まれる座標と当該クライアント装置の座標との距離に基づいて、読み込み先となるデータ処理装置を決定する読み込み先決定手段とを備える
    請求項2に記載のデータアクセスシステム。
  4. アクセス先決定手段は、データ記憶手段を備える各データ処理装置に備えられ、座標のリストとして分散されたデータの書き込み先の候補となるデータ処理装置の座標のリストが入力され、当該リストのうち未だ前記データの書き込みが完了していない候補の座標と自装置の座標との距離に基づいて、書き込み先となるデータ処理装置を決定し、
    各データ処理装置は、
    前記リストおよび書き込み対象である分散されたデータを受信すると、当該データを自装置のデータ記憶手段に記憶させるデータ書き込み手段と、
    前記リストから自装置の座標を除いたリストと前記分散されたデータを、アクセス先決定手段が決定したデータ処理装置に送信する送信手段とを備え、
    前記クライアント装置は、
    座標取得手段が書き込み対象である分散されたデータを指定する情報をマスタに送信して得たリストに含まれる座標と当該クライアント装置の座標との距離に基づいて前記リストの送信先となるデータ処理装置を決定するリスト送信先決定手段と、
    リスト送信先決定手段によって決定されたデータ処理装置に前記リストと前記分散されたデータとを送信するリスト送信手段とを備える
    請求項3に記載のデータアクセスシステム。
  5. 座標記憶手段およびアクセス先決定手段は、データ記憶手段を備える各データ処理装置に備えられ、
    前記アクセス先決定手段は、分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストの中から、読み込みまたは書き込みの対象となる分散されたデータに対して定められている読み込み先または書き込み先となるデータ処理装置数である充足定数分だけ、データ処理装置を決定し、
    各データ処理装置は、
    前記アクセス先決定手段によって決定された各データ処理装置に対して分散されたデータの読み込みまたは書き込みを行うアクセス手段を備える
    請求項1に記載のデータアクセスシステム。
  6. 分散されたデータの読み込みまたは書き込みの要求元であるクライアント装置を備え、
    座標記憶手段およびアクセス先決定手段は、前記クライアント装置に備えられ、
    前記アクセス先決定手段は、分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストの中から、読み込みまたは書き込みの対象となる分散されたデータに対して定められている読み込み先または書き込み先となるデータ処理装置数である充足定数分だけ、データ処理装置を決定し、
    各クライアント装置は、
    前記アクセス先決定手段によって決定された各データ処理装置に対して分散されたデータの読み込みまたは書き込みを行うアクセス手段を備える
    請求項1に記載のデータアクセスシステム。
  7. 分散されたデータは、予め与えられた数の冗長数で分散された同一形式のデータであり、
    書き込みに関する充足定数は、前記冗長数の1/2より大きな数に定められ、読み込みに関する充足定数は、前記冗長数と前記書き込みに関する充足定数との差よりも大きな数に定められる
    請求項1から請求項6のうちのいずれか1項に記載のデータアクセスシステム。
  8. 分散されたデータは、1つのデータを分割して冗長符号化したデータブロックであり、
    前記データブロック数の数を冗長数としたときに、書き込みに関する充足定数は、前記冗長数に等しい数に定められ、読み込みに関する充足定数は、前記1つのデータを復元可能なデータブロックの数に等しい値に定められる
    請求項1から請求項6のうちのいずれか1項に記載のデータアクセスシステム。
  9. 他のデータ処理装置が読み込みまたは書き込みを行うことが可能な分散されたデータを記憶するデータ処理装置とは別に設けられた装置であるマスタが、コンピュータネットワークにおけるデータ処理装置の位置を表した多次元の実座標であって、分散されたデータを記憶する各データ処理装置の位置を表した座標を記憶し、
    分散されたデータの読み込みまたは書き込みの要求元であるクライアント装置が、
    所定の装置との通信遅延の計測結果から自装置のコンピュータネットワークにおける座標を決定し、
    読み込み対象である分散されたデータを記憶する各データ処理装置の座標を前記マスタから取得し、前記分散されたデータの読み込み先の候補となるデータ処理装置の座標のリストとして、受信した座標のリストを作成し、
    リストに含まれる座標と当該クライアント装置の座標との距離に基づいて、読み込み先となるデータ処理装置を決定する
    ことを特徴とするデータアクセス方法。
  10. クライアント装置が、
    書き込み対象である分散されたデータを記憶する各データ処理装置の座標を前記マスタから取得し、前記分散されたデータの書き込み先の候補となるデータ処理装置の座標のリストとして、受信した座標のリストを作成し、
    前記リストに含まれる座標と当該クライアント装置の座標との距離に基づいて前記リストの送信先となるデータ処理装置を決定し、
    決定されたデータ処理装置に前記リストを送信し、
    データ処理装置は、
    所定の装置との通信遅延の計測結果から自装置のコンピュータネットワークにおける座標を決定し、
    分散されたデータの書き込み先の候補となるデータ処理装置の座標のリストが入力されると、当該リストのうち未だ前記データの書き込みが完了していない候補の座標と自装置の座標との距離に基づいて、書き込み先となるデータ処理装置を決定する
    請求項9に記載のデータアクセス方法。
  11. 一の装置が、他のデータ処理装置が読み込みまたは書き込みを行うことが可能な分散されたデータを記憶する各データ処理装置にアクセスするデータアクセス方法であって、
    前記一の装置が、
    所定の装置との通信遅延の計測結果から、多次元の実座標であって自装置のコンピュータネットワークにおける位置を表す座標を決定し、
    分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストの中から、候補の座標と自装置の座標との距離に基づいて、読み込みまたは書き込みの対象となる分散されたデータに対して定められている読み込み先または書き込み先となるデータ処理装置数である充足定数分だけ、データ処理装置を決定し、
    決定した各データ処理装置に対して分散されたデータの読み込みまたは書き込みを行う
    ことを特徴とするデータアクセス方法。
  12. 他のデータ処理装置が読み込みまたは書き込みを行うことが可能な分散されたデータの読み込みまたは書き込みの要求元であるクライアント装置であって、
    所定の装置との通信遅延の計測結果から、多次元の実座標であって自装置のコンピュータネットワークにおける位置を表す座標を決定するクライアント座標決定手段と、
    読み込みまたは書き込みの対象である分散されたデータを指定する情報を、分散されたデータを記憶する各データ処理装置の座標を記憶するマスタに送信して、前記マスタから当該データを記憶する各データ処理装置の座標を受信し、前記分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストとして、受信した座標のリストを作成する座標取得手段と、
    座標取得手段が読み込み対象である分散されたデータを指定する情報をマスタに送信して得たリストに含まれる座標と当該クライアント装置の座標との距離に基づいて、読み込み先となるデータ処理装置を決定する読み込み先決定手段とを備える
    ことを特徴とするクライアント装置。
  13. 所定の装置との通信遅延の計測結果から、多次元の実座標であって自装置のコンピュータネットワークにおける位置を表す座標を決定する座標決定手段と、
    他のデータ処理装置が読み込みまたは書き込みを行うことが可能な分散されたデータを記憶するデータ記憶手段と、
    分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストの中から、候補の座標と自装置の座標との距離に基づいて、読み込み先または書き込み先となるデータ処理装置を決定するアクセス先決定手段とを備え、
    前記アクセス先決定手段は、前記リストとして、分散されたデータの書き込み先の候補となるデータ処理装置の座標のリストが入力されると、当該リストのうち未だ前記データの書き込みが完了していない候補の座標と自装置の座標との距離に基づいて、書き込み先となるデータ処理装置を決定する
    ことを特徴とするデータ処理装置。
  14. 他のデータ処理装置が読み込みまたは書き込みを行うことが可能な分散されたデータを記憶する各データ処理装置にアクセスするデータ処理装置であって、
    所定の装置との通信遅延の計測結果から、多次元の実座標であって自装置のコンピュータネットワークにおける位置を表す座標を決定する座標決定手段と、
    分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストの中から、候補の座標と自装置の座標との距離に基づいて、読み込みまたは書き込みの対象となる分散されたデータに対して定められている読み込み先または書き込み先となるデータ処理装置数である充足定数分だけ、データ処理装置を決定するアクセス先決定手段と、
    決定された各データ処理装置に対して、分散されたデータの読み込みまたは書き込みを行うアクセス手段とを備える
    ことを特徴とするデータ処理装置。
  15. コンピュータに、
    所定の装置との通信遅延の計測結果から、多次元の実座標であって自装置のコンピュータネットワークにおける位置を表す座標を決定する座標決定処理、
    他のデータ処理装置が読み込みまたは書き込みを行うことが可能な分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストの中から、候補の座標と自装置の座標との距離に基づいて、読み込み先または書き込み先となるデータ処理装置を決定するアクセス先決定処理を実行させ、
    前記アクセス先決定処理で、前記リストとして、分散されたデータの書き込み先の候補となるデータ処理装置の座標のリストが入力されると、当該リストのうち未だ前記データの書き込みが完了していない候補の座標と自装置の座標との距離に基づいて、書き込み先となるデータ処理装置を決定させる
    ためのデータアクセス用プログラム。
  16. 他のデータ処理装置が読み込みまたは書き込みを行うことが可能な分散されたデータの読み込みまたは書き込みの要求元であるコンピュータに搭載されるデータアクセス用プログラムであって、
    前記コンピュータに、
    所定の装置との通信遅延の計測結果から、多次元の実座標であって自装置のコンピュータネットワークにおける位置を表す座標を決定するクライアント座標決定処理、
    読み込みまたは書き込みの対象である分散されたデータを指定する情報を、分散されたデータを記憶する各データ処理装置の座標を記憶するマスタに送信して、前記マスタから当該データを記憶する各データ処理装置の座標を受信し、前記分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストとして、受信した座標のリストを作成する座標取得処理、および、
    読み込み対象である分散されたデータを指定する情報をマスタに送信して得たリストに含まれる座標と当該クライアント装置の座標との距離に基づいて、読み込み先となるデータ処理装置を決定する読み込み先決定処理
    を実行させるためのデータアクセス用プログラム。
  17. 他のデータ処理装置が読み込みまたは書き込みを行うことが可能な分散されたデータを記憶する各データ処理装置にアクセスするコンピュータに搭載されるデータアクセス用プログラムであって、
    前記コンピュータに、
    所定の装置との通信遅延の計測結果から、多次元の実座標であって自装置のコンピュータネットワークにおける位置を表す座標を決定する座標決定処理、
    分散されたデータの読み込み先または書き込み先の候補となるデータ処理装置の座標のリストの中から、候補の座標と自装置の座標との距離に基づいて、読み込みまたは書き込みの対象となる分散されたデータに対して定められている読み込み先または書き込み先となるデータ処理装置数である充足定数分だけ、データ処理装置を決定するアクセス先決定処理、および、
    決定された各データ処理装置に対して、分散されたデータの読み込みまたは書き込みを行うアクセス処理
    を実行させるためのデータアクセス用プログラム。
JP2008240771A 2008-09-19 2008-09-19 データアクセスシステム、データアクセス方法およびデータアクセス用プログラム Pending JP2010074604A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008240771A JP2010074604A (ja) 2008-09-19 2008-09-19 データアクセスシステム、データアクセス方法およびデータアクセス用プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008240771A JP2010074604A (ja) 2008-09-19 2008-09-19 データアクセスシステム、データアクセス方法およびデータアクセス用プログラム

Publications (1)

Publication Number Publication Date
JP2010074604A true JP2010074604A (ja) 2010-04-02

Family

ID=42205957

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008240771A Pending JP2010074604A (ja) 2008-09-19 2008-09-19 データアクセスシステム、データアクセス方法およびデータアクセス用プログラム

Country Status (1)

Country Link
JP (1) JP2010074604A (ja)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011136261A1 (ja) * 2010-04-28 2011-11-03 日本電気株式会社 ストレージシステム、ストレージシステムの制御方法、及びコンピュータプログラム
JP2013246676A (ja) * 2012-05-28 2013-12-09 Ntt Docomo Inc データベース管理装置及びデータベース管理方法
JP2014038485A (ja) * 2012-08-16 2014-02-27 Nec Corp 情報処理システム、データバックアップ方法、データバックアッププログラム
JP2014153753A (ja) * 2013-02-05 2014-08-25 Ntt Data Corp 情報管理装置、情報管理方法、情報管理プログラム
JP2015520588A (ja) * 2012-06-08 2015-07-16 株式会社Nttドコモ Fec技法を使用したキー値に基づく記憶システムに対する低遅延アクセスのための方法及びシステム
US9110595B2 (en) 2012-02-28 2015-08-18 AVG Netherlands B.V. Systems and methods for enhancing performance of software applications
JP2017174042A (ja) * 2016-03-23 2017-09-28 日本電気株式会社 情報処理システム、情報処理方法、及び、プログラム
US10007450B2 (en) 2015-03-02 2018-06-26 Fujitsu Limited Storage controller, method, and storage system
JP2018537736A (ja) * 2016-11-16 2018-12-20 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 分散ファイルシステムの複数のクラスタの管理
US10685038B2 (en) 2015-10-29 2020-06-16 Dropbox Inc. Synchronization protocol for multi-premises hosting of digital content items
US10691718B2 (en) 2015-10-29 2020-06-23 Dropbox, Inc. Synchronization protocol for multi-premises hosting of digital content items
US10699025B2 (en) 2015-04-01 2020-06-30 Dropbox, Inc. Nested namespaces for selective content sharing
US10819559B2 (en) 2016-01-29 2020-10-27 Dropbox, Inc. Apparent cloud access for hosted content items
US10963430B2 (en) 2015-04-01 2021-03-30 Dropbox, Inc. Shared workspaces with selective content item synchronization
US11290531B2 (en) 2019-12-04 2022-03-29 Dropbox, Inc. Immediate cloud content item creation from local file system interface

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSNG200700826015; 島田 明男 他: '通信の揺らぎを考慮したオーバーレイ開発支援環境' 情報処理学会研究報告 第2007巻,第83号, 20070803, p.119〜126 *
JPN6012036046; 島田 明男 他: '通信の揺らぎを考慮したオーバーレイ開発支援環境' 情報処理学会研究報告 第2007巻,第83号, 20070803, p.119〜126 *
JPN7012002689; Sanjay Ghemawat 他: 'The Google file system' SOSP '03: Proceedings of the nineteenth ACM symposium on Operating systems principles , 200312, p.29-43 *
JPN7012002690; Giuseppe DeCandia 他: 'Dynamo: amazon's highly available key-value store' SOSP '07: Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles , 200710, p.205-220 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011136261A1 (ja) * 2010-04-28 2011-11-03 日本電気株式会社 ストレージシステム、ストレージシステムの制御方法、及びコンピュータプログラム
JP5803908B2 (ja) * 2010-04-28 2015-11-04 日本電気株式会社 ストレージシステム及びストレージシステムの制御方法
US9110595B2 (en) 2012-02-28 2015-08-18 AVG Netherlands B.V. Systems and methods for enhancing performance of software applications
JP2013246676A (ja) * 2012-05-28 2013-12-09 Ntt Docomo Inc データベース管理装置及びデータベース管理方法
JP2015520588A (ja) * 2012-06-08 2015-07-16 株式会社Nttドコモ Fec技法を使用したキー値に基づく記憶システムに対する低遅延アクセスのための方法及びシステム
JP2014038485A (ja) * 2012-08-16 2014-02-27 Nec Corp 情報処理システム、データバックアップ方法、データバックアッププログラム
JP2014153753A (ja) * 2013-02-05 2014-08-25 Ntt Data Corp 情報管理装置、情報管理方法、情報管理プログラム
US10007450B2 (en) 2015-03-02 2018-06-26 Fujitsu Limited Storage controller, method, and storage system
US10699025B2 (en) 2015-04-01 2020-06-30 Dropbox, Inc. Nested namespaces for selective content sharing
US10963430B2 (en) 2015-04-01 2021-03-30 Dropbox, Inc. Shared workspaces with selective content item synchronization
US11580241B2 (en) 2015-04-01 2023-02-14 Dropbox, Inc. Nested namespaces for selective content sharing
US10685038B2 (en) 2015-10-29 2020-06-16 Dropbox Inc. Synchronization protocol for multi-premises hosting of digital content items
US10691718B2 (en) 2015-10-29 2020-06-23 Dropbox, Inc. Synchronization protocol for multi-premises hosting of digital content items
US10740350B2 (en) 2015-10-29 2020-08-11 Dropbox, Inc. Peer-to-peer synchronization protocol for multi-premises hosting of digital content items
US11144573B2 (en) 2015-10-29 2021-10-12 Dropbox, Inc. Synchronization protocol for multi-premises hosting of digital content items
US10819559B2 (en) 2016-01-29 2020-10-27 Dropbox, Inc. Apparent cloud access for hosted content items
JP2017174042A (ja) * 2016-03-23 2017-09-28 日本電気株式会社 情報処理システム、情報処理方法、及び、プログラム
JP2018537736A (ja) * 2016-11-16 2018-12-20 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 分散ファイルシステムの複数のクラスタの管理
US11290531B2 (en) 2019-12-04 2022-03-29 Dropbox, Inc. Immediate cloud content item creation from local file system interface

Similar Documents

Publication Publication Date Title
JP2010074604A (ja) データアクセスシステム、データアクセス方法およびデータアクセス用プログラム
US11537482B2 (en) Method and apparatus for reading and writing committed data
JP4538454B2 (ja) コンピュータ・ネットワークにおける電子文書のレプリカの検索
US9081841B2 (en) Asynchronous distributed garbage collection for replicated storage clusters
JP6507167B2 (ja) 分散ストレージシステム上でデータを分散させること
EP2501108B1 (en) Massively scalable object storage system
JP5850044B2 (ja) 情報処理装置、分散ファイルシステム、クライアント装置、情報処理方法、および、コンピュータ・プログラム
US10956393B2 (en) Data storage system and process for providing distributed storage in a scalable cluster system and computer program for such data storage system
US20160266811A1 (en) Mirror vote synchronization
Malensek et al. Galileo: A framework for distributed storage of high-throughput data streams
JP2009259007A (ja) 分散格納方法、分散格納システム及び分散格納装置
CN106605217B (zh) 用于将应用从一个站点移动到另一站点的方法和系统
US9262219B2 (en) Distributed processing system, distributed processing method, and distributed processing program
KR101527634B1 (ko) 샤딩 서비스를 제공하는 방법 및 장치
US11341009B1 (en) Directing placement of data in cloud storage nodes
KR101601877B1 (ko) 분산 파일시스템에서 클라이언트가 데이터 저장에 참여하는 장치 및 방법
JP6305645B2 (ja) ホスト型分析のための動的n次元キューブ
JP2007317138A (ja) データ記憶システム、ファイル検索装置およびプログラム
CN109587185B (zh) 云存储系统和云存储系统中的对象处理方法
JP6241449B2 (ja) データ管理システム及びデータ管理方法
JP2009289161A (ja) クラスタ型ストレージシステム、そのノード装置、データの読み出しおよび書き込み制御方法およびそのプログラム
JP2010271797A (ja) 分散ストレージにおけるデータ位置管理方法及び装置及びプログラム
KR20180088076A (ko) 토러스 네트워크를 이용하는 분산 파일 시스템 및 토러스 네트워크를 이용하는 분산 파일 시스템의 운영 방법
JP6284395B2 (ja) データ格納制御装置、データ格納制御方法、及びプログラム
Guroob et al. Efficient replica consistency model (ERCM) for update propagation in data grid environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110811

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120717

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130205