オンメモリで分散並列処理でNoSQL, 超高速の2D/3DオブジェクトデータベースSpaceBase

イスラエルのParallel Universeは、ゲームデベロッパに大規模な並列処理のデータベース/API SpaceBaseを提供する。それを利用すると、何百万ものオブジェクトをリアルタイムで追跡しなければならないような、いわゆるMatrixふうのゲームを短時間で開発できるようになる。もちろんそんなゲームは何千人ものプレーヤーが同時にプレイしているし、数え切れないほどたくさんのエイリアンや戦艦が核ミサイルやグリーンレイを撃ち合っているだろう。そんなスケールのお話だ。
ファウンダのRon Presslerはソフトウェアエンジニアとしてイスラエル空軍が使うシミュレータを開発していた。そしてこの夏のY Combinatorの育成事業に加わり、その後の最初の製品であるSpaceBaseは、彼の軍用シミュレータ開発時の技術を利用している。それは空間(宇宙など)と空間内2D/3Dオブジェクトの並列分散データベースを背後に持ち、サーバサイドでオンメモリで低遅延でリアルタイムの動きをゲームデベロッパに提供する。想定しているユーザは、MMOゲームのデベロッパや、国防関係、そして位置対応アプリケーションのデベロッパたちだ。
先週のインタビューでPresslerは、Matrix的な利用環境は同製品のサーバを分散サーバ環境に移行してから提供できる、と言った。
今日のMMOや位置対応サービス(location-based services, LBS)は、OracleとかPostgresといったデータベースと、そのハードディスク上のデータを使っている。そのだいたいの処理性能は、毎秒1000クェリぐらいだ。これに対しオンメモリのNoSQLデータベースを使うSpaceBaseでは、毎秒数十万のクェリを処理できる。
その技術成分の中でもとくにおもしろいのが、NoSQLデータベースだ。そもそもNoSQLデータベースはビッグデータのための技術、無構造のデータを従来のデータベースよりも高速に処理する。しかもSpaceBaseが提供するのは、空間内の2D/3Dオブジェクトを収めたNoSQLだ。
LBSやMMOの従来の空間データベース環境もオブジェクトを追跡できるが、上に述べた制約により、なにしろ遅い。だからLBSならATMやレストランなどの場所案内には向いているが、車や航空機など動いているものはだめだ。そういう従来的な空間データベース環境として、OracleとRedisなどがある。
今後分散環境(クラスタ)で提供されるSpaceBaseは、NoSQLの能力をさらに拡大する。複数のサーバが分散インフラの上で並列に動き、Matrixのようなゲームにふさわしい仮想環境が提供される。
Presslerはこう書いている:
SpaceBaseが超高速なのは、オンメモリなためでもある。ハードディスクベースのシステムとは大違いだ。だからたとえば、何がいつ起きたかだけでなく、どこでそれが起きたかも追跡できる。そういう動きもすべて、メモリ上のデータに生ずるから、データの取得が速い。オンメモリのアプリケーションを現に使っておられる方もいると思うが、SpaceBaseのデータは空間データだから、一つのデータの構成要素がとても多い。
SpaceBaseをフルに利用したら、ゲームもソーシャルネットワークもSF的な性質を強めるだろう。なんでも追跡でき、しかも遅延なくリアルタイムで追跡する。森のヘラジカもハイウェイ上のFiatも、リアルタイムで見られるのだ。
未知の領域が、目の前に開ける。そして、あなたのところにMatrixがやってくる。


