LoginSignup
1

More than 5 years have passed since last update.

Riakを運用する上でちょくちょく必要になりそうな小ネタ

Posted at

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では、

モジュール名:関数名(引数).

で呼ぶ。

オペレーションの際に使う以外に、ソースコードを読みながら「実際どう動いているのかな?」と探ってみるものおもしろい。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1