お仕事で VMware vFabric GemFire(以下、単に GemFire)を弄りはじめて一ヶ月ほどたったので、日本語のリソースもあまりなさそうなのでちょっとまとめてみる。
#なお、個人的な主観・推測がたぶんに含まれているので話半分なブログエントリということでお願いいたします。
GemFire って何ですか?
はやりの言葉で一口にいうと、Java ベースの NoSQL なインメモリ型 KVS だけど、そういったバズワードが流行る以前から「データグリッド製品だよ」みたいなカテゴライズがされていて、似たような製品の Oracle Coherence とともに金融市場系システムで鍛えられてきただけあって、以下のような機能もサポートしています。さすが商用製品。
- トランザクションが話せる(JTA 対応)
- Key・Value として Java オブジェクトをつっこめるオブジェクトサーバの側面もある
- SQL ライクに選択的なオブジェクト参照を可能とする OQL(Object Query Language)をサポート
- シェアードナッシング型の分散構成が可能で高いスケーラビリティーを提供
- データエントリをディスクにも書き込める
- 強制的にディスク書き込みしたり、メモリが足りなくなったときのスワップ領域としてディスクに書き込んだり
- データドリブンで指定したロジックを実行可能なので、アプリケーションサーバ的な側面がある
- 構成が自由きわまりない
- Continuous Query サポート
- 指定したクエリを継続的に実行して、条件に合致した Key・Value セットが現れたらイベントをあげるような機能で、たとえば、指定した銘柄の株価がある条件を満たしたらイベントをあげてそれにひも付いて自動的に投資行動を行うといったシステムに適用可能
- クエリとして OQL も使える
- データ通信プロトコルとして、TCP と UDP(当然リライアブルな方)をサポート
- クライアント API として、Java 以外に、C# や C++ をサポート
- 基本はほとんど pure java で記述されているので、サポート対象プラットフォーム以外でも、Java さえサポートしていればまず動く
- 当方は、基本、Mac OS X で動かしております(えぇ、えぇ、サポート対象外のプラットフォームです)
- WAN 越しのデータ連携機能(WAN Gateway)
- GemFire ベースのインメモリ RDBMS がまもなくリリース
- vFabric SQLFire: ただいまベータテスト中
- 標準 SQL でお話ができるので、KVS になじみの薄い SQL な技術者も、高速な RDBMS として使える!
と、つれづれなるままに書き殴ってみましたが、これを見て「あんなことができそう。。。」とか妄想を抱けるあなたは、GemFire を楽しめることでしょう。ぐふふ。
GemFire の歴史
GemFire の歴史というか、開発元の旧 GemStone Systems 社の買収歴史なんですが、2010 年の 5 月に EMC に買収された VMware に買収された SpringSource 配下におさまったわけですが、GemStone のサイト自体もいまだに残っていて(2011 年 7 月現在)、こちらで会社情報とか見てみると、そもそも Smalltalk ベースのオブジェクトサーバ製品(GemStone/S)のベンダとしてスタートしたようである。
Smalltalk というと今となっては聞いたこともないという IT エンジニアもいるかと思いますが、詳しくは Wikipedia のこちらをみていただくとして、オブジェクト指向言語ならびに開発・実行環境の先駆的存在ですが、ざっくり Java に通じているところはあるので、そのノウハウをもって IT システム開発におけるメインストリーム言語となった Java をベースとした GemFire の開発へとつながったのは自然の流れのような印象でもある。
#ともあれ、GemStone/S の Smalltalk VM ベースのスケールアウト型 Ruby 実行環境である MAGLEV や、同じく Smalltalk ベースの Web アプリケーションフレームワークの GLASS もデベロッパーやコミュニティサイトのタイムスタンプを見る限り、開発が進められているようで、Smalltalk もまだまだやるな!って感じ。
SMALLTALKで学ぶ オブジェクト指向プログラミングの本質
- 作者: 青木淳,浅岡浩子,澤本依里
- 出版社/メーカー: 日経BP社
- 発売日: 2008/07/24
- メディア: 単行本
- 購入: 14人 クリック: 408回
- この商品を含むブログ (39件) を見る
GemFire を弄ろう
すべて英語ですが、ドキュメントからチュートリアル、サンプルコードが結構豊富に無償提供されていて、一通りサンプル動かしたりしたらだいたい理解できる印象です。チュートリアル、ドキュメントなどのサイトは、以下です。
community.gemstone.com - GemFire Enterprise
こちらのサイトには、VMware の GemFire ダウンロードサイトへのリンクがあって、VMware にアカウント登録(無償)しておけば、ダウンロードし放題です。周辺ツール(VSD とか GFMon、NativeClient、Data Broweser Tool)もダウンロード可能です。
一応、無償評価期間 60 日とあるけど、GemFire 自体は、3 メンバー(3 JVM プロセス)、3 クライアントまでなら、ライセンスフリーで使えるので、個人的に弄ったり、開発用ということであれば実質無償です。これはよいですね。