Changeset 27929 for lang/erlang

Show
Ignore:
Timestamp:
01/05/09 02:11:59 (5 years ago)
Author:
kuenishi
Message:

lang/erlang/qnesia パフォーマンス測定でバグ発見orz

Location:
lang/erlang/qnesia
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • lang/erlang/qnesia/ChangeLog

    r27794 r27929  
    1 2009-01-02  UENISHI Kota  <uenishi.kota@lab.ntt.co.jp> 
     12009-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         
     132009-01-04  UENISHI Kota  <kuenishi@gmail.com> 
     14 
     15        * src/qnesia.erl : デザインを根本から見直すことにしたので、 
     16        ちょっとお休み。ドキュメントをまとめるかもしれない。 
     17 
     182009-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 
     272009-01-02  UENISHI Kota  <kuenishi@gmail.com> 
    228 
    329        * qnesia.erl (read operation, mnesia_wrapper_loop):  
  • lang/erlang/qnesia/src/qnesia.erl

    r27923 r27929  
    5858    %io:format("1. ここまできたよ~n", []), 
    5959    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]]), 
    6161    case recv_ack( W, N-W+1, [] ) of 
    6262        {ok, {Remain, Ackers}}-> 
    6363            %io:format("hoge: ここまできたよ~p~n", [[N,W,Members,Data,From]]), 
    6464            lists:map( fun(Node)-> Node ! {self(), { ok, do_commit }} end , Ackers ), 
    65             io:format("〜〜〜〜〜ここまできたよ~n", []), 
     65            %io:format("〜〜〜〜〜ここまできたよ~n", []), 
    6666            %{Result, {_, AckersRemain}} =   recv_ack( Remain-1, 1, [] ), 
    6767            %lists:map( fun(Node)-> Node ! {self(), { ok, do_commit }} end , AckersRemain ), 
     
    7979recv_ack( 0, Remain, Ackers)-> {ok, {Remain, Ackers}}; 
    8080recv_ack( Q, Remain, Ackers)-> 
    81     io:format( "receiving.~p~n", [[Q,Remain]]), 
     81    %io:format( "receiving.~p~n", [[Q,Remain]]), 
    8282    receive 
    8383        {From, {ok, _Result}}-> 
    84             io:format( "ok: ~p.~n", [_Result]), 
     84            %io:format( "ok: ~p.~n", [_Result]), 
    8585            recv_ack(Q-1, Remain, [From|Ackers]); 
    8686        {From, {error, Reason}}-> 
  • lang/erlang/qnesia/src/wtest.erl

    r27839 r27929  
    2727loop(_Argv)-> 
    2828    {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" ). 
    3030 
    3131run()->