BigMemory: インメモリ・ビッグデ ータ・コンピューティングによる 競争優位性

ビジネス・ホワイト・ペーパー
BigMemory: インメモリ・ビッグデ
ータ・コンピューティングによる
競争優位性
BigMemory:
超高速RAM + ビッグデータ = ビジネス・パワー
目次
1 はじめに
2BigMemory:
リアルタイム・ビッグデータを活用する2つ
の方法
3BigMemory の説明: 仕組み
5BigMemory でパフォーマンスが向上する理由
6BigMemory によるスケールの管理
8 結論
RAM価格の急落とビッグデータ台頭の組み合わせは、
ほぼすべての業界に大変革をもたらします。
インメモ
リ・ビッグデータ機能により、
これまで45分のバッチ・ジ
ョブでリスク分析を実行していたクレジットカード会社
は、現在ではカードを通して処理する段階で 不正を検
出できるようになり、数十億ドルを節約しています。
コ
ンテンツ配信業者は、多数のデバイス上のコンテンツ
を極めて正確に同期させることができます。小売業者
や顧客サービス組織は、顧客インタラクションの数と質
を桁違いに向上させることができます。
簡単に言うと、
インメモリ・ビッグデータを最大限に活
用している企業が勝利を収めているのです。
BigMemoryは、世界で最も容易かつ強力なインメモリ・ビッグデータ・ソリューションで
す。BigMemoryは、
アプリケーションで数テラバイトのデータを――リアルタイムに――利
用できるようにします。専用の仮想マシンや特別なハードウェアなしで機能するため、簡単
にインストールできます。
また費用対効果も抜群です。BigMemoryの登場前は、単一のJava仮想マシン
(JVM®)の最大
アドレス可能メモリ
(ガーベジ・コレクション・チューニングの実行が困難になるまで)は、約
4ギガバイトでした。BigMemoryでは、単一のJVMの最大アドレス可能メモリを制限するの
は、サーバー上で利用可能なRAMの容量のみです。
テラバイト規模で、BigMemoryはアプリ
ケーション・サーバーの設置スペースを100倍以上削減できます。
Get There Faster
Business White Paper | BigMemory:インメモリ・ビッグデータ・コンピューティングによる競争優位性
BigMemory で実現できること:
• 数テラバイトのインメモリ・データへのリアルタイムアクセス
• 低レイテンシーと高スループット
• 99.999パーセントの稼働率
• リニアに伸びる スケーラビリティ
• 複数のサーバー間でのデータ一貫性の保証
• ハードウェアを最大限 使用することによるインフラ・コストの削減
• 高パフォーマンスの永続ストレージによる持続性と超高速再起動の実現
• 高度な監視、管理、制御
• 必要に応じてデータを自動的に移動する超高速インメモリ・データ・ストア
BigMemory: リアルタイム・ビッグデータを活用する2つの方法
McKinsey Global Institute1によると、ビッグデータは「キャプチャ、格納、管理、分析を行う従
来のデータベース・ソフトウェア・ツールの能力」
を圧倒的に上回っています。BigMemory
は、数テラバイトの高価値データを、遅くて高価なディスクバウンド・データベースやメイン
フレームから、
メモリ
(つまり、
アプリケーションがデータを最も効果的に使用できる場所)に
移動できます。
BigMemoryには、BigMemory GoおよびBigMemory Maxの2種類があります。
どちらもJava®
Archive(JAR)
ファイルで出荷され、数行の設定で容易にアプリケーションにプラグインでき
ます。
アプリケーションは、単純なput/get/search APIを使用してデータを読み書きします。
BigMemory Go (図1)は、高度なインメモリ・データ管理機能を単一のJVMに追加します。
こ
れまでJava®アプリケーションは、
ガーベジ・コレクションの制限により、2~4ギガバイトのヒ
ープに制限されていました。BigMemory Go独自のオフヒープ・データ・ストアは、
ガーベジ・
コレクションの停止なしで、
アプリケーションがテラバイト以上のインメモリ・データに容易
に高速アクセスすることを可能にします。
Big Memory Max は、複数のアプリケーション・サーバーにわたって最大で数テラバイ
トのインメモリ・ビッグデータにアクセスする必要があるアプリケーションに役立ちま
す。BigMemory Goはスケールアップを可能にしますが、BigMemory Max(図2)はスケール
アップとスケールアウトを可能にします。
アプリケーションは単一のJVMではるかに多くのメ
モリにアクセスできるため(図3)
、BigMemory MaxはJVMおよびサーバー・ハードウェアのア
プリケーション要件を最大90パーセント低減します。
ローカルでより多くのデータをインメ
モリに格納することで、BigMemoryはバックエンド・データベースへの依存度を低下させま
す。
Java
アプリケーション
アプリケーションAPI
(JAVA, EHCACHE)
スケールアップ
コモディティ・サーバー
BigMemory
ディスク・ストア
図 1: BigMemory Go - 単一のJVM上のインメモリ・ビッグデータ
1 McKinsey Global Institute, Big Data: The Next Frontier for Innovation, Competition, and Productivity, p. 10
2
Get There Faster
Business White Paper | BigMemory:インメモリ・ビッグデータ・コンピューティングによる競争優位性
インメモリ・データの増加
App Server
Java Application
BigMemory
アプリケーション・サーバー
App Server
App Server
Java Application
Java Application
BigMemory
Java アプリケーション
App Server
App Server
Java Application
Java Application
BigMemory
BigMemory
BigMemory
BigMemory Go
BigMemory Max
分散インメモリ
データベース
データベース
データベースへの依存度の低下
図2: BigMemory Max - 多数のアプリケーション・サーバーにわたるインメモリ・ビッグデータ
BigMemory の説明: 仕組み
人生において、私たちは量とスピードとのトレードオフによく遭遇します。1年分のペーパ
ー・タオルを家に保管しておくことは良いことかもしれませんが、たいていの人はスペース
に余裕がないのでそれを収容 できません。時折スーパーマーケットに買いに出掛けるほう
が賢明です。
データ管理システムも同じようなトレードオフをもたらします。CPUは、容量の小さい高速メ
モリと容量の大きい低速メモリの間でデータを移動して、効率性を最大限に高めます。階層
ストレージ管理システムは、たとえば高パフォーマンスのSANデバイスから、低速で低価格
のSATAディスクへ、
そして最終的にテープへ、
ファイルを移動します。
BigMemoryは、同じような段階的アプローチを採用してアプリケーションのインメモリ・デ
ータを管理し、必要に応じて異なる層の間でデータを自動的に移動します。上位2つの層で
ある、JVMヒープ・メモリとプロセス内のオフヒープBigMemory ストアは、
アプリケーション
サーバー・ホストのRAMを使用します。
アプリケーション・サーバー・ハードウェアは通常、数
十ギガバイトのRAMで出荷され、低価格で数百ギガバイト以上にアップグレードできるた
め、BigMemoryは、数テラバイトのデータを効率的にRAM(つまり、
アプリケーションがデー
タを最も容易に使用できる場所)に格納できます。
2GB
Application
Application
Application
BigMemory
使用
2GB
アプリケーション
アプリケーション
未使用メモリ
スケールアップ
BigMemory
なし
BigMemory
1TB
1TB
コモディティ・
サーバー
コモディティ・
サーバー
図3: ハードウェアを限界まで利用することで、BigMemory Maxはサーバー・ハードウェア・コストを最大90パーセント
削減できます。
Get There Faster
3
Business White Paper | BigMemory:インメモリ・ビッグデータ・コンピューティングによる競争優位性
BigMemory Max(複数のアプリケーション・サーバー上に展開し、単一のアプリケーション
サーバー・マシン上のメモリに一般的に収まる以上のデータを使用するアプリケーション
向け)は、分散BigMemoryデータ・サーバーのスケーラブルなアレイの結合RAMで構成さ
れた、第3層を使用します。BigMemory Maxでは、各アプリケーションJVMのBigMemoryクラ
イアントはローカルRAMでデータを管理します。分散したBigMemoryのデプロイメント で
は、BigMemoryクライアント・インターフェースがBigMemoryサーバー・アレイへのTCP接続
も維持します。サーバー・アレイは、異なる層間でのデータ移動を管理します。
スケールアップ
図4は、BigMemory Maxのストレージ層のトポロジーを示しています。第1層である、
アプリ
ケーションJVMのJavaヒープ・メモリは、
ナノ秒でアクセス可能な最大2ギガバイトのデータ
を含みます。
ローカルのBigMemory層である、
アプリケーションJVMのオフヒープ・メモリ・ス
トアは、通常マイクロ秒でアクセス可能な数十~数百ギガバイトのデータを格納します。最
後の分散BigMemory Maxアレイは、
ミリ秒で複数のアプリケーション・サーバーにアクセス
可能な、数百ギガバイト~数テ十ラバイト のデータを保管します。図5は、BigMemory Max
の各層のスピードを示しています。
アプリケーション・サーバー
アプリケーション・サーバー
アプリケーション・サーバー
アプリケーション・サーバー
Java アプリケーション
Java アプリケーション
Java アプリケーション
Java アプリケーション
BigMemory
BigMemory
BigMemory
BigMemory
TCP
アクティブ・
サーバー
ミラー・
サーバー
コモディティ・
サーバー
コモディティ・
サーバー
Terracotta
サーバー・
アレイ
TCP
BigMemory
TCP
BigMemory
BigMemory
TCP
BigMemory
スケールアウト
BigMemory
ストライプ
図4: BigMemory Maxの分散RAMストア
レイテンシー
マイクロ秒
スピード(TPS)
階層メモリ・ストア
2 GB
2,000,000+
マイクロ秒
1,000,000
ミリ秒
100,000
秒
1,000s
プロセス・
メモリ
2 GB – 1 TB
アプリケーション・
サーバー
アプリケーション・
サーバー
Java
アプリケーション
Java
アプリケーション
BigMemory
BigMemory
ローカルBigMemory
ローカルRAM
数百 GB – 数百 TB
分散BigMemory
サーバーRAM
外部データソース
(例:データベース、Hadoop、データ・ウェアハウス)
BigMemory
BigMemory
ディスク・ストア
図5: 階層メモリ・ストアとBigMemoryのアーキテクチャ
4
Get There Faster
Business White Paper | BigMemory:インメモリ・ビッグデータ・コンピューティングによる競争優位性
BigMemoryでパフォーマンスが向上する理由
BigMemoryの階層ストア構成 は、
アプリケーションがデータを必要としている場所にその
データを保管し、必要なときに高速で予測通りの正確なアクセスを行えるようにします。
ローカル・メモリは高速でますます安く大容量になっているため、BigMemoryは利用可能な
RAMで許される のと同じ量のデータをローカルに保管します。
2種類の高速: 高スループットとレイテンシー
パフォーマンスを測定するとき、全体のスループットだけ
(つまり、単位時間当たりの平均ト
ランザクション数やオペレーション数)
を見たくなります。
しかし、平均スループットだけでは
全体の一部しか分かりません。たとえば、Webサイトが1秒当たり数千のリクエストの平均ス
ループットを誇っていても、異常値の応答によって数分かかる場合があります。応答時間が
極めて重要なアプリケーション
(たとえばオンライン金融取引のリスク分析)にとって、応答
時間の異常値はビジネスの大きな妨げになります。
Javaアプリケーションでは、ほとんどのレイテンシーの異常値が、大量のJVMヒープ・メモリ
の使用に伴う長時間のガーベジ・コレクション による停止に端を発しています。サーバーに
10GB未満のRAMが搭載されていた頃は、専門的なチューニングのスキルを持つ開発チー
ムがあればガーベジ・コレクションの停止をコントロール できました。今日のサーバーには
数百ギガバイト以上のRAMが搭載されていますが、JVMヒープでそのすべてを使用するこ
とは実質的に不可能です。
ガーベジ・コレクタが同時に数分間アプリケーションをフリーズ
させるのを、チューニング によって防ぐことはできません。
BigMemoryは、
データをインメモリに格納することでガーベジ・コレクタからアプリケーシ
ョンの安全性を確保しますが、JVMヒープでは違います。
アプリケーションは、数百ギガバイ
トのデータをインメモリに保管しながら、
ガーベジ・コレクタが決してJVMを停止しないよう
に、非常に小さいヒープで動作することが可能です。
その結果、高スループット、低レイテン
シーのシステムは、長時間の予測不能なガーベジ・コレクションの停止から解放されます。
超高可用性: 99.999%
BigMemoryは高速です。
また信頼性が高く、99.999パーセントの稼働率を実現します。
1つの理由は、BigMemory Maxの分散アーキテクチャには単一障害点がないということで
す。BigMemory Maxアレイの各サーバーは、
リアルタイムでデータをミラーに複製します。万
一、BigMemoryサーバーが(メンテナンス、
または予期せぬハードウェア障害により)
オフラインになったとしても、そのミラーにゼロ・ダウンタイムで切り替わります。
また、BigMemoryサーバーは、予期せぬ負荷増大を抑え、変化する使用パターンに失敗す
るのではなくむしろ適応する能力をシステムに与えることで、
自衛する能力を持ちます。
さら
に、ビルトインのセキュリティ対策によって、BigMemoryデータやサービスへの不正アクセ
スを防ぎます。
柔軟なサーバー・デプロイメントを可能にするライフサイクル管理
サーバー・デプロイメントの柔軟性は、高可用性システムの重要な構成要素です。サーバー
が迅速かつ容易に解体および起動できると、
ダウンタイムを回避しやすくなります。
サーバーの再起動や再セットアップに時間がかかると、失敗のリスクの高い脆弱なシステム
となります。
BigMemoryのテラバイトのインメモリ・スケールでデータ・ライフサイクルを管理すること
が、
ランタイムの柔軟性には不可欠です。BigMemoryは、サーバー・デプロイメントを迅速か
つ柔軟にする包括的なデータ・ライフサイクル管理機能を備えています。
バルク・ロード
BigMemoryは、
データベースにクエリを実行するよりも桁違いに速いスピードでデータを
RAMにバルク・ロードし、安定した動作状態を迅速に達成します。新規サーバーを迅速に オ
ンラインにするほか、BigMemoryは、高価なデータベース・リソースを、サーバーの起動
と 同時に数テラバイトのアプリケーション・データを提供する負担から守ります。
これは特
に、複数のアプリケーション・サーバーを持つシステムにおいて重要です。
そうしなければ、
多数の同時に起こるテラバイト規模のクエリによってデータベースに負担をかける恐れが
あります。
あるいは新規サーバーがデータベースから連続してロードするよう求められるこ
とで、
デプロイメントの遅れと複雑化を招く可能性があります。
Get There Faster
5
Business White Paper | BigMemory:インメモリ・ビッグデータ・コンピューティングによる競争優位性
高パフォーマンスの永続ディスク・ストア
BigMemoryは、
インメモリ・データを高パフォーマンスの永続ディスク・ストアに自動的に複
製するため、サーバーは数秒で再起動して安定した動作状態に到達します。
これはランタイ
ムの柔軟性を向上させ、高価なデータベース・リソースを、サーバーの再起動時に重複する
データ・ロード動作の負担から守ります。
WANレプリケーション
高可用性、地理的分散、
またはディザスタ・リカバリのために複数のデータ・センターで運用
を維持している企業が、BigMemoryのWANレプリケーションを活用しています。BigMemory
は、1つのデータ・センターのアプリケーション負荷を必要に応じてデータの損失なく別のデ
ータ・センターに転送できるように、
データ・センター全体にわたってデータを最新の状態に
保つよう設定できます。
BigMemoryの業界標準API
アプリケーションは、事実上のJava標準であるEhcache APIを使用するBigMemoryを通じて
データにアクセスします。BigMemoryは、key-valueストアの単純なgetおよびputメソッドと、
強力なクエリ、検索、分析機能とを組み合わせることで、従来なら低速で高価なディスクバウ
ンド・データベースに閉じ込められていたかもしれないデータについて、
これまでにない可
視性をアプリケーションに与えます。
BigMemoryは、
プレーンなJavaオブジェクトとしてデータを格納します。
これによりプログラ
ミングは簡素化され、
アプリケーションはリレーショナル・データベースに伴うO/Rマッピン
グ変換のオーバーヘッドなしで、BigMemoryデータを効率的に使用できるようになります。
データがいったん BigMemoryに取り込まれれば、最も簡単にアプリケーションで利用でき
るフォーマットとして保存されます。
BigMemoryは異種の技術環境でも、
うまく機能します。BigMemoryはインメモリ・データ・
サービスとして導入されるため、弊社のお客様は一般的にMOM、HTTP、REST、SOAPプロト
コルを使用して、技術にとらわれない方法でBigMemoryにアクセスします。
BigMemoryによるスケールの管理
BigMemoryは、高速で信頼できるだけではありません。時間の経過とともに効果的にスケー
ルアップおよびスケールアウトし、今日のアプリケーションの急速に進化するデータ要件を
満たすことができます。
リアルに伸びるスケーラビリティ
BigMemoryは、複数の次元に沿ってボトルネックなしでスケーリングします。ハードウェア
の使用を最大化し、今日のコモディティ・ハードウェアの低価格で大容量のメモリを最大限
に活用することで、単一のアプリケーション・サーバーをスケールアップします。BigMemory
Maxは、
アプリケーション・サーバー全体にわたるシームレスなデータ管理によってアプリケ
ーション・サーバー層をスケールアウトします。BigMemory Maxサーバー・アレイは、
リニア
にスケールアウトし、時間の経過とともにアプリケーションとデータの増加をサポートする
ために十分なヘッドルームを提供します。
データ一貫性の保証
アプリケーションが複数のサーバーにわたってスケーリングする場合、各サーバー間のデー
タ一貫性の管理が極めて重要となります。BigMemoryは、厳しいXA準拠トランザクションか
ら結果整合性まで、広範な一貫性の保証を提供します。すべてデータセットごとに設定可能
です。単一のJVM環境(BigMemory Go)
であれ、複数のアプリケーション・サーバーに分散し
た環境(BigMemory Max)
であれ、BigMemoryは、各自の要件に従って経時的にデータの一
貫性を管理します。
監視、管理、制御
BigMemoryは、監視、管理、制御の完全なツールと機能一式を備えています。
BigMemoryのAutomatic Resource Control(ARC)機能では、
オペレータは各層でデータセッ
トごとにメモリの割り当てを決められます。
オペレータが、
ある層のデータセットに最大のメ
モリ割り当てを設定すると、BigMemoryは、割り当てパラメータ内でそのデータセットのサイ
ズを自動的に維持し、必要に応じてデータを層の間で移動させます。
またARCは、
データ固
定オプションを提供することで、使用頻度の高い重要なデータが常にローカル・メモリで利
用可能であることを保証します。
6
Get There Faster
Business White Paper | BigMemory:インメモリ・ビッグデータ・コンピューティングによる競争優位性
図6: アプリケーション動作とメモリ使用を視覚化するARCダッシュボード
ARCは、各層でのメモリ割り当てに対するランタイム可視性(図6)
を提供します。ARCダッシ
ュボードを通じて、
オペレータはアプリケーション動作とメモリ使用を確認でき、
インテリジ
ェントな調整を行うことが可能です。
また、BigMemoryは、サーバー構成 、サーバーの健全性、
データ・アクセス・パフォーマンス
(サーバーおよびデータセットごと)
、
リモートJVMのオペレーティング特性、
スレッド・ダン
プについて、
ランタイム統計情報を取得します。すべてのBigMemory分析が、
ログ・メッセー
ジ、RESTful API、
そして弊社独自の視覚化ツール(BigMemoryに付属)
を通して利用可能で
す。
また各自のダッシュボードやイベント・ハンドラにデータを送るために JMXイベントとし
て統計情報を取得できます 。
設定可能なランタイム・イベントは、
データ・ストアのサイズ、
データ・アクセス速度、
その他
のパフォーマンス指標の変化をオペレータにアラート通知します。通知を受け取ったオペレ
ータは、
データ・ストアの有効化/無効化、
データセットごとの層当たりストア・サイズの調整、
データ鮮度のパラメータの調整が可能です。
またリモート・サーバーのライフサイクルを制
御し、
データ・センターのトポロジーを調整してリモート・バックアップ手続きを開始すること
ができます。
BigMemoryのランタイムの可視性とアラート通知機能は、
データ・センターで何が起きてい
るかを明らかにします。
オペレータは、BigMemoryのリモート・サーバー管理とランタイム制
御機能を使用することで、すぐに必要な行動を取れます。
Get There Faster
7
Business White Paper | BigMemory:インメモリ・ビッグデータ・コンピューティングによる競争優位性
結論
BigMemoryは、
インメモリ革命を活用する最も容易かつ強力な方法です。BigMemoryを
使用すると、
ガーベジ・コレクションの停止なしで、最大で数百テラバイトのデータすべて
に対し、高速かつ予測通りのアクセスを確保できます。BigMemoryの2つの製品エディショ
ン、BigMemory MaxとBigMemory Goは、従来のディスクベースのデータ管理システムに期
待された信頼性、可用性、一貫性のすべてを提供します。
Digital Enterprise
(デジタル・エンタープライズ)
をパワーアップさせる方法を知るには、
www.SoftwareAG.com/jp をご覧ください。
SOFTWARE AG について
Software AG は、組織がビジネス目標により早く到達できるように支援をしています。同社のビッグデータ、統合およびビジ
ネス・プロセス技術は、顧客がよりスマートな決定とよりよいサービスを得られるように、運用上の効率性を高め、
システ
ムをモダナイズし、
プロセスを最適化します。40 年以上にわたる顧客中心のイノベーションに根差し、中核製品群である
Adabas をはじめ、Natural、Alfabet、Apama、ARIS、Terracotta、そしてwebMethods によりビジネスを拡大し、同社は14 の市場カ
テゴリで「リーダー」
と位置づけられています。
© Software AG. All rights reserved. Software AG および Software AG プロダクトは、Software AG の商標もしくは登録商標です。
本文書中に記載した他の企業名および製品名は、
それぞれの会社の 商標もしくは登録商標です。
SAG_Terracotta_GoMax_8PG_WP_JP_Sep14
Get There Faster