NoSQL/KVSあれこれ:Red Hat JBoss Data Gridとは
はじめに
本連載では現在、レッドハットから提供されている企業向けNoSQL/KVS製品、Red Hat JBoss Data Grid(以降、JDG)についての解説を行います。
JDGは現在、日本国内を含む全世界の多くの企業システムで、高速データ処理を実現するデータ基盤およびキャッシュサーバとして利用されています。
連載の各回では、JDGの特長、使い方、プログラミング方法および設定方法などについて、出来る限り広く、そして簡潔に解説していきたいと考えています。
連載1回目の今回は、数あるNoSQL/KVS製品の中でJDGがどのような特徴と機能を持った製品であるかを解説します。
NoSQLを改めて考えてみる
JDGにふれる前に、現在多くの方が利用されているRDBMSとNoSQLの関係(住み分け)について改めて考えてみたいと思います。
NoSQL(Not only SQL)はご存知のとおり、RDBMS以外のデータベース製品の大まかな総称です。NoSQLはその名前やコンセプトから、既存のRDBMSを置き換えるものだと勘違いされ、「これからはRDBMSをやめて、NoSQL製品を使うのだ!」と考えた方もいらっしゃるかもしれませんが、それを実現するのは現状かなりハードルが高いと言えるでしょう。これは、NoSQL製品がRDBMSを置き換えるよりも、むしろ共存することでより有効に利用できるソフトウェアだからです。
では、RDBMSとNoSQL製品の関係はどのようなものか?これらの関係はジェネラリストとスペシャリストの関係であると言えます。
RDBMSは非常に汎用的で優れたデータベースであり、データベースに最も求められる、データの一貫性の保証や複雑な検索と言う点では現状、最良のソリューションと言えるでしょう。まさに、RDBMSは優れたジェネラリストと言えます。ただ、汎用的であるが故にあまり得意でない処理、つまりスペシャリストに任せることでさらに良くなる処理が存在します。
RDBMSが不得意なこととJDGが得意なこと
例えば、RDBMSは「単純なデータ構造の検索を高速に処理する」ことに関しては決して得意とは言えません。RDBMSではSQL言語を使ってデータの操作を行うため、言語の解析であったり、テーブル間の排他制御であったり等、単純な検索であったとしてもどうしてもオーバーヘッドが発生してしまいます。
つまり「単純な検索を高速に処理したい」と言う要求に関してはRDBMSではなく、よりその処理が得意なスペシャリスト的製品を利用した方が良いと言えます。
また、一般的にサーバの数を増やしていくことで性能の向上させることを「スケールアウト」と呼びますが、RDBMSはスケールアウトで性能向上させることが不得意なソフトウェアであると言えます。
スケールアウト型のソフトウェアの代表格はWebサーバです。例として、あるWebサーバが秒間100リクエストを処理できており、来月に2倍のリクエスト、つまり秒間200リクエストをさばかなければならない場合、論理上は単純に同じスペックのハードウェアをもう1台用意し、Webサーバの数を倍にすることで、秒間200リクエストを処理する環境を簡単に作ることができます。
それに対して、RDBMSはソフトウェアの性質上、基本、スケールアウトが難しいため、基本、ハードウェアをより高性能なものに置き換える、「スケールアップ」を行うことでしか性能を上げることができません。
スケールアップはより高性能なハードウェアにRDBMS自体を載せ替えるため、非常に多くの時間と手間が必要となり、さらにお金もかかってしまいます。
RDBMSが不得意な2つのポイントを説明しましたが、実は、この2つのポイントがJDGの最も得意とする処理になります。つまり、JDGは「スケールアウト型」で「単純な検索を高速に処理」するスペシャリストであると言えます。
RDBMSが得意なことは最良のジェネラリストであるRDBMSに任せて、あまり得意でないことは、その分野を得意とするスペシャリスト、つまりJDGに任せることでより優れたシステムを構築できるようになるのです。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- IoTに適したNoSQL・分散Key-Valueストア
- JBoss Data Gridを使ってみる:インストール編
- JBoss Data Gridをライブラリモードで使ってみよう
- Hadoopがスケール・アウトする仕組み
- データ分析システムの全体像を理解する(7) データレイクとNoSQLデータベース
- Red Hatが提供するJBoss Enterprise Middlewareとは
- 企業向けデータグリッド:Red Hat JBoss Data Gridの特徴
- JBoss Data Gridの構成とチューニングポイント
- Hibernate Searchって何だ?
- JBoss Data Gridを監視してみよう