Changeset 27929 for lang/erlang
- Timestamp:
- 01/05/09 02:11:59 (4 years ago)
- Location:
- lang/erlang/qnesia
- Files:
-
- 3 modified
-
ChangeLog (modified) (1 diff)
-
src/qnesia.erl (modified) (2 diffs)
-
src/wtest.erl (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
lang/erlang/qnesia/ChangeLog
r27794 r27929 1 2009-01-02 UENISHI Kota <uenishi.kota@lab.ntt.co.jp> 1 2009-01-05 UENISHI Kota <kuenishi@gmail.com> 2 3 * src/wtest.erl (run): performerを何度かかけてみると固まるケースが。 4 3x3だと99WPSくらいいったけど、何度目かで確実に固まる。 5 並列数などを増やすと、尚更。いったいどういうこっちゃ(来るはずのないメッセージをrecvしてるんだろなぁ)。 6 7 * src/qnesia.erl (local_write): 大分シンプルにしてみた 8 coordinatorとかややこしいプロセスは全部消して、rpc系にまとめた。 9 リモートへのレプリケーションも完了。 10 (TODO): ネットワーク切断の際にきちんと更新に失敗するのを確認すること。 11 コンフィグ情報の静的保管の仕方を調べること。 12 13 2009-01-04 UENISHI Kota <kuenishi@gmail.com> 14 15 * src/qnesia.erl : デザインを根本から見直すことにしたので、 16 ちょっとお休み。ドキュメントをまとめるかもしれない。 17 18 2009-01-03 UENISHI Kota <kuenishi@gmail.com> 19 20 * src/qnesia.erl (mnesia_wrapper_loop): メッセージベースの作りよりも 21 RPCベースで作った方がよいと思います。というわけで ! 禁止の方向で。 22 プロセス構成ももちょっと変えて、リモートのマシンにはRPCするだけ。 23 リモートできちんとコードをstaticに持っておく 24 -> rpc:async_call, rpc:nb_yieldを使えばいいんじゃないか 25 -> 李ファクタリング必要 26 27 2009-01-02 UENISHI Kota <kuenishi@gmail.com> 2 28 3 29 * qnesia.erl (read operation, mnesia_wrapper_loop): -
lang/erlang/qnesia/src/qnesia.erl
r27923 r27929 58 58 %io:format("1. ここまできたよ~n", []), 59 59 Keys = remote_write( Members, Data ), 60 io:format("2. ここまできたよ~p~n", [[N,W,Members,Data]]),60 %io:format("2. ここまできたよ~p~n", [[N,W,Members,Data]]), 61 61 case recv_ack( W, N-W+1, [] ) of 62 62 {ok, {Remain, Ackers}}-> 63 63 %io:format("hoge: ここまできたよ~p~n", [[N,W,Members,Data,From]]), 64 64 lists:map( fun(Node)-> Node ! {self(), { ok, do_commit }} end , Ackers ), 65 io:format("〜〜〜〜〜ここまできたよ~n", []),65 %io:format("〜〜〜〜〜ここまできたよ~n", []), 66 66 %{Result, {_, AckersRemain}} = recv_ack( Remain-1, 1, [] ), 67 67 %lists:map( fun(Node)-> Node ! {self(), { ok, do_commit }} end , AckersRemain ), … … 79 79 recv_ack( 0, Remain, Ackers)-> {ok, {Remain, Ackers}}; 80 80 recv_ack( Q, Remain, Ackers)-> 81 io:format( "receiving.~p~n", [[Q,Remain]]),81 %io:format( "receiving.~p~n", [[Q,Remain]]), 82 82 receive 83 83 {From, {ok, _Result}}-> 84 io:format( "ok: ~p.~n", [_Result]),84 %io:format( "ok: ~p.~n", [_Result]), 85 85 recv_ack(Q-1, Remain, [From|Ackers]); 86 86 {From, {error, Reason}}-> -
lang/erlang/qnesia/src/wtest.erl
r27839 r27929 27 27 loop(_Argv)-> 28 28 {Key, Value} = {gen_atom(12), gen_atom(128)}, 29 qnesia:write( {Key, Value}).% keykeykey, "asaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ).29 qnesia:write([node(), 'b@localhost'], {Key, Value}).% keykeykey, "asaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ). 30 30 31 31 run()->
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)