• 検索結果がありません。

7. 結論

7.3 今後の課題

本研究で課題は漏れなく抽出し整理した.そして,主要な課題の解決手法については,実際の 開発に適用することで効果が確認できた.しかし,本論文で扱わなかった課題については,解決

手法の提案と解決手法の大規模分散処理システムへの適用評価はできていない.例えば,他の 課題は計画アクティビティでは,環境トラブルによる蓄積データの損失という課題がある.テストケー ス生成アクティビティでは,精査し追加した検証で,新たに発生する問題の対応という課題があり,

テスト環境の開発アクティビティでは,検証を効率的に実施する TP(Test Program)のパラメータの 決定という課題がある.また,提案した解決手法は,他の分散処理システムへの適用確認ができて いない.今後も継続して解決手法の調査を進める必要がある.

付録

付録 1 大規模分散処理システムと RDBMS との違いと CBoC タイプ 2 の特徴

大規模分散処理システムと RDBMS(Relational Database Management System)との違いを以下に 示す.KVS(Key-Value Store)は RDBMS とは異なり,簡易トランザクション・簡易クエリを分散環境で 実行する点に特徴があり,分散環境において一貫性あるいは可用性を実現したデータストレージ である.

KVS を利用している大規模分散処理システムと RDBMS との違いを図 31 に示す.違いの 1 点 目として,データの一貫性の違いがある.大規模分散処理システムはパラレルにデータの書き込み を行い,大量のデータ処理を可能とする.しかし,単一レコード単位での一貫性はあるが,複数レコ ードにまたがる一貫性は保証しない. RDBMS のデータ処理は,書き込み対象のロック行うとともに アクセス制御によりトランザクションによって,複数レコードにまたがる一貫性を保証する.RDBMS ではロックコントロールモジュールにより実現している.しかし,大規模分散処理システムの分散ロッ クはシステムの監視のみである.違いの 2 点目として,データ量による検索処理の違いがある.

RDBMS の処理において,大規模分散処理システムでサポートしない処理は,データの書き換え処 理の「Update」と,大規模なデータ処理となる「Sort」,「Join」,「Order by」等である. 「Update」の理 由は,データは追加と削除のみで書き換えを行わないことから対応できないからである.「Sort」,

「Join」,「Order by」の理由は,分散ファイルは 100 テラバイト~ペタバイトレベルの超巨大なデータ を扱うが,RDBMS の DB はテラバイトレベルの検索対象を限定したデータを扱うため,大規模分散 処理システムで全データを操作する処理は,処理時間が膨大となるため実運用に耐えることができ ないからである.

図 31 大規模分散処理システム(KVS)と RDBMS との違い

次に,CBoC タイプ 2 におけるシステムの特徴について以下に示す.

• 数百台規模のマシンを扱い,100 テラバイト~ペタバイト級のデータを扱い,2 重故障までは 許容し運用可能

• 可用性(Avilability),分散性(Partition)を満たし,一貫性(Consistency)はできる限り満た す

以下にシステム設計上の特徴を項目として示す.

A) シーケンシャル読み出し性能 > 書き込み性能 > ランダム読み出し性能 B) 可用性 > レイテンシ

C) データレプリケーション

CBoC タイプ 2 では,上記の特徴を以下の 3 つのプロダクトで実現している.

① 分散テーブルにおいて多次元テーブルを持ち大量の構造化データの読み書きを可能とする 設計により実現(A)

② 分散ロックにおいてプロセスの死活監視を実施(B)

③ 分散ファイルにおいてファイルのレプリケーションを複数持って動作(C)

上記のとおり,CBoC タイプ 2 は,分断耐性,可用性が強いシステムである.ユーザは自身でデータ の所在の確認をする必要がなく,ネットワークが分断された際でも分断されたサーバ群のうち,小 規模な群を自動で切り離して正常に動作することができる.また,単一機器の障害によるデータ消 失はなく,リカバリ機能によって障害が発生したデータをレプリカから復旧することができる.

付録 2 大規模分散処理システムの研究

近年,多く利用されてきている大規模分散処理システムの研究として,システムの問題の研究と NoSQL のシステムの研究について示す.

付録 2.1 大規模分散処理システムの問題の研究

大規模分散処理システムの問題は,大きく 2 つあると言われている[21].一つはマシンのメモリや ディスクの資源管理ともう一つは,性能最適化と言われている.以下その理由について示す.

