Multi Backend
設定次第では、Bucket毎に異なるバックエンドを設定することができる。
一つのRiakノード上で複数種類のバックエンドを動かすことができるので、応用の幅が一気に広がる。
セッションとかはmemory backendにしといて、重要な情報はLevelDBで永続化、とか。
consoleとattach
riak consoleは、Riakを動かした上でシェルに入るコマンドだ。
➜ riak git:(a12d5a2) rel/riak/bin/riak console
config is OK
-config /Users/saisa/devel/riak/rel/riak/data/generated.configs/app.2013.12.15.23.32.59.config -args_file /Users/saisa/devel/riak/rel/riak/data/generated.configs/vm.2013.12.15.23.32.59.args -vm_args /Users/saisa/devel/riak/rel/riak/data/generated.configs/vm.2013.12.15.23.32.59.args
Exec: /Users/saisa/devel/riak/rel/riak/bin/../erts-5.9.3.1/bin/erlexec -boot /Users/saisa/devel/riak/rel/riak/bin/../releases/2.0.0pre7/riak -config /Users/saisa/devel/riak/rel/riak/data/generated.configs/app.2013.12.15.23.32.59.config -args_file /Users/saisa/devel/riak/rel/riak/data/generated.configs/vm.2013.12.15.23.32.59.args -vm_args /Users/saisa/devel/riak/rel/riak/data/generated.configs/vm.2013.12.15.23.32.59.args -pa /Users/saisa/devel/riak/rel/riak/bin/../lib/basho-patches -- console
Root: /Users/saisa/devel/riak/rel/riak/bin/..
Erlang R15B03 (erts-5.9.3.1) [source] [64-bit] [smp:8:8] [async-threads:64] [kernel-poll:true] [dtrace]
Eshell V5.9.3.1 (abort with ^G)
(riak@127.0.0.1)1>
すでにRiakが動いている場合は、「attachを使え」と言われる。
➜ riak git:(a12d5a2) rel/riak/bin/riak console
Node is already running - use 'riak attach' instead
で、シェルに入ったらRiakのコードに書いている関数を呼ぶこともできる。
例えば
rel/riak_kv/riak_index.erl
timestamp() ->
{MegaSeconds,Seconds,MilliSeconds}=os:timestamp(),
(MegaSeconds * 1000000000000) + (Seconds * 1000000) + MilliSeconds.
これの関数をattachして実行する場合、
➜ riak git:(a12d5a2) rel/riak/bin/riak start
➜ riak git:(a12d5a2) rel/riak/bin/riak attach
Remote Shell: Use "Ctrl-C a" to quit. q() or init:stop() will terminate the riak node.
Erlang R15B03 (erts-5.9.3.1) [source] [64-bit] [smp:8:8] [async-threads:0] [kernel-poll:false] [dtrace]
Eshell V5.9.3.1 (abort with ^G)
(riak@127.0.0.1)1> riak_index:timestamp().
1387118819589664
こんな感じ。
ちなみにErlangでは、
モジュール名:関数名(引数).
で呼ぶ。
オペレーションの際に使う以外に、ソースコードを読みながら「実際どう動いているのかな?」と探ってみるものおもしろい。