P2Pを活用した小規模データ ベースの集約化 大阪市立大学大学院 創造都市研究科 藤田昭人 はじめに • 個人アーカイブ – 個人が維持・管理するスタンドアロン論文データベース – 公開論文アーカイブ( CiteSeerなど)から取得した論文メタデータを管理する – 論文データの格納場所(URL)を示すと共にローカルにキャッシュする • 本研究のテーマ: 多数の個人アーカイブをネットワーク経由で共有する → 個人アーカイブの核となる小規模データベースの集約化 – メタデータの冗長保存により耐障害性が向上する – 公開論文アーカイブ・サービスのシステム負荷を軽減する – 利用者が作成する2次的情報(要約やコメントなど)も共有できる ◎ 十分に多数の個人アーカイブを集約できれば公開論文アーカイブに 匹敵する収蔵論文の網羅性が確保できる 小規模データベースの集約化 • 個人アーカイブ相互でのデータ共有からの要請 – 可能な限り多くのノードが接続できることが望ましい – 携帯型情報機器(ノートPC)などのサポートが前提 • 既存の分散データベース技術活用での問題 – 分散アーカイブとしてのスケーラビリティ – ネットワーク接続状態の動的な変化 ◎個人アーカイブのネットワークは自律分散型の分散システム として機能する必要がある 小規模データベースの集約方法 • 自律分散システムとしてP2Pに注目 • 分散データベースに対するP2Pシステムの相違点* ① ノードの接続・離脱(自律的に接続・離脱) ② クエリ対象の配置(任意のノードに存在可能) メリット ③ クエリ応答(全てのノードからクエリ応答があるとは限らない) →分散ハッシュテーブル(DHT)の活用により改善される ④ データの構造定義(全てのノードで共有されるスキーマがない) * Ng W.S., Ooi B.C., Tan K.L., Zhou A.: PeerDB: A P2P-based System for Distributed Data Sharing. (ICDE ’03) 問題点 DHT上でのスキーマ共有の実現 • DHTの問題点 – データのルックアップにはハッシュを使用しなければならない – クエリにおいて対象データの構造(スキーマ)を仮定できない 解決策: ハッシュを使ってデータとスキーマを表現する • DHTで使用されるハッシュ – コンテント・ハッシュ (Content Hash) • 格納データに基づくハッシュを使用する • データ更新時の競合を考慮する必要がない – コンシステント・ハッシュ (Consistent Hash) • 格納データの内容に依存しないハッシュを使用する • データ更新時の競合を考慮する必要がある ハッシュを使ったデータとスキーマの表現 • データとスキーマの対応付けを含めた表現 → テーブル • データベース内のテーブルをハッシュ・ブロックとして表現 – テーブルをスキーマとレコードに分割 – 各々をコンテンツ・ハッシュ化 – スキーマ・ブロックおよびメタデータ・ブロックのハッシュ・キーのリストを コンシステント・ハッシュ化 テーブルのハッシュ化 Table Title Title Author Author ・・・・・・・・・ URL ・・・・・・・・・ URL Record List (Consistent-Hash) Schema Block (Content-Hash) H(Schema) Schema H(MetaData0) H(MetaData1) Title Author MetaData Block (Content-Hash) ・・・・・・・・・ URL MetaData0 H(MetaDataN) MetaData1 MetaData Block 文献ごとのメタデータを Content Hash 化したブロック SQL の INSERT 文により記述する Schema Block テーブルのスキーマを Content Hash 化したブロック SQLのCREATE TABLE 文により記述する Record List Schema Block と MetaData Block のハッシュ・キーのリスト テーブル名から生成したハッシュ・キーによる Consistent-Hash MetaDataN Hash ハッシュ化テーブルに対する検索 • ネットワーク上に分散する複数のハッシュ化テーブルに対して 検索を行う – 検索はハッシュ化テーブルが存在する各ノードで並列して実行される – 検索結果は検索を要求したノードのデータベースに新たなテーブルとし て格納される 小規模データベース集約のための機能 • 個人アーカイブの論文メタデータ(文献情報)をノード間で 共有するためには・・・ メタデータの公開 論文メタデータをテーブルに登録し、 テーブルのハッシュ化を行う。 メタデータの取得 ハッシュ化されたテーブルに対して選択条件を指定して 論文メタデータを検索し、その結果から新規テーブルを 作成する メタデータの公開 ① ② ③ ④ 公開するメタデータをデータベース上のテーブルに登録する 該当テーブルをハッシュ化する DHTアルゴリズムにより決定されるノードにハッシュ・ブロックを格納する レコードリストが格納されたノードではバックアップのテーブルを作成する メタデータ ③ ④ ③ ① レコードリスト ② スキーマブロック ③ メタデータブロック メタデータブロック メタデータブロック ③ ③ メタデータの取得 ① ② ③ ④ 任意の複数のテーブルに対し選択条件を付与して検索を行う 各テーブルでの検索結果はレコード・リストとして受け取る レコード・リストに基づいてスキーマ・ブロックとメタデータブロックを取得する ローカル・データベース上に新規テーブルを作成する スキーマブロック メタデータブロック ③ ③ ① ④ レコードリスト ② ③ メタデータブロック ③ メタデータブロック おわりに • P2Pによる小規模データベースの集約化での技術的課題は クエリ応答の不確実性とスキーマの共有である • アクセス可能な全てのノードからのクエリ応答を得るためには 分散ハッシュテーブル(DHT)が活用できる • DHT上でスキーマの共有を図るため、テーブルのハッシュ化 およびそれを利用したメタデータの共有方法を提案した • 現在 i3Chord および SQLite を利用したプロトタイプを開発中
© Copyright 2024 ExpyDoc