リソース管理については,特にマルチテナントのシステムについては,1 つのマシンの資源を複数 の OS で共有する場合,それぞれに互いに影響が及ばない設定をする.図 32 は左から右へ,アプ リケーションから OS へ資源を分けた場合を示している.左の場合,利用するユーザは自分の資源 は確保されており,他のユーザから影響は受けないが,余ったマシン資源を利用することはできな くなる.

図 32. マ ルチ テナ ン ト モ デ ル (Bo Li: Survey of Recent Research Progress and Issues in BigData[21]より)

性能最適化については,通常の複数マシンにより構成されるシステム(以降,従来の情報システム と呼ぶ)においては重要なトピックで,アプリケーションを利用した実験から得られた結果や技術を 使い,性能最適化に対応している.大規模分散処理システムも同様にアプリケーションの実験によ り,性能最適化に対応している.

また,システム全体の問題の観点としては,資源管理と性能最適化は,大規模分散処理システム にも当てはまる.特に,具体的な課題にある検証データ用のデータ登録では,データ投入量を最 大にするため,マシンの資源と性能最適化が必要である.

CBoC タイプ 2 では 1 マシン 1OS であり,マルチテナントモデルではないため,他の OS との資 源の競合は発生せず,マシン資源を最大限に活かすことが可能である.

付録 2.2 NoSQL の研究

対 象 で あ る 大 規 模 分 散 処 理 システム は, NoSQL[11] で あ る . NoSQL の シス テム と し ては [10][16][17]にあるように,キーバリューストア(KVS),ドキュメントストア,カラムオリエンテッドストアの 3 種類のシステムがある.以下の表 39 に NoSQL の分類の代表的なシステムを一覧にする.

表 39. NoSQL の分類とシステム(Cattell, Rick: High Performance Scalable Data Store[17]より)

分類 システム

キーバリューストア

Redis Scalaris Tokyo Tyrant Voldemort Riak

ドキュメントストア

MongoDB CouchDB SimpleDB Terrastore

カラムオリエンテッドストア Cassandra HyperTable

表中の一部のシステムについて,特徴を以下に示す.

キーバリューストアのシステムとして Redis と Tokyo Tyrant を示す.

(1) Redis

高速で小規模の容量のデータを扱うのに適している.詳しくは以下に示す特徴を持つ.

① メモリデータシステムである.システム走行時はメモリ上にデータを載せておき,それ以外 の時はハードディスク上に保存する.読み書きを 10 万レコード/s で実行可能な性能を持 つ.

② リストとリストのセットの組み合わせる操作を可能とする.

③ 1GB のサイズの値を扱うことが可能.

④ 大規模の容量のデータは扱えない.

(2) Tokyo Tyrant

日本の mixi に使われているものである.TC という高ストレージエンジンと TT というマルチスレ ッドで高同時制御のサーバから構成されており,4 万~5 万回/s の読み出しと書き込みの性能 を持つ.TC はデータの信頼性を保つ機構を持っている.TC はキーバリューの構造だけでは なく,リレーショナルデータベースの構造も持っている.加えて,ページングやソートといった単 純な問い合わせのみをサポートしている.

カラムオリエンテッドストアとして,Cassandra と Hypertable を示す.

(3) Cassandra

Cassandra は Facebook で使われているオープンソース(OSS)であり,以下の特徴がある.

① スキーマが柔軟で構築時に必ずしもスキーマの定義が必要ではなく,フィールドの追加,

削除が容易である.

② キーとしてレンジの問い合わせをサポートしている.

③ 1 台が故障しても,全体に影響を及ぼさずリニアにスケールする,高スケーラビリティを実 現している.

(4) Hypertable

オープンソースの検索エンジンである.1000 ノードのシステムで設計しており,書き込みは 7MB/s,読み出しは 1M セル/s である.しかしながら,高い読み出し速度や大きなストレージの アプリケーションの利用は向いていない.

ドキュメントストアとして,CouchDB と MongoDB を示す.

(5) CouchDB

Apache プロジェクトのシステムで,フレキシブルでフォールトトレラントのシステムである.加え て,ACID に対応している.データのレプリケーションを持っており,P2P の分散処理システム のサービスに対応している.インターフェースとしては,HTTP の REST ベースのみであり,読 み出しと書き込みの性能は他と比較して高くない.

(6) MongoDB

リレーショナルデータベースと非リレーショナルデータベースの中間に位置するシステムであ る.

① 非リレーショナルデータベースであるが,リレーショナルデータベースの機能を持つ

② 複合データを格納できる

③ 単一テーブルに対してリレーショナルデータベースの問い合わせが可能