JP5488225B2 - データ管理システム、データ管理方法、及びデータ管理プログラム - Google Patents

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

Info

Publication number
JP5488225B2
JP5488225B2 JP2010132343A JP2010132343A JP5488225B2 JP 5488225 B2 JP5488225 B2 JP 5488225B2 JP 2010132343 A JP2010132343 A JP 2010132343A JP 2010132343 A JP2010132343 A JP 2010132343A JP 5488225 B2 JP5488225 B2 JP 5488225B2
Authority
JP
Japan
Prior art keywords
identifier
data
data management
target
request
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.)
Expired - Fee Related
Application number
JP2010132343A
Other languages
English (en)
Other versions
JP2011258016A (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 JP2010132343A priority Critical patent/JP5488225B2/ja
Priority to US13/064,549 priority patent/US20110307533A1/en
Publication of JP2011258016A publication Critical patent/JP2011258016A/ja
Application granted granted Critical
Publication of JP5488225B2 publication Critical patent/JP5488225B2/ja
Priority to US14/925,104 priority patent/US20160048476A1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、データ管理システム、データ管理方法、及びデータ管理プログラムに関し、特にデータを分散管理するデータ管理システム、データ管理方法、及びデータ管理プログラムに関する。
DHT(Distributed Hash Table)では、データ(コンテンツ)に対応するキー(例えば、データ名等)のハッシュ値が空間に写像され、その空間が複数のノードによって分割管理される。各ノードは、自分が管理を担当する空間(ハッシュ値)に属するデータを、例えば、キーに関連付けて管理する。
DHTによれば、クライアントは、各ノードに対して問い合わせることなく、目的とするデータに対するキーのハッシュ値によって当該データを管理するノードを特定することができる。その結果、通信量が削減され、データの探索が高速化される。また、ハッシュ値のランダム性により、特定ノードへの負荷の集中を回避することができ、優れたスケーラビリティを確保することができる。また、大容量メモリを搭載可能な高価なサーバではなく、安価なサーバを多数使用してシステムを構築することができる。更に、DHTは、ランダムなクエリに強いという特性も有る。
ところで、DHTは多数のノードにデータを割り当てる手法であり、各ノードによるデータの管理形態については規定していない。DHTの各ノードは、通常、メモリとHDD(Hard Disk Drive)を組み合わせてデータを格納している。例えば、ノード数や各ノードの搭載メモリ量に比べて管理対象の全データの合計容量が大きければ、一部のデータの格納にはHDDが使用される。
しかし、HDDは、ランダムアクセスのレイテンシがメモリに比べて大きいという欠点がある。したがって、HDDは、ランダムアクセスに対する強さを特長とするDHTとは必ずしも相性が良いとはいえない。DHTの各ノードでHDDが利用されてデータが格納されると、HDDのレイテンシが表面化し、データへの平均アクセス速度が低下するからである。
従来、一般的なデータの管理手法として、HDDのレイテンシを隠蔽するために、アクセス頻度の高いデータをメモリ上にキャッシュしておく手法がある。また、アクセス履歴等を利用して、次にアクセスされることが予想されるデータをメモリ上にプリフェッチしておく手法もある。
特開2008−191904号公報
しかしながら、上記管理手法をDHTに単純に適用して、HDDのレイテンシを隠蔽するのは困難である。すなわち、DHTは、基本的に各データに対するアクセス頻度が均一に近いアプリケーションに採用されるため、キャッシュによる効果を得るのは難しい。
また、クライアントからのアクセスは各ノードに分散する。したがって、全体でアクセス順序に強い相関があるアクセスであっても、ノードごとに観察すると極めて弱い相関となってしまう。よって、ノードに閉じたプリフェッチでは、その効果は限定的なものとなってしまう。そこで、DHT全体に対するアクセス履歴を各ノードが共有することも考えられるが、当該アクセス履歴の管理のための処理負荷及び当該アクセス履歴へ各ノードがアクセスするための通信負荷等がボトルネックとなり、スケーラビリティが失われてしまう。
本発明は、上記の点に鑑みてなされたものであって、分散管理されるデータへのアクセス性能を適切に向上させることのできるデータ管理システム、データ管理方法、及びデータ管理プログラムの提供を目的とする。
そこで上記課題を解決するため、それぞれ第一の記憶手段と該第一の記憶手段よりもアクセス速度が高速な第二の記憶手段とを用いてデータを記憶する複数のデータ管理装置を有するデータ管理システムであって、前記データ管理装置は、操作対象を示す第一の識別子と、該操作対象より前の操作対象を示す第二の識別子とを含む操作要求の受信に応じ、前記第一の識別子に対応する第一のデータに対して前記操作要求に係る操作を実行する操作実行手段と、前記第一の識別子に係る操作要求が受信された場合の事前読み込みの対象として当該データ管理装置において記憶されている、第三の識別子に対応する前記データ管理装置に、前記第三の識別子に対応する前記データの前記第二の記憶手段への記録の実行を要求する事前読込要求手段と、前記第二の識別子に対応する前記データ管理装置に、前記第二の識別子に関する前記事前読み込みの対象として前記第一の識別子の記憶を要求する事前読込対象登録要求手段とを有する。
開示された技術によれば、分散管理されるデータへのアクセス性能を適切に向上させることができる。
本発明の実施の形態におけるデータ管理システムの構成例を示す図である。 本発明の実施の形態におけるDHTノードのハードウェア構成例を示す図である。 データ管理システムによる処理概要を説明するための図である。 データ管理システムによる処理概要を説明するための図である。 DHTノードの機能構成例を示す図である。 クライアントノードの機能構成例を示す図である。 クライアントノードが実行する処理手順の一例を説明するためのフローチャートである。 操作履歴記憶部の構成例を示す図である。 操作要求に応じてDHTノードが実行する処理手順の一例を説明するためのフローチャートである。 データ記憶部の構成例を示す図である。 プリフェッチ要求に応じてDHTノードが実行する処理手順の一例を説明するためのフローチャートである。 プリフェッチ対象登録要求に応じてDHTノードが実行する処理手順の一例を説明するためのフローチャートである。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態におけるデータ管理システムの構成例を示す図である。同図において、データ管理システム1は、DHTノード10a、10b、10c、及び10d等の複数のDHTノード10と、一以上のクライアントノード20とを含む。各DHTノード10及びクライアントノード20は、LAN(Local Area Network)又はインターネット等のネットワーク30(有線又は無線の別は問わない。)を介して通信可能とされている。
DHTノード10は、データ管理装置として機能し、複数のDHTノード10によってDHT(Distributed Hash Table)を構成するノードである。すなわち、各DHTノード10は、一以上のデータを記憶(管理)する。或るデータについて、いずれのDHTノード10が記憶しているかについては、当該データの識別情報に対するハッシュ演算に基づいて特定される。なお、本実施の形態において、各DHTノード10上には、key−valueストアが実装される。key−valueストアは、key(キー)とvalue(値)とが組として(関連付けられて)記憶し、キーを与えることによって値を取り出すことができるデータベースである。キーは、データの識別情報に相当する。値は、データの実体に相当する。キーとしては、データ名、ファイル名、データID等、各データを識別可能な情報を用いることができる。但し、DHTノード10上におけるデータの管理形態は、key−valueストアでなくてもよい。例えば、RDB(Relational Database)等が用いられてもよい。また、DHTノード10が管理するデータの種別は所定のものに限定されない。数値、文字、文字列、文書データ、画像データ、動画データ、音声データ、その他の電子データ等、各種のデータが管理対象となりうる。
クライアントノード20は、DHTノード10に管理されているデータを利用するノードである。
なお、本実施の形態における「ノード」は、基本的に一台の情報処理装置(コンピュータ)に相当する。但し、一台の筐体内に複数のCPUと、CPUごとの記憶装置とを備える情報処理装置の存在を考慮すれば、ノードと情報処理装置との関係は1対1に限定されない。
図2は、本発明の実施の形態におけるDHTノードのハードウェア構成例を示す図である。図2のDHTノード10は、それぞれバスBで相互に接続されているドライブ装置100と、HDD102と、メモリ装置103と、CPU104と、インタフェース装置105とを有する。
DHTノード10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介してHDD102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。HDD102は、いわゆるHDD(Hard Disk Drive)であり、インストールされたプログラムを格納すると共に、管理対象のデータを格納する。
メモリ装置103は、いわゆるRAMであり、プログラムの起動指示があった場合に、HDD102からプログラムを読み出して格納する。メモリ装置103は、また、プリフェッチの対象とされたデータを格納する。すなわち、本実施の形態では、HDD102及びメモリ装置103を用いた多階層なストレージ構成が用いられる。低階層のHDD102は、第一の記憶手段の一例である。また、高階層のメモリ装置103は、低階層よりもアクセス速度が高速な(すなわち、レイテンシ(latency)の小さい)第二の記憶手段の一例である。
CPU104は、メモリ装置103に格納されたプログラムに従ってDHTノード10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
なお、DHTノード10a〜10dのそれぞれのハードウェアを区別する場合、各ハードウェアの参照番号の末尾に、各DHTノード10の参照番号の末尾のアルファベットが付与される。例えば、DHTノード10aのHDD102は、HDD102aと表記される。
なお、クライアントノード20についても、図2に示されるハードウェアと同様のハードウェアを有していればよい。
続いて、データ管理システム1による処理概要について説明する。図3及び図4は、データ管理システムによる処理概要を説明するための図である。
同図において、DHTノード10aは、key6のキーに対してvalue6の値(データ)を記憶している。DHTノード10bは、key5のキーに対してvalue5の値(データ)を記憶している。なお、データ管理システム1の各DHTノード10は、初期状態(例えば、起動直後等)において、全てのデータをHDD102を用いて記憶している。したがって、同図の初期状態(ステップS1の実行前)において、DHTノード10a及び10bは、value6又はvalue5のそれぞれのHDD102a又はHDD102bに記憶している。
一方、クライアントノード20は、key5に係るデータを利用した後、key6に係るデータを利用するノードであるとする。
以上の前提において、本実施の形態のデータ管理システム1では、次のような処理手順が実行される。
まず、クライアントノード20は、key5に対する所定のハッシュ関数の演算結果に基づいて、当該データを記憶するノードはDHTノード10bであることを特定する。そこで、クライアントノード20は、key5を指定してDHTノード10bに対してデータの操作要求を送信する(S1)。ここでの操作要求は読み込み要求であるとする。
DHTノード10bは、当該読み込み要求を受信すると、key5に対応するデータであるvalue5をHDD102bより読み込み、クライアント20に返信する(S2)。
続いて、クライアントノード20は、key6に対する所定のハッシュ関数の演算結果に基づいて、当該データを記憶するノードはDHTノード10aであることを特定する。そこで、クライアントノード20は、key6を指定してDHTノード10aに対してデータの読み込み要求を送信する(S3)。この際、操作対象のデータのキーであるkey6に加えて、直前に操作されたデータのキーであるkey5をも読み込み要求に指定される。
DHTノード10aは、当該読み込み要求を受信すると、key6に対応するデータであるvalue6をHDD102aより読み込み、クライアント20に返信する(S4)。続いて、DHTノード10aは、key5の操作要求が受信された場合のプリフェッチ(事前読み込み)の対象として、key6を記憶することの要求(以下、「プリフェッチ対象登録要求」という。)をDHTノード10bに送信する。プリフェッチ対象は、次の操作対象の候補と考えることもできる。なお、DHTノード10aは、key5に対する所定のハッシュ関数の演算結果に基づいて、key5に対応するノードはDHTノード10bであることを特定する。
DHTノード10bは、当該プリフェッチ対象登録要求を受信すると、key5に関連付けてkey6を記憶する(S6)。すなわち、key5が操作対象とされたときは、key6をプリフェッチすべきことがDHTノード10bにおいて記憶される。
その後に再びクライアントノード20が、key5、key6の順でデータを読み込む場合の処理手順が図4に示されている。
図4において、ステップS11及びS12は、図3のステップS1及びS2と同様である。但し、ステップS12に続いて、DHTノード10bは、読み込み対象のkey5の操作時のプリフェッチ対象として記憶されているkey6のプリフェッチ要求をDHTノード10aに送信する(S13)。なお、DHTノード10bは、key6に対する所定のハッシュ関数の演算結果に基づいて、key6に対応するノードはDHTノード10aであることを特定する。
DHTノード10aは、当該プリフェッチ要求を受信すると、key6に対応するvalue6をHDD102aからメモリ装置103aに移動する(S14)。すなわち、本実施の形態において、プリフェッチとは、HDD102からメモリ装置103へのデータの移動をいう。移動とは、コピーの後にコピー元が削除される処理をいう。すなわち、移動対象のデータは、移動先(メモリ装置103)に記録された後、移動元(例えば、HDD102)より削除される。同一データの冗長管理を回避するためである。
続くステップS15及びS16では、図3のステップS3及びS4とほぼ同様の処理手順が実行される。但し、ステップS15における読み込み要求の受信時において、クライアント10aでは、value6はメモリ装置103に移動されている。したがって、ステップS15に対するステップS16の応答は、ステップS3に対するステップS4の応答よりも高速化されることが期待される。
なお、上記では、説明の便宜上、二つのデータのみが操作対象(アクセス対象)とされる例を示した。クライアント20による操作対象となるデータがより多数に渡る場合、より多くのプリフェッチが行われ、それに応じてデータに対するアクセス性能の向上はより顕著なものとなりうる。
また、上記では、キー(すなわち、データ)ごとに、プリフェッチ対象を一つ記憶する例について説明したが、一つのキーに対して複数のプリフェッチ対象を記憶させてもよい。具体的には、次の操作候補だけでなく、次の次の操作候補や更に次の操作候補等、数回分に渡る将来の操作候補をプリフェッチ対象として多段階に記憶するようにしてもよい。この場合、多段階に記憶されている全てのプリフェッチ対象が並列的にプリフェッチされる。その結果、プリフェッチされているはずのデータがプリフェッチされていない可能性を低減することができる。
すなわち、図4の場合、プリフェッチ要求(S13)よりもクライアントノード20からの操作要求(S15)の方が先に到達する可能性がある。プリフェッチ対象が多段階に記憶される場合、更に次に操作対象とされるデータは、プリフェッチされている可能性が高い。したがって、データに対するアクセス性能の更なる向上を期待できる。以下では、プリフェッチ対象が多段階(N段階)に記憶されることを前提として説明する。プリフェッチ対象を一つに限定する場合は、N=1であるケースとして理解すればよい。
図3及び図4において説明した処理手順を実現するため、DHTノード10及びクライアントノード20は、それぞれ次のような機能構成を有する。
図5は、DHTノードの機能構成例を示す図である。同図において、DHTノード10は、操作実行部11、プリフェッチ要求部12、プリフェッチ対象登録要求部13、プリフェッチ実行部14、プリフェッチ対象登録部15、ハッシュ演算部16、及びデータ記憶部17等を有する。これら各部は、DHTノード10にインストールされたプログラムがCPU104に実行させる処理により実現される。
操作実行部11は、クライアントノード20からの操作要求に応じ、当該操作要求に指定されたキーに対応するデータに対して、当該操作要求に係る操作を実行する。操作の種別は、読み込み(取得)、書き込み(更新)、及び削除等の一般的なものに限定されない。操作の種別は、管理対象のデータの種別又は特性等に応じて適宜定義すればよい。例えば、データの加工又は変換に関する操作が定義されてもよい。データが数値であれば、加工の内容は四則演算等が一例として挙げられる。
プリフェッチ要求部12は、図4において説明したプリフェッチ要求の送信処理を実行する。プリフェッチ対象登録要求部13は、図3において説明したプリフェッチ対象登録要求の送信処理を実行する。プリフェッチ実行部14は、プリフェッチ要求に応じ、当該要求に指定されているキーに対応するデータについてプリフェッチを実行する。プリフェッチ対象登録部15は、プリフェッチ対象登録要求に応じ、プリフェッチ対象の登録処理を実行する。ハッシュ演算部16は、入力されたキーに対して所定のハッシュ関数を適用し、当該ハッシュ関数の演算結果として、当該キーに対応するDHTノード10の識別情報を出力する。すなわち、ここでいうハッシュ関数とは、キーに対して一つのDHTノード10が特定できるものである。したがって、当該ハッシュ関数hは、以下のように定義される。
h(キー)=ノードの識別情報
例えば、各DHTノード10をIPアドレスで識別できる場合、ハッシュ関数hは、以下のように具体化される。
h(キー)=IPアドレス
また、DHTノード10上において複数のプロセスがTCP/IP用のポートを開設しており、情報処理装置をDHTノード10として機能させるプロフセスを他のプロセスと区別する必要がある場合は、ハッシュ関数hは、以下のように具体化される。
h(キー)=(IPアドレス、ポート番号)
なお、このようなノードの特定の仕方は一例である。DHTに関する公知文献等に開示されている他の方法によって各DHTノード10が特定されてもよい。
データ記憶部17は、管理対象のデータをキーと関連付けて記憶する。また、データ記憶部17は、プリフェッチ対象が登録されたキーについては、プリフェッチ対象のキーをも関連付けて記憶する。なお、データ記憶部17は、HDD102及びメモリ装置103を用いて実現される。すなわち、プリフェッチされたデータの記憶先はメモリ装置103であり、プリフェッチされていないデータの記憶先はHDD102である。
図6は、クライアントノードの機能構成例を示す図である。同図において、クライアントノード20は、アプリケーション21、操作要求部22、ハッシュ演算部23、及び操作履歴記憶部24等を有する。これら各部は、クライアントノード20にインストールされたプログラムが、クライアントノード20のCPUに実行させる処理により実現される。
アプリケーション21は、データを利用するプログラムである。アプリケーション21は、ユーザによって対話的に利用されるアプリケーションプログラムでもよいし、Webアプリケーション21のように、ネットワークを介して受信される要求に応じてサービスを提供するアプリケーションプログラムでもよい。
操作要求部22は、アプリケーション21からのデータの操作要求に応じた処理を実行する。ハッシュ演算部23は、上記のハッシュ関数hを用いて、キーに対応するDHTノード10を特定する。操作履歴記憶部24は、操作対象とされたデータのキーの履歴をクライアントノードの記憶装置を用いて記憶する。
以下、クライアントノード20及びDHTノード10のそれぞれの処理手順について詳細に説明する。
図7は、クライアントノードが実行する処理手順の一例を説明するためのフローチャートである。
ステップS101において、操作要求部22は、アプリケーション21よりデータの操作要求を受け付ける。当該操作要求には、操作対象のキー(以下、「対象キー」という。)が指定される。続いて、ハッシュ演算部23は、対象キーに対してハッシュ関数hを適用し、対象キーに対応するDHTノード10(以下、「担当ノード」という。)を特定する(S102)。例えば、担当ノードのIPアドレス、又は担当ノードのIPアドレス及びポート番号等の担当ノードの識別情報がハッシュ演算部23によって出力される。
続いて、操作要求部22は、操作履歴記憶部24におけるエントリ(操作履歴)の有無を確認する(S103)。
図8は、操作履歴記憶部の構成例を示す図である。同図に示されるように、操作履歴記憶部24は、FIFO(First-In First-Out)型のリスト構造を有し、過去N回分の操作において操作対象とされたキーを操作順に記憶する。3つの数値「042」、「047」、「03」は、過去3回分の操作において操作対象とされたキーを示す。Nの値(すなわち、操作履歴記憶部24のサイズ)は、一つのキーに関するプリフェッチ対象の記憶範囲に応じて定まる。プリフェッチ対象の記憶範囲を1段階とする場合は、過去1回分(すなわち、直前)の操作に係るキーが記憶されればよい。すなわち、操作履歴記憶部24は、1つのキーを記憶できればよい。本実施の形態では、プリフェッチ対象の記憶範囲は3段階であるため、過去3回分の操作に係るキーが記憶される。
ステップS103の判定は、操作履歴記憶部24に、少なくとも一つのキーが記録されているか否かの判定に相当する。
操作履歴記憶部24に少なくとも一つのキーが記録されている場合(S103でYes)、操作要求部22は、操作履歴記憶部24に記録されているキーを全て取得する(S104)。なお、取得されたキーを、以下「履歴キー」という。
続いて、操作要求部22は、ハッシュ演算部23より出力された識別情報に基づいて担当ノードに操作要求を送信する(S105)。当該操作要求には、操作種別、対象キー、及び全ての履歴キー等が指定される。履歴キーが複数の場合、その操作順の順序関係を示す情報も指定される。例えば、操作順に応じたリスト構造によって履歴キーが指定される。
続いて、操作要求部22は、担当ノードからの応答を待機する(S106)。担当ノードからの応答が受信されると(S106でYes)、操作要求部22は、当該応答に含まれている操作結果をアプリケーション21に出力する(S107)。例えば、操作種別が読み込み(取得)の場合、対象キーに対応するデータが操作結果としてアプリケーション21に出力される。
続いて、操作要求部22は、対象キーを操作履歴記憶部24に記録する(S108)。対象キーの記録に応じ、操作履歴記憶部24が記憶可能なキーの総数を超える場合は最も古いキーが操作履歴記憶部24より削除される。
続いて、クライアントノード20からの操作要求を受信したDHTノード10が実行する処理手順について説明する。
図9は、操作要求に応じてDHTノードが実行する処理手順の一例を説明するためのフローチャートである。
クライアントノード20からの操作要求が受信されると、操作実行部11は、操作要求に指定されている対象キーに対応する、データ記憶部17のレコードが、メモリ装置103にロード(プリフェッチ)されているか否かを判定する(S201)。
図10は、データ記憶部の構成例を示す図である。同図において、データ記憶部17は、一つのDHTノード10において管理されるデータごとに、キー、値(すなわち、データ)、及びプリフェッチ対象1〜3等を含むレコードを記憶する。同図では、データが文字列である例が示されている。
プリフェッチ対象N(Nは、1〜3)は、該当するレコードのキーが(厳密には、キーに係るデータが)操作対象とされた場合に、プリフェッチすべきデータのキーを示す。Nの値は、プリフェッチ対象に対して付与された順序(順番)である。すなわち、プリフェッチ対象は、順序付けされて記憶される。当該順序は、プリフェッチの順番として用いられる。但し、並列的にプリフェッチが行われてもよい。プリフェッチ対象Nは、過去の操作履歴における操作順に基づいて登録される。例えば、キーが03であるデータの操作後に、044→03→044の順で操作が行われたために、044、03、044が、1行目のレコード(キーが03に係るレコード)のプリフェッチ対象Nに登録されている。
なお、プリフェッチ対象は、キーに関連付けられていればよく、必ずしもデータと同じテーブルに記憶されていなくてもよい。
また、同図では、一つのテーブルとして表現されているが、データ記憶部17の各レコードの物理的な記憶先は、必ずしも同じではない。すなわち、一部のレコードはHDD102に記憶され、他のレコードはメモリ装置103にロードされて(プリフェッチされて)いるという状態が発生しうる。したがって、ステップS201では、メモリ装置103にプリフェッチされているレコードの中に、対象キーに対応するレコードが有るか否かが判定される。
該当するレコードがメモリ装置103にプリフェッチされている場合(S201でYes)、操作実行部11は、当該レコードに含まれているデータに対して、操作要求に指定されている操作種別に係る操作を実行する(S202)。例えば、操作種別が読み込み(取得)であれば、操作実行部11は、当該データをクライアントノード20に返信する。
一方、該当するレコードがメモリ装置103に無い場合(S201でNo)、操作実行部11は、対象キーに対応するレコードは、HDD102に記憶されているか否かを判定する(S203)。該当するレコードがHDD102にも記憶されていない場合(S203でNo)、操作実行部11は、クライアントノード20にエラーを返信する(S204)。
該当するレコードがHDD102に記憶されている場合(S203でYes)、操作実行部11は、当該レコードに含まれているデータに対して、操作要求に指定されている操作種別に係る操作を実行する(S205)。なお、ここで操作対象とされたデータに係るレコード(データ記憶部17のレコード)が、メモリ装置103に移動されるようにしてもよい。
続いて、プリフェッチ対象登録要求部13は、操作要求に履歴キーが指定されているか否かを判定する(S206)。履歴キーが指定されている場合(S206でYes)、プリフェッチ対象登録要求部13は、ハッシュ演算部16を利用して当該履歴キーに対応するDHTノード10(履歴ノード)を特定する(S207)。すなわち、ハッシュ演算部16に対象キーを入力すると、ハッシュ演算部16より履歴ノードの識別情報(IPアドレス等)が出力される。
続いて、プリフェッチ対象登録要求部13は、履歴ノードに対し、対象キーをプリフェッチ対象として登録させるためのプリフェッチ対象登録要求を送信する(S208)。なお、当該プリフェッチ対象登録要求には、対象キーの他に操作要求に指定されている全ての履歴キーも指定される。履歴キーが複数の場合、その操作順の順序関係を示す情報も指定される。例えば、操作順に応じたリスト構造によって履歴キーが指定される。また、履歴ノードは、当該担当ノード(すなわち、プリフェッチ対象登録要求の送信元のノード)である可能性もある。
ステップS207及びS208は、履歴キーが複数の場合、履歴キーごとに実行される。履歴キーごとの実行は、履歴キーの操作順に応じて直列的に行われても良いし、並列的に行われてよい。
ステップS203以降より明らかなように、本実施の形態では、操作対象とされたデータがHDD102に記憶されていた場合(すなわち、プリフェッチされていなかった場合)に、プリフェッチ対象登録要求が送信される。しかし、操作対象とされたデータがメモリ装置103に記憶されていた場合にプリフェッチ対象登録要求が送信される形態を除外する趣旨ではない。但し、プリフェッチ対象登録要求の送信機会を操作対象とされたデータがHDD102に記憶されていた場合に限定することで、DHTノード10間の通信量の増加を抑制することができる。
ステップS202又はS208に続いて、プリフェッチ実行部14は、対象キーに係るレコードにプリフェッチ対象は登録されているか否かを判定する(S209)。当該レコードにプリフェッチ対象が登録されている場合、プリフェッチ実行部14は、ハッシュ演算部16を利用してプリフェッチ対象に対応するDHTノード10(プリフェッチ対象ノード)を特定する(S210)。続いて、プリフェッチ実行部14は、プリフェッチ対象ノードに対し、プリフェッチ要求を送信する(S211)。当該プリフェッチ要求には、当該プリフェッチ対象ノードに対応するプリフェッチ対象のキーが指定される。対象キー(操作対象のキー)に係るレコードにプリフェッチ対象が複数登録されている場合、ステップS210及びS211は、プリフェッチ対象ごとに実行される。プリフェッチ対象ごとの実行は、プリフェッチ対象の操作順に応じて直列的に行われてもよいし、並列的に行われてよい。但し、クライアントノード20によって次に操作される可能性が高いのは、プリフェッチ対象1である。したがって、プリフェッチ対象2又はプリフェッチ対象3よりも、プリフェッチ対象1に対するプリフェッチ要求が遅くならないのが望ましい。
なお、プリフェッチ対象ノードは、当該担当ノード(すなわち、プリフェッチ対象登録要求の送信元のノード)である可能性もある。
続いて、ステップS210において送信されるプリフェッチ要求を受信したDHTノード10が実行する処理手順について説明する。
図11は、プリフェッチ要求に応じてDHTノードが実行する処理手順の一例を説明するためのフローチャートである。
プリフェッチ要求が受信されると、プリフェッチ実行部14は、プリフェッチ要求に指定されているプリフェッチ対象のキー(以下、「プリフェッチキー」という。)に対応するレコードは既にプリフェッチされているか否かを判定する(S301)。すなわち、該当するレコードがメモリ装置103に有るか否かが判定される。
該当するレコードがメモリ装置103に有る場合(S301でYes)、図11の処理は終了する。該当するレコードがメモリ装置103に無い場合(S301でNo)、プリフェッチ実行部14は、プリフェッチキーに対応するレコードがHDD102に記憶されているか否かを判定する(S302)。該当するレコードがHDD102にも記憶されていない場合(S302でNo)、プリフェッチ実行部14は、エラーを返信する(S303)。
該当するレコードがHDD102に記憶されている場合(S302でYes)、プリフェッチ実行部14は、当該レコードをメモリ装置103に移動する(S304)。続いて、プリフェッチ実行部14は、メモリ装置103に記憶されているデータ記憶部17のレコードの総データサイズは、所定の閾値以上であるか否かを判定する(S305)。当該総データサイズが所定の閾値以上である場合(S305)、プリフェッチ実行部14は、メモリ装置103の一つのレコードをHDD102に移動する(S306)。当該一つのレコードは、例えば、最後に操作された時期が最も古いものが選択されればよい。すなわち、LRU(Least Recently Used)のアルゴリズムに基づいて当該一つのレコードが選択されればよい。但し、他のキャッシュアルゴリズムが用いられてもよい。
ステップS305及びS306は、上記総データサイズが上記所定の閾値未満となるまで繰り返される。
続いて、図9のステップS208において送信されるプリフェッチ対象登録要求を受信したDHTノード10が実行する処理手順について説明する。
図12は、プリフェッチ対象登録要求に応じてDHTノードが実行する処理手順の一例を説明するためのフローチャートである。
プリフェッチ対象登録要求が受信されると、プリフェッチ対象登録部15は、プリフェッチ対象登録要求に指定されている1以上の履歴キーのうち、当該DHTノード10が記憶を担当する履歴キーの有無を判定する(S401)。例えば、データ記憶部17のキー項目に、いずれかの履歴キーが記録されているか否かが判定される。
当該DHTノード10が記憶を担当する履歴キーが一つも無い場合(S401でNo)、プリフェッチ対象登録部15は、エラーを返信する(S402)。当該DHTノード10が記憶を担当する履歴キーが少なくとも一つ有る場合(S401でYes)、プリフェッチ対象登録部15は、当該DHTノード10が記憶を担当する履歴キーに係るレコードをメモリ装置103より検索する(S403)。該当するレコードが検索されない場合(S404でNo)、プリフェッチ対象登録部15は、当該履歴キーに係るレコードをHDD102より検索する(S405)。
続いて、プリフェッチ対象登録部15は、メモリ装置103又はHDD102より検索された、履歴キーに対応するレコードのプリフェッチ対象Nに、プリフェッチ対象登録要求に指定されている対象キーを記録する(S407)。当該DHTノード10が記憶を担当する履歴キーが複数有る場合、ステップS403〜S407は、履歴キーごとに実行される。
本実施の形態のように、キーごとにプリフェッチ対象を複数(N個)記憶する場合(図10参照)、ステップS407において、対象キーに対してNの値としていずれを付与するかは、プリフェッチ対象登録要求に指定されている、履歴キーの順序関係を示す情報に基づいて決定される。対象キーに対してNの値としていずれを付与するかとは、本実施の形態では、対象キーを、プリフェッチ対象1〜3のいずれに登録するかを意味する。
履歴キーの順序関係は、対象キーの直前の過去における操作履歴を示す。すなわち、当該順序関係において先頭は最も古く、末尾は最も新しいことになる。そうすると、当該順序関係において末尾に近ければ近いほど、操作履歴上における対象キーとの距離は近いということになる。したがって、対象キーに付与されるNの値は、以下の式で求められる。
N=S−「対象とされている履歴キーに関する履歴キーの順序関係における末尾からの距離」+1
ここで、Sは、プリフェッチ対象の段階数であり、本実施の形態では3である。「対象とされている履歴キーに関する履歴キーの順序関係における末尾からの距離」とは、当該順序関係において、当該末尾の順番から、対象とされている履歴キーの順番を減じた値である。
具体的には、プリフェッチ対象登録要求に3つの履歴キーが指定されており、当該DHTノード10が担当する履歴キーが3番目である場合、対象キーは、プリフェッチ対象1に記録される。当該DHTノード10が担当する履歴キーが2番目である場合、対象キーは、プリフェッチ対象2に記録される。当該DHTノード10が担当する履歴キーが1番目である場合、対象キーは、プリフェッチ対象3に記録される。
また、プリフェッチ対象登録要求に1つの履歴キーが指定されている場合、対象キーは、プリフェッチ対象1に記録される。この場合、当該履歴キーについて、末尾からの距離は0であるからである。
なお、対象キーは、プリフェッチ対象Nに対して上書きされる。すなわち、これまで当該プリフェッチ対象Nに記録されていたキーは削除される。但し、プリフェッチ対象1〜3のそれぞれごとに(すなわち、プリフェッチ対象の各順序付けにおいて)、多重的にキーを記憶可能としてもよい。例えば、一つのレコードにおいて、プリフェッチ対象1〜3のそれぞれごとに、2以上のキーを記憶可能としてもよい。この場合、多重度を超えない限り、既存のプリフェッチ対象は削除されない。多重度を超えた場合、古いキーから削除さればよい。
プリフェッチ対象が多重化される場合、プリフェッチ要求時には、多重度×段階数分のキーに関してプリフェッチ要求が送信される。そうすることにより、データへのアクセス速度の更なる向上を期待することができる。
上述したように、本実施の形態によれば、DHTノード10を跨って行われるデータの操作に対しても、プリフェッチを実現することができる。その結果、HDD102のレイテンシを隠蔽することができ、データに対する平均アクセス速度を向上させることができる。ここで、操作の種別は、読み込み(取得)に限られない。各種操作に関して、HDD102にアクセスするよりも、メモリ装置103にアクセスする方が高速であると考えられるからである。
また、DHT全体に対する操作履歴を各ノードが共有する場合に比べて各DHTノード10の処理負荷及び通信負荷を抑制することができる。
また、プリフェッチ対象の参照手順はシンプルであるため、クライアントノード20による次の操作に対して迅速にプリフェッチを実現することができる。
なお、本実施の形態では、操作要求には、直前の数回分の操作に係る履歴キーが指定され、プリフェッチ対象としては、直後の数回分の操作に係るキーが記録される例を示した。しかし、必ずしも、操作要求に指定される履歴キーは、直前の操作に係るものに限定されなくてもよい。例えば、2回前又は2回前以前の操作に係る履歴キーが指定されてもよい。この場合、2回後又は2回後以降の操作において操作対象とされるキーがプリフェッチ対象として記憶される。また、操作要求に指定される複数の履歴キーは、操作履歴において連続的な関係に無くてもよい。例えば、1つ飛びの関係であってもよい。この場合、1つ飛びに操作対象とされるキーがプリフェッチ対象として記憶される。
また、本実施の形態では、クライアントノード20は、必ずしもキーに基づいてDHTノード10を特定できる機能を有していなくてもよい。例えば、クライアントノード20がいずれかのDHTノード10に各種の要求を送信してもよい。この場合、当該要求を受信したDHTノード10は、当該要求に指定されたキーの担当が自ノードでなければ、当該キーの担当ノードに当該要求を転送すればよい。又は、クライアントノード20は、いずれかのDHTノード10に、キーに対応する担当ノードのIPアドレス及びポート番号を問い合わせてもよい。この場合、問い合わせを受けたDHTノード10は、当該キーの担当ノードのIPアドレス及びポート番号を返信すればよい。
更に、クライアントノード20と各DHTノード10との間の通信用のネットワークと、各DHTノード10間の通信用のネットワークとを物理的に分離してもよい。そうすることにより、DHTノード10を跨ったプリフェッチのためにDHTノード10間で行われる通信の影響がクライアントノード20に及ぶのを回避することができる。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
以上の説明に関し、更に以下の項を開示する。
(付記1)
それぞれ第一の記憶手段と該第一の記憶手段よりもアクセス速度が高速な第二の記憶手段とを用いてデータを記憶する複数のデータ管理装置を有するデータ管理システムであって、
前記データ管理装置は、
操作対象を示す第一の識別子と、該操作対象より前の操作対象を示す第二の識別子とを含む操作要求の受信に応じ、前記第一の識別子に対応する第一のデータに対して前記操作要求に係る操作を実行する操作実行手段と、
前記第一の識別子に係る操作要求が受信された場合の事前読み込みの対象として当該データ管理装置において記憶されている、第三の識別子に対応する前記データ管理装置に、前記第三の識別子に対応する前記データの前記第二の記憶手段への記録の実行を要求する事前読込要求手段と、
前記第二の識別子に対応する前記データ管理装置に、前記第二の識別子に関する前記事前読み込みの対象として前記第一の識別子の記憶を要求する事前読込対象登録要求手段とを有するデータ管理システム。
(付記2)
前記事前読込対象登録要求手段は、前記第一のデータが前記第一の記憶手段に記憶されていた場合に、前記第二の識別子に関する前記事前読み込みの対象として前記第一の識別子の記憶を要求する付記1記載のデータ管理システム。
(付記3)
前記操作要求は、前記操作対象より前の複数の操作対象のそれぞれの前記第二の識別子を含み、
前記事前読込要求手段は、複数の前記第三の識別子のそれぞれに対応する前記各データ管理装置に、該第三の識別子に対応する前記データの前記第二の記憶手段への記録の実行を要求し、
前記事前読込対象登録要求手段は、それぞれの前記第二の識別子に対応する前記各データ管理装置に、当該第二の識別子に関する前記事前読み込みの対象として前記第一の識別子の記憶を要求する付記1又は2記載のデータ管理システム。
(付記4)
前記操作要求は、前記操作対象より前の複数の操作対象のそれぞれの前記第二の識別子と前記複数の操作の順序関係を示す情報とを含み、
前記事前読込要求手段は、順序付けされて記憶されている複数の前記第三の識別子のそれぞれに対応する前記各データ管理装置に、前記順序付けの順序で該第三の識別子に対応する前記データの前記第二の記憶手段への記録の実行を要求し、
前記事前読込対象登録要求手段は、それぞれの前記第二の識別子に対応する前記各データ管理装置に、当該第二の識別子に関する前記事前読み込みの対象として、当該第二の識別子との前記順序関係に基づく前記順序付けによる前記第一の識別子の記憶を要求する付記3記載のデータ管理システム。
(付記5)
前記事前読込登録要求手段より前記第二の識別子に関する前記事前読み込みの対象として前記第一の識別子の記憶が要求された場合に、前記第二の識別子に関する前記事前読み込みの対象として既に記憶されている他の前記データに対する第四の識別子と同じ順序付けにおいて当該第一の識別子を前記第四の識別子と共に記憶する付記1乃至4いずれか一項記載のデータ管理システム。
(付記6)
それぞれ第一の記憶手段と該第一の記憶手段よりもアクセス速度が高速な第二の記憶手段とを用いてデータを記憶する複数のデータ管理装置が実行するデータ管理方法であって、
前記データ管理装置は、
操作対象を示す第一の識別子と、該操作対象より前の操作対象を示す第二の識別子とを含む操作要求の受信に応じ、前記第一の識別子に対応する第一のデータに対して前記操作要求に係る操作を実行する操作実行手順と、
前記第一の識別子に係る操作要求が受信された場合の事前読み込みの対象として当該データ管理装置において記憶されている、第三の識別子に対応する前記データ管理装置に、前記第三の識別子に対応する前記データの前記第二の記憶手段への記録の実行を要求する事前読込要求手順と、
前記第二の識別子に対応する前記データ管理装置に、前記第二の識別子に関する前記事前読み込みの対象として前記第一の識別子の記憶を要求する事前読込対象登録要求手順とを実行するデータ管理方法。
(付記7)
前記事前読込対象登録要求手順は、前記第一のデータが前記第一の記憶手段に記憶されていた場合に、前記第二の識別子に関する前記事前読み込みの対象として前記第一の識別子の記憶を要求する付記6記載のデータ管理方法。
(付記8)
前記操作要求は、前記操作対象より前の複数の操作対象のそれぞれの前記第二の識別子を含み、
前記事前読込要求手順は、複数の前記第三の識別子のそれぞれに対応する前記各データ管理装置に、該第三の識別子に対応する前記データの前記第二の記憶手段への記録の実行を要求し、
前記事前読込対象登録要求手順は、それぞれの前記第二の識別子に対応する前記各データ管理装置に、当該第二の識別子に関する前記事前読み込みの対象として前記第一の識別子の記憶を要求する付記6又は7記載のデータ管理方法。
(付記9)
前記操作要求は、前記操作対象より前の複数の操作対象のそれぞれの前記第二の識別子と前記複数の操作の順序関係を示す情報とを含み、
前記事前読込要求手順は、順序付けされて記憶されている複数の前記第三の識別子のそれぞれに対応する前記各データ管理装置に、前記順序付けの順序で該第三の識別子に対応する前記データの前記第二の記憶手段への記録の実行を要求し、
前記事前読込対象登録要求手順は、それぞれの前記第二の識別子に対応する前記各データ管理装置に、当該第二の識別子に関する前記事前読み込みの対象として、当該第二の識別子との前記順序関係に基づく前記順序付けによる前記第一の識別子の記憶を要求する付記8記載のデータ管理方法。
(付記10)
前記事前読込登録要求手順により前記第二の識別子に関する前記事前読み込みの対象として前記第一の識別子の記憶が要求された場合に、前記第二の識別子に関する前記事前読み込みの対象として既に記憶されている他の前記データに対する第四の識別子と同じ前記順序付けにおいて、当該第一の識別子を前記第四の識別子と共に記憶する付記6乃至9いずれか一項記載のデータ管理方法。
(付記11)
それぞれ第一の記憶手段と該第一の記憶手段よりもアクセス速度が高速な第二の記憶手段とを用いてデータを記憶する複数のデータ管理装置のそれぞれに、
操作対象を示す第一の識別子と、該操作対象より前の操作対象を示す第二の識別子とを含む操作要求の受信に応じ、前記第一の識別子に対応する第一のデータに対して前記操作要求に係る操作を実行する操作実行手順と、
前記第一の識別子に係る操作要求が受信された場合の事前読み込みの対象として当該データ管理装置において記憶されている、第三の識別子に対応する前記データ管理装置に、前記第三の識別子に対応する前記データの前記第二の記憶手段への記録の実行を要求する事前読込要求手順と、
前記第二の識別子に対応する前記データ管理装置に、前記第二の識別子に関する前記事前読み込みの対象として前記第一の識別子の記憶を要求する事前読込対象登録要求手順とを実行させるためのデータ管理プログラム。
(付記12)
前記事前読込対象登録要求手順は、前記第一のデータが前記第一の記憶手段に記憶されていた場合に、前記第二の識別子に関する前記事前読み込みの対象として前記第一の識別子の記憶を要求する付記11記載のデータ管理プログラム。
(付記13)
前記操作要求は、前記操作対象より前の複数の操作対象のそれぞれの前記第二の識別子を含み、
前記事前読込要求手順は、複数の前記第三の識別子のそれぞれに対応する前記各データ管理装置に、該第三の識別子に対応する前記データの前記第二の記憶手段への記録の実行を要求し、
前記事前読込対象登録要求手順は、それぞれの前記第二の識別子に対応する前記各データ管理装置に、当該第二の識別子に関する前記事前読み込みの対象として前記第一の識別子の記憶を要求する付記11又は12記載のデータ管理プログラム。
(付記14)
前記操作要求は、前記操作対象より前の複数の操作対象のそれぞれの前記第二の識別子と前記複数の操作の順序関係を示す情報とを含み、
前記事前読込要求手順は、順序付けされて記憶されている複数の前記第三の識別子のそれぞれに対応する前記各データ管理装置に、前記順序付けの順序で該第三の識別子に対応する前記データの前記第二の記憶手段への記録の実行を要求し、
前記事前読込対象登録要求手順は、それぞれの前記第二の識別子に対応する前記各データ管理装置に、当該第二の識別子に関する前記事前読み込みの対象として、当該第二の識別子との前記順序関係に基づく前記順序付けによる前記第一の識別子の記憶を要求する付記13記載のデータ管理プログラム。
(付記15)
前記事前読込登録要求手順により前記第二の識別子に関する前記事前読み込みの対象として前記第一の識別子の記憶が要求された場合に、前記第二の識別子に関する前記事前読み込みの対象として既に記憶されている他の前記データに対する第四の識別子と同じ前記順序付けにおいて、当該第一の識別子を前記第四の識別子と共に記憶する付記11乃至14いずれか一項記載のデータ管理プログラム。
1 データ管理システム
10,10a、10b、10c、10d DHTノード
11 操作実行部
12 プリフェッチ要求部
13 プリフェッチ対象登録要求部
14 プリフェッチ実行部
15 プリフェッチ対象登録部
16 ハッシュ演算部
17 データ記憶部
20 クライアントノード
21 アプリケーション
22 操作要求部
23 ハッシュ演算部
24 操作履歴記憶部
30 ネットワーク
100 ドライブ装置
101 記録媒体
102 HDD
103 メモリ装置
104 CPU
105 インタフェース装置
B バス

Claims (7)

  1. それぞれ第一の記憶手段と該第一の記憶手段よりもアクセス速度が高速な第二の記憶手段とを用いてデータを記憶する複数のデータ管理装置を有するデータ管理システムであって、
    前記データ管理装置は、
    操作対象を示す第一の識別子と、該操作対象より前の操作対象を示す第二の識別子とを含む操作要求の受信に応じ、前記第一の識別子に対応する第一のデータに対して前記操作要求に係る操作を実行する操作実行手段と、
    前記第一の識別子に係る操作要求が受信された場合の事前読み込みの対象として当該データ管理装置において記憶されている、第三の識別子に対応する前記データ管理装置に、前記第三の識別子に対応する前記データの前記第二の記憶手段への記録の実行を要求する事前読込要求手段と、
    前記第二の識別子に対応する前記データ管理装置に、前記第二の識別子に関する前記事前読み込みの対象として前記第一の識別子の記憶を要求する事前読込対象登録要求手段とを有するデータ管理システム。
  2. 前記事前読込対象登録要求手段は、前記第一のデータが前記第一の記憶手段に記憶されていた場合に、前記第二の識別子に関する前記事前読み込みの対象として前記第一の識別子の記憶を要求する請求項1記載のデータ管理システム。
  3. 前記操作要求は、前記操作対象より前の複数の操作対象のそれぞれの前記第二の識別子を含み、
    前記事前読込要求手段は、複数の前記第三の識別子のそれぞれに対応する前記各データ管理装置に、該第三の識別子に対応する前記データの前記第二の記憶手段への記録の実行を要求し、
    前記事前読込対象登録要求手段は、それぞれの前記第二の識別子に対応する前記各データ管理装置に、当該第二の識別子に関する前記事前読み込みの対象として前記第一の識別子の記憶を要求する請求項1又は2記載のデータ管理システム。
  4. 前記操作要求は、前記操作対象より前の複数の操作対象のそれぞれの前記第二の識別子と前記複数の操作の順序関係を示す情報とを含み、
    前記事前読込要求手段は、順序付けされて記憶されている複数の前記第三の識別子のそれぞれに対応する前記各データ管理装置に、前記順序付けの順序で該第三の識別子に対応する前記データの前記第二の記憶手段への記録の実行を要求し、
    前記事前読込対象登録要求手段は、それぞれの前記第二の識別子に対応する前記各データ管理装置に、当該第二の識別子に関する前記事前読み込みの対象として、当該第二の識別子との前記順序関係に基づく前記順序付けによる前記第一の識別子の記憶を要求する請求項3記載のデータ管理システム。
  5. 前記事前読込登録要求手段より前記第二の識別子に関する前記事前読み込みの対象として前記第一の識別子の記憶が要求された場合に、前記第二の識別子に関する前記事前読み込みの対象として既に記憶されている他の前記データに対する第四の識別子と同じ順序付けにおいて当該第一の識別子を前記第四の識別子と共に記憶する請求項1乃至4いずれか一項記載のデータ管理システム。
  6. それぞれ第一の記憶手段と該第一の記憶手段よりもアクセス速度が高速な第二の記憶手段とを用いてデータを記憶する複数のデータ管理装置が実行するデータ管理方法であって、
    前記データ管理装置は、
    操作対象を示す第一の識別子と、該操作対象より前の操作対象を示す第二の識別子とを含む操作要求の受信に応じ、前記第一の識別子に対応する第一のデータに対して前記操作要求に係る操作を実行する操作実行手順と、
    前記第一の識別子に係る操作要求が受信された場合の事前読み込みの対象として当該データ管理装置において記憶されている、第三の識別子に対応する前記データ管理装置に、前記第三の識別子に対応する前記データの前記第二の記憶手段への記録の実行を要求する事前読込要求手順と、
    前記第二の識別子に対応する前記データ管理装置に、前記第二の識別子に関する前記事前読み込みの対象として前記第一の識別子の記憶を要求する事前読込対象登録要求手順とを実行するデータ管理方法。
  7. それぞれ第一の記憶手段と該第一の記憶手段よりもアクセス速度が高速な第二の記憶手段とを用いてデータを記憶する複数のデータ管理装置のそれぞれに、
    操作対象を示す第一の識別子と、該操作対象より前の操作対象を示す第二の識別子とを含む操作要求の受信に応じ、前記第一の識別子に対応する第一のデータに対して前記操作要求に係る操作を実行する操作実行手順と、
    前記第一の識別子に係る操作要求が受信された場合の事前読み込みの対象として当該データ管理装置において記憶されている、第三の識別子に対応する前記データ管理装置に、前記第三の識別子に対応する前記データの前記第二の記憶手段への記録の実行を要求する事前読込要求手順と、
    前記第二の識別子に対応する前記データ管理装置に、前記第二の識別子に関する前記事前読み込みの対象として前記第一の識別子の記憶を要求する事前読込対象登録要求手順とを実行させるためのデータ管理プログラム。
JP2010132343A 2010-06-09 2010-06-09 データ管理システム、データ管理方法、及びデータ管理プログラム Expired - Fee Related JP5488225B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010132343A JP5488225B2 (ja) 2010-06-09 2010-06-09 データ管理システム、データ管理方法、及びデータ管理プログラム
US13/064,549 US20110307533A1 (en) 2010-06-09 2011-03-30 Data managing system, data managing method, and computer-readable, non-transitory medium storing a data managing program
US14/925,104 US20160048476A1 (en) 2010-06-09 2015-10-28 Data managing system, data managing method, and computer-readable, non-transitory medium storing a data managing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010132343A JP5488225B2 (ja) 2010-06-09 2010-06-09 データ管理システム、データ管理方法、及びデータ管理プログラム

Publications (2)

Publication Number Publication Date
JP2011258016A JP2011258016A (ja) 2011-12-22
JP5488225B2 true JP5488225B2 (ja) 2014-05-14

Family

ID=45097121

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010132343A Expired - Fee Related JP5488225B2 (ja) 2010-06-09 2010-06-09 データ管理システム、データ管理方法、及びデータ管理プログラム

Country Status (2)

Country Link
US (2) US20110307533A1 (ja)
JP (1) JP5488225B2 (ja)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US8433771B1 (en) 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
JP5733124B2 (ja) * 2011-09-12 2015-06-10 富士通株式会社 データ管理装置、データ管理システム、データ管理方法、及びプログラム
JP5880689B2 (ja) * 2012-03-30 2016-03-09 日本電気株式会社 分散ストレージシステム、制御装置、クライアント端末、負荷分散方法及びプログラム
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US8838968B2 (en) * 2012-05-14 2014-09-16 Ca, Inc. System and method for virtual machine data protection in a public cloud
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
JP6707824B2 (ja) * 2015-09-07 2020-06-10 日本電気株式会社 情報端末、情報処理システムおよびデータ読み込み方法、並びにコンピュータ・プログラム
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
KR101708236B1 (ko) * 2015-10-23 2017-02-20 전자부품연구원 로컬 처리 장치 및 그 데이터 송수신 방법
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10049051B1 (en) * 2015-12-11 2018-08-14 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US10469513B2 (en) 2016-10-05 2019-11-05 Amazon Technologies, Inc. Encrypted network addresses
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
CN110233843B (zh) * 2019-06-13 2021-09-14 优信拍(北京)信息科技有限公司 一种用户请求的处理方法及装置
US11645424B2 (en) * 2020-04-27 2023-05-09 International Business Machines Corporation Integrity verification in cloud key-value stores

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000224257A (ja) * 1999-01-29 2000-08-11 Jisedai Joho Hoso System Kenkyusho:Kk 送信装置および受信装置
US20020026384A1 (en) * 2000-03-31 2002-02-28 Matsushita Electric Industrial Co., Ltd. Data storage, management, and delivery method
EP1150213B1 (en) * 2000-04-28 2012-01-25 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Data processing system and method
US6728840B1 (en) * 2000-10-20 2004-04-27 Emc Corporation Methods and apparatus for providing host controlled caching of data in a storage system
US7610351B1 (en) * 2002-05-10 2009-10-27 Oracle International Corporation Method and mechanism for pipelined prefetching
US7493480B2 (en) * 2002-07-18 2009-02-17 International Business Machines Corporation Method and apparatus for prefetching branch history information
US7822767B2 (en) * 2003-10-09 2010-10-26 International Business Machines Corporation Modeling and implementing complex data access operations based on lower level traditional operations
JP2005148868A (ja) * 2003-11-12 2005-06-09 Hitachi Ltd ストレージ装置におけるデータのプリフェッチ
US7409497B1 (en) * 2003-12-02 2008-08-05 Network Appliance, Inc. System and method for efficiently guaranteeing data consistency to clients of a storage system cluster
US7483941B2 (en) * 2004-01-13 2009-01-27 International Business Machines Corporation System and method for dynamically inserting prefetch tags by the web server
US7472133B2 (en) * 2004-07-30 2008-12-30 Microsoft Corporation System and method for improved prefetching
US20060069617A1 (en) * 2004-09-27 2006-03-30 Scott Milener Method and apparatus for prefetching electronic data for enhanced browsing
JP4349301B2 (ja) * 2004-11-12 2009-10-21 日本電気株式会社 ストレージ管理システムと方法並びにプログラム
US20060212658A1 (en) * 2005-03-18 2006-09-21 International Business Machines Corporation. Prefetch performance of index access by look-ahead prefetch
US20060230236A1 (en) * 2005-04-08 2006-10-12 Sun Microsystems, Inc. Method and apparatus for precognitive fetching
US7716189B1 (en) * 2005-09-23 2010-05-11 Symantec Operating Corporation Method for preserving relationships/dependencies between data in a file system
US8595443B2 (en) * 2008-02-01 2013-11-26 International Business Machines Corporation Varying a data prefetch size based upon data usage
US7975025B1 (en) * 2008-07-08 2011-07-05 F5 Networks, Inc. Smart prefetching of data over a network
US20100049678A1 (en) * 2008-08-25 2010-02-25 Alcatel-Lucent System and method of prefetching and caching web services requests
US8397049B2 (en) * 2009-07-13 2013-03-12 Apple Inc. TLB prefetching

Also Published As

Publication number Publication date
US20110307533A1 (en) 2011-12-15
JP2011258016A (ja) 2011-12-22
US20160048476A1 (en) 2016-02-18

Similar Documents

Publication Publication Date Title
JP5488225B2 (ja) データ管理システム、データ管理方法、及びデータ管理プログラム
US6754799B2 (en) System and method for indexing and retrieving cached objects
US8219562B1 (en) Efficient storage and retrieval for large number of data objects
US8397080B2 (en) Scalable segment-based data de-duplication system and method for incremental backups
US7647417B1 (en) Object cacheability with ICAP
US8463846B2 (en) File bundling for cache servers of content delivery networks
CN101350030B (zh) 用于缓存数据的方法及装置
US8738572B2 (en) System and method for storing data streams in a distributed environment
EP2541423B1 (en) Replacement policy for resource container
KR101672901B1 (ko) 분산 파일 시스템에서 소형 파일에 대한 접근성 향상을 위한 캐시 관리 시스템
JP2012256324A (ja) データ管理方法、および、複合型データ管理システム
US11245774B2 (en) Cache storage for streaming data
US9842114B2 (en) Peer to peer network write deduplication
US20100030871A1 (en) Populating and using caches in client-side caching
CN109144413A (zh) 一种元数据管理方法及装置
CN108540510B (zh) 一种云主机创建方法、装置及云服务***
US7249219B1 (en) Method and apparatus to improve buffer cache hit rate
US20110258424A1 (en) Distributive Cache Accessing Device and Method for Accelerating to Boot Remote Diskless Computers
JP2009193440A (ja) キャッシュシステム、サーバおよび端末
JP6406254B2 (ja) ストレージ装置、データアクセス方法およびデータアクセスプログラム
US9129033B1 (en) Caching efficiency using a metadata cache
US20210191727A1 (en) Tuple checkout with notify in coordination namespace system
US10067678B1 (en) Probabilistic eviction of partial aggregation results from constrained results storage
JP6607044B2 (ja) サーバー装置、分散ファイルシステム、分散ファイルシステム制御方法、および、プログラム
JP5365830B2 (ja) 利用される可能性の高い情報をキャッシュする予測型キャッシュ方法、そのシステム及びそのプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130403

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140210

R150 Certificate of patent or registration of utility model

Ref document number: 5488225

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees