で、今回のネタは「インメモリデータグリッド」。今注目の、NoSQLについてのお話です。ほら、読みたくなったでしょ。えっ、もう知ってる? まあまあ、そんなつれないこと言わずに。日立秘伝のアジャイル開発手法、「おやつ会議」(?)の話もあるし……。
「インメモリデータグリッド」ってそもそも何なのさ?
前回(「ひたちはじめて物語─ストリームデータ処理の巻」)は、日立が取り組んでいる最先端のデータ処理技術の1つ、「ストリームデータ処理」について紹介した。で、今回も引き続き、日立が手掛けている最先端のとんがった技術、「インメモリデータグリッド」について紹介してみたい。
とここで、「ああ、SAP HANAね」と早とちりしてはいけない。あれは「インメモリ“データベース”」で、今回紹介するのは「インメモリ“データグリッド”」。名前はちょっと似てるけど、その中身はまったく別物。前者は、基本的には昔からあるリレーショナルデータベースの仕組みを、メモリ上で動かして高速化する技術。で後者の方はというと、えーと、インメモリで、グリッドで、そんでもって……うーん(固まること約30秒)、じゃあそろそろ、日立の専門家の方にご登場いただきますか。
今回登場してもらうのは、以下のお三方。
梅田さんと松本さんは、日立のインメモリデータグリッド製品「uCosminexus Elastic Application Data store」(以下、EADs。「イーズ」と読んでね)の開発プロジェクトに所属している。一方の杉本さんも、もともとは同じプロジェクトでEADsの開発に携わっていたが、今は所属部署名を見ればお分かりの通り、携帯キャリア向けのSI案件を手掛ける部署で、SEとしてEADsを活用したシステムの提案に当たっている。
早速ですが、インメモリデータグリッドって、そもそもどういうものなんですか、梅田さん?
「私はインメモリデータグリッドの条件には、3つあると思ってます」
ああ、そういう説明の仕方って、すごく分かりやすい!
「まず1つ目の条件は、memcachedに代表されるような『インメモリKVS』であることです」
何すか、それ?
「……(マジかよ)」
と、のっけから軽くびびらせてしまったのだが、それでも不勉強な筆者のために、懇切丁寧に説明してくれた梅田さん。インメモリKVSというのはその名の通り、KVS(キーバリューストア)の仕組みをメモリ上で動かすというもの。キーバリューストアとは、キーと値(バリュー)の1対1の組み合わせだけでデータを管理する仕組みで、極めて単純なデータ構造であるが故に、データ参照・更新のスピードがめちゃめちゃ速い。とここで、杉本さんが助け舟を。
「要は、一般的なデータベース製品の最下層にある、データの入れ物の仕組みだけを取り出してきたようなイメージです。単純なデータ構造で、余分な処理オーバーヘッドがなく、参照・更新も単にキーを指定して値を出し入れするだけなのでスピードが速い。でもその代わり、一般的なデータベース製品でできるような、SQLを使った検索や、トランザクション管理といった機能は一切省いています。そのため、使いこなすにはコツが要ります」
なるほどなるほど。でさらに、それをメモリ上で動かすからめちゃ速いと。車で言うと、快適性能を一切合財削ぎ落として軽量化したレーシングカーみたいなイメージか。サーキットではめっぽう速いけど、公道を一般ドライバーが走らせるのは厳しい、みたいな。