IoTに適したNoSQL・分散Key-Valueストア
分散KVS 「okuyama」「Riak」とは
KVSには、KVS自身がシャーディング機能を持つ「分散KVS」と呼ばれるものと、KVS自身には機能は持たず、利用者側(クライアント側)で機能を実装する必要があるものの2種類があります。このシャーディング機能とは、クライアントから書き込まれるデータをクラスタの各マシンへ適切に振り分けて保存する機能で、ロードバランサのようなイメージです。
センサーデータの蓄積では、データストアの容量追加のためのスケールアウトが必要になるケースもあります。この場合、シャーディング機能を持たないKVSではクライアント側に設定変更が発生しますが、分散KVSであればサーバ側の設定変更のみで対応可能です。そのため分散KVSの方が、スケールアウト運用が容易になります。表2で例として挙げた4つのKVS、「okuyama」「Riak」「Redis」「memcached」の中では、「okuyama」「Riak」の2つが分散KVSであり、センサーデータ蓄積に適しています。そこで、本連載ではこのokuyamaとRiakに注目してご説明していきます。
まずは、okuyamaとRiakの概略をご紹介します。
okuyama
okuyamaは図3のようなマスタ・スレーブ型の分散アーキテクチャとなっています。クライアントがデータ操作をする際には、マスタノードへリクエストを送信し、マスタノード経由でスレーブにアクセスしてデータを操作します。
開発元 | 株式会社 神戸デジタル・ラボ |
---|---|
ライセンス | GPL v3 (商用ライセンス版あり) |
開発言語 | Java |
分散アーキテクチャ | マスタ・スレーブ型 |
ユースケース | ECサイト、検索エンジン、キャッシュサーバ、ログ管理、など |
Riak
一方のRiakは、図4のようなP2P型のアーキテクチャとなっています。クライアントがデータを操作する際には、クラスタのいずれかのノードにリクエストを送信し、リクエストを受け取ったノードを経由して目的のデータを持つノードへアクセスしてデータを操作します。
開発元 | Basho Technologies |
---|---|
ライセンス | Apache License, Version 2.0 (商用ライセンスあり) |
開発言語 | Erlang/C |
分散アーキテクチャ | P2P型 |
ユースケース | ECサイト、キャッシュサーバ、オブジェクトストレージ、など |
特徴の比較
「okuyama」と「Riak」に共通する特徴として、単一障害点のないクラスタ構成を構築可能で高可用性を持つ点や、データの保存先を選択可能な点などがあります。また、どちらにもOSS版と商用ライセンス版が提供されており、必要に応じて選択可能な点も挙げられます。
逆に相違点としては、分散アーキテクチャと開発言語に違いがあります。これらの点が性能上の特性やボトルネックの違いに関係してくるのですが、詳しくは次回以降でご説明していきたいと思います。その他の特徴については、開発元の公式サイトをご覧ください。
今回はセンサーシステムにおけるデータストア要件と、その要件に適合するデータストアであるNoSQLについてご説明し、そのなかでも特に分散KVSの「okuyama」と「Riak」の2つについてご紹介しました。第2回では、センサーデータ蓄積で性能上重要となるポイントと、KVSがその性能を満たすのか評価するための観点について、ご説明していきます。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- センサーデータ蓄積を想定したKVS性能検証・観点と方法
- データ分析システムの全体像を理解する(7) データレイクとNoSQLデータベース
- MongoDB Tokyo 2013で語られた、NoSQLを上手に使うためのポイントとは
- NOSQLの新顔、分散KVS「okuyama」の機能
- Riak、okuyamaのデータ書き込み性能を検証する
- NOSQLは「知る時代」から「使う時代」へ
- MySQL Clusterの特徴とアーキテクチャ
- HBaseの概要とアーキテクチャ
- NoSQL/KVSあれこれ:Red Hat JBoss Data Gridとは
- 楽天モバイルが認めた、新基準のオープン・ソース分散SQLデータベース「YugabyteDB」〜高可用性、パフォーマンス等、妥協なきプラットフォームの実現