LevelDBとKyotoTycoon連携させて試したときのことを書く。
GoogleのLeveldbを動かしてみたときのことを書く。
ソースはgitからとってくる。
git clone https://code.google.com/p/leveldb/
cd leveldb
configureがないのでMakefileをいじる。
いじるのはCFLAGSだけ。
イカのように。
CFLAGS = -c -I. -I./include $(PORT_CFLAGS) $(PLATFORM_CFLAGS) $(OPT) $(SNAPPY_CFLAGS) -fPICmake
make check
で、普通にmakeできたのでlibleveldb.aを適当なlibディレクトリにコピーして、include/leveldbを適当なincludeディレクトリにコピー。
そのままだとネットワーク越しに使えないので、京都の大君のDBプラグインで使えるようにする。
参考URL:http://fallabs.com/blog-ja/promenade.cgi?id=130
kcとktは別途インストール済みである。
cd kyototycoon-0.9.53/lab/leveldb
プラグインのmakeにkcとktのヘッダ及びライブラリがいるが、これもconfigureがないのでこれもMakefileをいじる。
CPPFLAGSとLDFLAGSにそれぞれkcとktのincludeとlibのパスを指定するだけ。
※独自のインストール先にいれてるので。
んで
make
通ったので、ktplugdblevel.soをktのlibexecディレクトリにコピー。
んで作ったプラグインを指定してとりあえず起動。
ktserver -pldb /usr/local/hoge/kt/libexec/ktplugdblevel.so -host 192.168.0.x -port 19xx -dmn leveldb.ldb
起動した。
ので別のVMから接続テスト。
ktremotemgr set -host 192.168.0.x -port 19xx hoge fuga
setできた。
ktremotemgr get -host 192.168.0.x -port 19xx hoge
fugaとされた。
かんぺこです。
次はクライアントライブラリです。
http://fallabs.com/kyototycoon/spex.html#protocol
↑のプロトコル仕様をみつつ適当に実装するべし。
めんどくさい。
ので、とりあえず京都の大君のmemcachedプラグインでmemcachedプロトコルでleveldbを操作する。
serverプラグイン?なので、起動オプションは
-plsv /usr/local/hoge/kt/libexec/ktplugservmemc.so
dbプラグインは-pldbなので混同しないよう。