An OTP application
$ rebar3 compile
rebar3 shell --name [email protected]
rebar3 shell --name [email protected]
rebar3 shell --name [email protected]
Start cluster
ra_kv_store:start_cluster().
Test cycle
ra_kv_store:until_block().
ra:consistent_query(ra_kv_store:servers(), fun(_) -> undefined end).
Example output
([email protected])1> ===> Booted ra_test [40/50]
([email protected])1>
([email protected])1>
([email protected])1> ra_kv_store:start_cluster().
Attempting to communicate with node [email protected], response: pong
Attempting to communicate with node [email protected], response: pong
Attempting to communicate with node [email protected], response: pong
{ok,[{ra_kv,'[email protected]'},
{ra_kv,'[email protected]'},
{ra_kv,'[email protected]'}],
[]}
([email protected])2> ra_kv_store:until_block().
Going for a round...
Restarting server {ra_kv,'[email protected]'}
Going for a round...
Restarting server {ra_kv,'[email protected]'}
Going for a round...
Restarting server {ra_kv,'[email protected]'}
Going for a round...
** exception error: no match of right hand side value {error,
{no_more_servers_to_try,
[{timeout,{ra_kv,'[email protected]'}},
{timeout,{ra_kv,'[email protected]'}},
{error,noproc}]}}
in function ra_kv_store:consistent_query/0 (/home/orre/work/ra_test/src/ra_kv_store.erl, line 51)
in call from ra_kv_store:maybe_block/0 (/home/orre/work/ra_test/src/ra_kv_store.erl, line 40)
in call from ra_kv_store:until_block/1 (/home/orre/work/ra_test/src/ra_kv_store.erl, line 57)
([email protected])3> ra:consistent_query(ra_kv_store:servers(), fun(_) -> undefined end).
{ok,undefined,{ra_kv,'[email protected]'}}
([email protected])4> ra_kv_store:until_block().
Going for a round...
Restarting server {ra_kv,'[email protected]'}
Going for a round...
Restarting server {ra_kv,'[email protected]'}
Going for a round...
** exception error: no match of right hand side value {error,
{no_more_servers_to_try,
[{timeout,{ra_kv,'[email protected]'}},
{timeout,{ra_kv,'[email protected]'}},
{error,noproc}]}}
in function ra_kv_store:consistent_query/0 (/home/orre/work/ra_test/src/ra_kv_store.erl, line 51)
in call from ra_kv_store:maybe_block/0 (/home/orre/work/ra_test/src/ra_kv_store.erl, line 40)
in call from ra_kv_store:until_block/1 (/home/orre/work/ra_test/src/ra_kv_store.erl, line 57)
([email protected])5> ra:consistent_query(ra_kv_store:servers(), fun(_) -> undefined end).
{error,{no_more_servers_to_try,[{timeout,{ra_kv,'[email protected]'}},
{timeout,{ra_kv,'[email protected]'}},
{error,noproc}]}}
([email protected])6> ra:consistent_query(ra_kv_store:servers(), fun(_) -> undefined end).
{error,{no_more_servers_to_try,[{timeout,{ra_kv,'[email protected]'}},
{timeout,{ra_kv,'[email protected]'}},
{error,noproc}]}}
([email protected])7> ra:consistent_query(ra_kv_store:servers(), fun(_) -> undefined end).
{ok,undefined,{ra_kv,'[email protected]'}}
([email protected])8> ra_kv_store:until_block().
Going for a round...
Restarting server {ra_kv,'[email protected]'}
Going for a round...
** exception error: no match of right hand side value
{error,{no_more_servers_to_try,[{timeout,{ra_kv,'[email protected]'}},
{timeout,{ra_kv,'[email protected]'}},
{error,noproc}]}}
in function ra_kv_store:consistent_query/0 (/home/orre/work/ra_test/src/ra_kv_store.erl, line 51)
in call from ra_kv_store:maybe_block/0 (/home/orre/work/ra_test/src/ra_kv_store.erl, line 40)
in call from ra_kv_store:until_block/1 (/home/orre/work/ra_test/src/ra_kv_store.erl, line 57)
([email protected])9> ra:consistent_query(ra_kv_store:servers(), fun(_) -> undefined end).
{error,{no_more_servers_to_try,[{timeout,{ra_kv,'[email protected]'}},
{timeout,{ra_kv,'[email protected]'}},
{error,noproc}]}}
([email protected])10> ra:consistent_query(ra_kv_store:servers(), fun(_) -> undefined end).
{error,{no_more_servers_to_try,[{timeout,{ra_kv,'[email protected]'}},
{timeout,{ra_kv,'[email protected]'}},
{error,noproc}]}}
([email protected])11> ra:consistent_query(ra_kv_store:servers(), fun(_) -> undefined end).
{error,{no_more_servers_to_try,[{timeout,{ra_kv,'[email protected]'}},
{timeout,{ra_kv,'[email protected]'}},
{error,noproc}]}}
([email protected])12> ra:consistent_query(ra_kv_store:servers(), fun(_) -> undefined end).
{ok,undefined,{ra_kv,'[email protected]'}}
([email protected])13> ra_kv_store:until_block().
Going for a round...
Restarting server {ra_kv,'[email protected]'}
Going for a round...
** exception error: no match of right hand side value
{error,{no_more_servers_to_try,[{timeout,{ra_kv,'[email protected]'}},
{timeout,{ra_kv,'[email protected]'}},
{error,noproc}]}}
in function ra_kv_store:consistent_query/0 (/home/orre/work/ra_test/src/ra_kv_store.erl, line 51)
in call from ra_kv_store:maybe_block/0 (/home/orre/work/ra_test/src/ra_kv_store.erl, line 40)
in call from ra_kv_store:until_block/1 (/home/orre/work/ra_test/src/ra_kv_store.erl, line 57)
([email protected])14> ra:consistent_query(ra_kv_store:servers(), fun(_) -> undefined end).
{error,{no_more_servers_to_try,[{timeout,{ra_kv,'[email protected]'}},
{timeout,{ra_kv,'[email protected]'}},
{error,noproc}]}}
([email protected])15> ra:consistent_query(ra_kv_store:servers(), fun(_) -> undefined end).
{error,{no_more_servers_to_try,[{timeout,{ra_kv,'[email protected]'}},
{timeout,{ra_kv,'[email protected]'}},
{error,noproc}]}}
([email protected])16> ra:consistent_query(ra_kv_store:servers(), fun(_) -> undefined end).
{error,{no_more_servers_to_try,[{timeout,{ra_kv,'[email protected]'}},
{timeout,{ra_kv,'[email protected]'}},
{error,noproc}]}}
([email protected])17> ra:consistent_query(ra_kv_store:servers(), fun(_) -> undefined end).
{error,{no_more_servers_to_try,[{timeout,{ra_kv,'[email protected]'}},
{timeout,{ra_kv,'[email protected]'}},
{error,noproc}]}}
([email protected])18> ra:leader_query(ra_kv_store:servers(), fun(_) -> undefined end).
{ok,{{9,8},undefined},{ra_kv,'[email protected]'}}