JDGの特長

JDGは分散型KVSの機構を取り入れたPure Java(すべてJavaで記載された)製品です。長らくJava EEアプリケーションサーバであるJBoss Enterprise Application Platformのクラスタ機能の内部機構として利用され続けてきたJBoss Cacheプロジェクトの後継としてスタートしたInfinispanの成果物がベースになっています。

KVSとはKey-Value-Storeの略であり、値(Value)と、それを取得するためのキー(Key)からなるデータストア製品ですが、エンジニアの方であればMap構造と説明した方が理解は早いかもしれません。

図2:Key-Value-Store

JDGはまさにこのjava.util.Mapに良く似たAPIを提供しており、開発者はjava.util.Mapを利用する感覚でJDGを利用することが可能です。

また、JDGには下記の様な特徴があります。

大量のデータをオンメモリで高速処理

JDGは大容量のデータをオンメモリで保持することが可能です。多くのデータを複数のJDGインスタンスで分散して保持しますが、JDGを利用するアプリケーションはデータの格納先を全く意識する必要はありません。JDGがアプリケーションの要求に合わせて、然るべきデータを、そのデータが格納されているJDGインスタンスから取得し、返してくれます。また、基本的にすべてのデータがメモリ上(JavaVMヒープ上)に格納されているため、非常に高速に処理することができます。

高い耐障害性

JDGは基本的に複数のインスタンスを立ち上げ、運用しますが、その複数のJDGインスタンスで格納するデータを重複して保持することが可能です。

つまり、1つのJDGインスタンスがダウンした際、データは他のJDGインスタンスが保持しているので、なくなってしまうことはありません。データを重複して保持するJDGインスタンスも、その環境やシステム要求に合わせて任意の数を設定することが可能です。また、メモリ上のデータをファイルやDBに永続化するCacheStoreと言う機能も提供されています。

図3:JDGの耐障害性(クリックで拡大)

高いスケーラビリティ

JDGでは負荷状況やデータ量に合わせ、動的にノードの追加・削除を行うことができます。例えば、ECサイトのキャンペーンに伴い、アクセス数が急増する可能性がある場合、管理者はコールドスタンバイしているJDGインスタンスを起動させるだけでシステムを拡張させることができます。

JDGは同じグループに設定されている、それぞれのJDGインスタンス間で連携しており、そのグループの新しいJDGインスタンスが起動したタイミングで、自動的にその追加JDGインスタンスをグループに加えてくれます。

また、新しいJDGインスタンスがグループに加わったとしても、JDGを利用するアプリケーションではなんら意識する必要はありません。格納されているデータのリバランスやデータの取得および格納先の変更等は、すべて自動的にJDGが実施してくれます。

充実した管理機能

JDGを運用する場合、取り扱うデータ量によっては100以上のJDGインスタンスを立ち上げて運用しなければならない可能性があります。その場合、運用ツールが非常に大事になってきますが、JDGにはJBoss Operations Network for JDG と呼ばれるWebアプリケーションベースのGUI管理ツールが付属しています。この管理ツールを利用することで

  • JDGインスタンスのステータス確認
  • JDGインスタンスの起動/停止
  • 保持するキャッシュ量に関する情報
  • etc

さまざまな情報を1つのWeb管理コンソールで取得および実施することができます。

図4:JBoss Operations Network for JDG 画面(クリックで拡大)

先進的な機能

JDGはシンプルなKVSとしての側面が強いですが、値の書き込みや変更等のイベントを検知し動作するEventListenerや、キャッシュ値に対して一括して操作する場合に利用するDistributed Executor、合算処理などの結果を集約して取得する場合等に有効なMap/Reduce機能等、先進的な機能も標準で搭載しています。

企業向けサポート

企業システムでソフトウェアを利用する場合、サポートが提供されているか否かは大きなポイントになります。JDGはサブスクリプションを購入することで、レッドハットおよびレッドハットのパートナー企業から技術サポートを受けることができます。利用方法が分からない、製品の不具合が発生したかも知れない等、企業システムを開発、運用していく際に、さまざまな疑問が出てきますが、レッドハットのサポートに問い合わせることで、多くの問題がスムーズに解決するでしょう。

なお、サブスクリプションの数はサーバ側のCPUコアの総数で決定し、クライアント側での課金は発生しません。

いかがでしょうか?今回はJDGの特徴および概要について簡単に解説させて頂きました。次回、第2回はさらにJDGをご理解頂くためにJDGの重要な機能に関してもう少し細かく紹介したいと思います。

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30