企業向けデータグリッド:Red Hat JBoss Data Gridの特徴
利用可能なキャッシュモード
続いて利用可能なキャッシュモードに関して解説していきたいと思います。
JDGでは、Replication、Distribution、InvalidationおよびLocalと呼ばれる、全部で4つのキャッシュモードが用意されています。
まず、Replicationモードに関してですが、こちらはクラスタを構成されている全てのJDGインスタンスで同じデータを保持するモードとなります。
メリットとしては全てのJDGインスタンスがデータを保持しているため、どのインスタンスにリクエストがあった場合でも必ずデータを取得できると言う点が上げられます。
デメリットとしてはデータ量が多い場合(例えば数テラバイトのデータを扱う等)は搭載メモリの制限上、利用が難しいと言う点と、JDGインスタンスが多い場合、書き込みおよび変更等の操作が非常に遅くなる可能性が挙げられます。
次に、Distributionモードについてですが、こちらはクラスタを構成するJDGインスタンスのうち、設定した任意の数のインスタンスのみ同様のデータを保持するモードです。
図4のように、3個のJDGインスタンスが起動しているDistributionモード環境で、データを保持するインスタンス数(レプリカ数)を2とした場合、3個のうち任意の2つのJDGインスタンスのみ、同様のデータがコピー(レプリケーション)されます。
メリットとしては分散してデータを保持できるため、大容量のデータを取り扱うことが可能な点が上げらます。また、レプリカ数を任意に設定できるため、システムで要望されている、信頼性やパフォーマンスに併せて細かなチューニングが可能な点もメリットとなります。
デメリットとしては、全てのインスタンスがデータを保持している訳ではないので、アプリケーションからデータ操作を行った場合に、アクセスしたJDGインスタンスがデータを保持していない可能性があるため、パフォーマンスが若干落ちる場合がある点が上げられます。
なお、アクセスされたJDGインスタンスが該当のデータを保持していない場合、そのJDGインスタンスは該当するデータを保持しているJDGインスタンスからデータを取得し、アプリケーションに返すという動作を行います。このためアプリケーションからはDistributionモードの場合でも、どのJDGインスタンスがどのデータを保持しているかを意識する必要は全くありません。
続いて、Invalidationモードです。こちらはクラスタを構成する各JDGインスタンスがローカルキャッシュとして動作しますが、データ更新時のみ別インスタンスに格納されている同一キーのデータを無効にするというモードです。
利用用途としては主にHibernate等の2次キャッシュが考えられます。
最後にLocalモードですが、こちらはクラスタ構成ではなく、1台のキャッシュ構成でデータを格納する構成です。アプリケーション内で処理中の作業データの格納や、一時退避領域としての利用等で利用されます。また、開発中はこのLocalモードの利用が最適です。
アクセスプロトコル解説
サーバ構成でリモートクライアントサーバモードを利用した場合、Memcached、Hot RodおよびRESTの3つのプロトコルが選択可能となっています。ここでは、MemcachedおよびHot Rodについて解説を行います。
まず、Memcachedに関しては名前の通り、Memcached互換プロトコルです。
Memcached対応アプリケーションが既にある場合は基本、アプリケーション側のコードを変更することなく移行が可能です。このため既にMemcachedを導入済みのアプリケーションから移行する場合には最適なプロトコルになります。ただ、細かな制御やJDGのオペレーションを手動で実施する必要があり、パフォーマンスも次に紹介するHot Rodに比べると劣ります。
続いてHot Rodに関してですが、こちらはJDG独自のプロトコルとなります。他のプロトコルがテキストベースなのに対して、Hot Rodはバイナリ形式であるためより高速なプロトコルとなっています。また、JDGインスタンスの追加および削除時に、クライアントが持つサーバリストが自動更新される等、よりJDGを運用・管理しやすい機能が充実しています。さらに、データアクセスに関してもクライアントが自動的にデータを保持するノードを選択(計算)して処理を行うため、データを保持しないJDGインスタンスにアクセスしないと言うメリットがあります。
最後に
ここまで読み進めて頂くとご理解頂けたのではないかと思いますが、JDGは環境や要望に合わせて細かな設定が出来るようになっています。上記の各要素の解説を参考に最適な使用モード、キャッシュモード、アクセスプロトコルを選択してください。
次回からはいよいよ実際にJDGを触ってみたいと思います。第3回はインストール編になります。ご期待ください。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- JBoss Data Gridの構成とチューニングポイント
- JBoss Data Gridを使ってみる:Hot Rod API編
- JBoss Data Gridをライブラリモードで使ってみよう
- JBoss Data Gridを使ってみる:インストール編
- Red Hat、インメモリデータグリッドソリューション「Red Hat JBoss Data Grid 6.2」の最新版を発表
- JBossのクラスタ設定
- JBossクラスタの概要と性能比較
- NoSQL/KVSあれこれ:Red Hat JBoss Data Gridとは
- JBoss Data Gridを監視してみよう
- キーバリュー型データベースの概要とその例