Thread: [Kai-devel-ja] sasl の組み込み
Kai is a distributed key-value datastore
Status: Beta
Brought to you by:
takemaru
From: masahito i. <coo...@gm...> - 2008-08-25 03:37:11
|
sasl 組み込みに関しての報告です。 https://kai.svn.sourceforge.net/svnroot/kai/branches/cooldaemon_embed_sasl/ 修正点は下記の通りです。 ・kai_log を error_logger に置き換え(kai_log は、一応削除しましたが、復活は可能です) ・kai.config を make で生成するように修正 (log ディレクトリの指定の為です) ・kai_tcp_server で accept に失敗した際は、sleep して再度 accept を実行するよう修正 error_logger でログをファイルに残す為 Getting Started を下記の通り修正する必要があります。 >% erl -pa ebin -config kai -kai n 1 -kai r 1 -kai w 1 ↓ >% erl -boot start_sasl +W w -pa ebin -config ebin/kai -kai n 1 -kai r 1 -kai w 1 >% erl -pa ebin -config kai -kai port 11011 -kai memcache_port 11211 ↓ >% erl -boot start_sasl +W w -pa ebin -config ebin/kai -kai port 11011 -kai memcache_port 11211 ちなみに、rb は、rb:start/0 を評価された時点でログファイルを読み込むので rb:start/0 評価後に、error_logger で info_msg 等をログファイルに書き込んだ場合は 一旦、rb を再起動して rb:show/[0,1] や rb:list/[0,1] を評価して下さい。 最後に、少し気になる点ですが・・・ timer:tc(kai_hash, choose_bucket_randomly, []) が重い為 私の環境では、テストに失敗してしまいます。 これは、今回の修正とは関係ないハズなのですが、念のため挙げておきます。 -- cooldaemon |
From: Takeru I. <tak...@gm...> - 2008-08-25 13:26:48
|
さくっと対応していただきありがとうございます. 軽く使ってみましたのですが,クセのある出力がどうにも扱いにくく感じられます. 振り出しに戻して申し訳ないのですが,皆さんのご意見を聞かせていただけますでしょうか. Kai を走らせた後,次のようなコマンドを実行して,すべてのログを出力させました. % erl -boot start_sasl +W w -pa ebin -config ebin/kai -run rb start -s rb show -run c q すると,このメールの最後に添付したようなログが出力されます. 一般的な「行指向のログ」ではなく,SASL 特有の「段落単位のログ」になります. また,プロンプトのような "1>" が混ざってしまうようです (除去できるのかな?). 段落単位のログになることは知っていたのですが,改めて見てみるとつらい気がしてきました. 僕はログを見るときに,grep, sort, sed, perl などを使って行単位でフィルタをかけることをよくやります (古い人間なのだろうか?). Apache のような典型的な行指向ログでは,このアプローチは役に立ちます. ところが,SASL の出力ではこれができないので,段落単位で動作する "専用 grep" を作るか,ファイルに落としてから適当な処理をすることになります. というわけで,個人的には SASL を使うメリットがイマイチよくわからなくなっているのですが,皆さんどうお考えでしょうか. --- rb: reading report...done. rb: reading report...done. rb: reading report...Eshell V5.6.2 (abort with ^G) done. 1> rb: reading report...1> done. 1> rb: reading report...1> done. 1> rb: reading report...1> done. 1> rb: reading report...1> done. 1> rb: reading report...1> done. 1> rb: reading report...1> done. 1> rb: reading report...1> done. 1> PROGRESS REPORT <0.32.0> 2008-08-25 22:09:49 1> =============================================================================== 1> supervisor1> {local,sasl_safe_sup} 1> started1> 1> [{pid,<0.33.0>}, {name,alarm_handler}, {mfa,{alarm_handler,start_link,[]}}, {restart_type,permanent}, {shutdown,2000}, {child_type,worker}] 1> 1> PROGRESS REPORT <0.32.0> 2008-08-25 22:09:49 1> =============================================================================== 1> supervisor1> {local,sasl_safe_sup} 1> started1> 1> [{pid,<0.34.0>}, {name,overload}, {mfa,{overload,start_link,[]}}, {restart_type,permanent}, {shutdown,2000}, {child_type,worker}] 1> 1> 2008/8/25 masahito ikuta <coo...@gm...>: > sasl 組み込みに関しての報告です。 > > https://kai.svn.sourceforge.net/svnroot/kai/branches/cooldaemon_embed_sasl/ > > 修正点は下記の通りです。 > ・kai_log を error_logger に置き換え(kai_log は、一応削除しましたが、復活は可能です) > ・kai.config を make で生成するように修正 (log ディレクトリの指定の為です) > ・kai_tcp_server で accept に失敗した際は、sleep して再度 accept を実行するよう修正 > > error_logger でログをファイルに残す為 > Getting Started を下記の通り修正する必要があります。 > >>% erl -pa ebin -config kai -kai n 1 -kai r 1 -kai w 1 > ↓ >>% erl -boot start_sasl +W w -pa ebin -config ebin/kai -kai n 1 -kai r 1 -kai w 1 > >>% erl -pa ebin -config kai -kai port 11011 -kai memcache_port 11211 > ↓ >>% erl -boot start_sasl +W w -pa ebin -config ebin/kai -kai port 11011 -kai memcache_port 11211 > > ちなみに、rb は、rb:start/0 を評価された時点でログファイルを読み込むので > rb:start/0 評価後に、error_logger で info_msg 等をログファイルに書き込んだ場合は > 一旦、rb を再起動して rb:show/[0,1] や rb:list/[0,1] を評価して下さい。 > > 最後に、少し気になる点ですが・・・ > timer:tc(kai_hash, choose_bucket_randomly, []) が重い為 > 私の環境では、テストに失敗してしまいます。 > これは、今回の修正とは関係ないハズなのですが、念のため挙げておきます。 > > -- > cooldaemon > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Kai-devel-ja mailing list > Kai...@li... > https://lists.sourceforge.net/lists/listinfo/kai-devel-ja > -- Takeru INOUE <tak...@gm...> |
From: Takeru I. <tak...@gm...> - 2008-08-25 13:32:47
|
2008/8/25 masahito ikuta <coo...@gm...>: > sasl 組み込みに関しての報告です。 > > https://kai.svn.sourceforge.net/svnroot/kai/branches/cooldaemon_embed_sasl/ > > 修正点は下記の通りです。 > ・kai_log を error_logger に置き換え(kai_log は、一応削除しましたが、復活は可能です) > ・kai.config を make で生成するように修正 (log ディレクトリの指定の為です) > ・kai_tcp_server で accept に失敗した際は、sleep して再度 accept を実行するよう修正 kai_tcp_server でのエラー出力に ?error マクロを使ってしまうと,kai.hrl への依存が残ってしまうように思いました. 独立したモジュールとして使えるようにするためには,kai_tcp_server については error_logger を直接呼び出したほうがいいかもと思いました. ちょっと神経質かなぁ.. もし,?error のまま残すのであれば,先のメールに書いた「SASL の段落出力が気にくわない」という問題に対して妥協案を出せるかもしれません. エラー出力には ?error などのマクロなどを使うようにしておき,マクロ定義で error_logger と kai_log を選択するようにする,という手もありますね. とはいえ,SASL は長い年月を経て今の仕様になっているわけだから,段落出力を嫌う僕が少数派なのかなぁ. > error_logger でログをファイルに残す為 > Getting Started を下記の通り修正する必要があります。 > >>% erl -pa ebin -config kai -kai n 1 -kai r 1 -kai w 1 > ↓ >>% erl -boot start_sasl +W w -pa ebin -config ebin/kai -kai n 1 -kai r 1 -kai w 1 > >>% erl -pa ebin -config kai -kai port 11011 -kai memcache_port 11211 > ↓ >>% erl -boot start_sasl +W w -pa ebin -config ebin/kai -kai port 11011 -kai memcache_port 11211 > > ちなみに、rb は、rb:start/0 を評価された時点でログファイルを読み込むので > rb:start/0 評価後に、error_logger で info_msg 等をログファイルに書き込んだ場合は > 一旦、rb を再起動して rb:show/[0,1] や rb:list/[0,1] を評価して下さい。 > > 最後に、少し気になる点ですが・・・ > timer:tc(kai_hash, choose_bucket_randomly, []) が重い為 > 私の環境では、テストに失敗してしまいます。 > これは、今回の修正とは関係ないハズなのですが、念のため挙げておきます。 そうでしたか.. ちょっと余裕のある値にしたつもりでしたが,もう少しゆとりを持たせておきます. -- Takeru INOUE <tak...@gm...> |
From: masahito i. <coo...@gm...> - 2008-08-26 03:33:46
|
>ところが,SASL の出力ではこれができないので,段落単位で動作する "専用 grep" を作るか,ファイルに落としてから適当な処理をすることになります. まだ試してませんが、rb:grep/1 というのがあります。 引数は、正規表現(文字列型)です。 > kai_tcp_server でのエラー出力に ?error マクロを使ってしまうと,kai.hrl への依存が残ってしまうように思いました. kai_tcp_server は、kai.hrl で定義されているレコード tcp_server_option にも依存しています。 もし、kai.hrl と切り離すのであれば、tcp_server_option を kai_tcp_server.hrl へ移動し ?error などは、kai_error.hrl へ移動するのが良いかもしれません。 (kai_error.hrl も他のプロジェクトで汎用的に使えそう。少なくとも私は使うw;) > ちょっと神経質かなぁ.. 普通の感覚だと思います。 言い訳ですが、tcp_server_option の件もあったので、あとで解決しようかなーと(。。;; >> 一旦、rb を再起動して rb:show/[0,1] や rb:list/[0,1] を評価して下さい。 これは、誤情報かも・・・。rb:rescan/[0,1] ってのが使えそう。 rb:grep/1 と共に検証してみます。 2008/8/25 Takeru INOUE <tak...@gm...>: > 2008/8/25 masahito ikuta <coo...@gm...>: >> sasl 組み込みに関しての報告です。 >> >> https://kai.svn.sourceforge.net/svnroot/kai/branches/cooldaemon_embed_sasl/ >> >> 修正点は下記の通りです。 >> ・kai_log を error_logger に置き換え(kai_log は、一応削除しましたが、復活は可能です) >> ・kai.config を make で生成するように修正 (log ディレクトリの指定の為です) >> ・kai_tcp_server で accept に失敗した際は、sleep して再度 accept を実行するよう修正 > > kai_tcp_server でのエラー出力に ?error マクロを使ってしまうと,kai.hrl への依存が残ってしまうように思いました. > 独立したモジュールとして使えるようにするためには,kai_tcp_server については error_logger > を直接呼び出したほうがいいかもと思いました. > ちょっと神経質かなぁ.. > > もし,?error のまま残すのであれば,先のメールに書いた「SASL の段落出力が気にくわない」という問題に対して妥協案を出せるかもしれません. > エラー出力には ?error などのマクロなどを使うようにしておき,マクロ定義で error_logger と kai_log > を選択するようにする,という手もありますね. > とはいえ,SASL は長い年月を経て今の仕様になっているわけだから,段落出力を嫌う僕が少数派なのかなぁ. > >> error_logger でログをファイルに残す為 >> Getting Started を下記の通り修正する必要があります。 >> >>>% erl -pa ebin -config kai -kai n 1 -kai r 1 -kai w 1 >> ↓ >>>% erl -boot start_sasl +W w -pa ebin -config ebin/kai -kai n 1 -kai r 1 -kai w 1 >> >>>% erl -pa ebin -config kai -kai port 11011 -kai memcache_port 11211 >> ↓ >>>% erl -boot start_sasl +W w -pa ebin -config ebin/kai -kai port 11011 -kai memcache_port 11211 >> >> ちなみに、rb は、rb:start/0 を評価された時点でログファイルを読み込むので >> rb:start/0 評価後に、error_logger で info_msg 等をログファイルに書き込んだ場合は >> 一旦、rb を再起動して rb:show/[0,1] や rb:list/[0,1] を評価して下さい。 >> >> 最後に、少し気になる点ですが・・・ >> timer:tc(kai_hash, choose_bucket_randomly, []) が重い為 >> 私の環境では、テストに失敗してしまいます。 >> これは、今回の修正とは関係ないハズなのですが、念のため挙げておきます。 > > そうでしたか.. > ちょっと余裕のある値にしたつもりでしたが,もう少しゆとりを持たせておきます. > > -- > Takeru INOUE <tak...@gm...> > -- cooldaemon |
From: Takeru I. <tak...@gm...> - 2008-08-26 11:59:35
|
>>ところが,SASL の出力ではこれができないので,段落単位で動作する "専用 grep" を作るか,ファイルに落としてから適当な処理をすることになります. > > まだ試してませんが、rb:grep/1 というのがあります。 > 引数は、正規表現(文字列型)です。 rb で出来ることと出来ないことをまとめてみました. ↓で正しいでしょうか? ・"INFO REPORT" の先頭 10件を出力. > rb:rescan([{type, info_msg}]). > rb:show(). ・"INFO REPORT" の先頭 10件から,"abc" を含むものを出力. > rb:rescan([{type, info_msg}, {max, 10}]). > rb:grep("abc"). ・"INFO REPORT" の "abc" を含むものから,先頭 10件を出力. Not available? ・"INFO REPORT" から,"abc" と "def" を含むものを出力. Not available? ちょっと力不足かなぁ.. >> kai_tcp_server でのエラー出力に ?error マクロを使ってしまうと,kai.hrl への依存が残ってしまうように思いました. > > kai_tcp_server は、kai.hrl で定義されているレコード tcp_server_option にも依存しています。 あ,そうですね. > もし、kai.hrl と切り離すのであれば、tcp_server_option を kai_tcp_server.hrl へ移動し > ?error などは、kai_error.hrl へ移動するのが良いかもしれません。 > (kai_error.hrl も他のプロジェクトで汎用的に使えそう。少なくとも私は使うw;) では,そのへんの依存は残しても良しとしましょう. >> ちょっと神経質かなぁ.. > > 普通の感覚だと思います。 > 言い訳ですが、tcp_server_option の件もあったので、あとで解決しようかなーと(。。;; > >>> 一旦、rb を再起動して rb:show/[0,1] や rb:list/[0,1] を評価して下さい。 > > これは、誤情報かも・・・。rb:rescan/[0,1] ってのが使えそう。 > rb:grep/1 と共に検証してみます。 > > 2008/8/25 Takeru INOUE <tak...@gm...>: >> 2008/8/25 masahito ikuta <coo...@gm...>: >>> sasl 組み込みに関しての報告です。 >>> >>> https://kai.svn.sourceforge.net/svnroot/kai/branches/cooldaemon_embed_sasl/ >>> >>> 修正点は下記の通りです。 >>> ・kai_log を error_logger に置き換え(kai_log は、一応削除しましたが、復活は可能です) >>> ・kai.config を make で生成するように修正 (log ディレクトリの指定の為です) >>> ・kai_tcp_server で accept に失敗した際は、sleep して再度 accept を実行するよう修正 >> >> kai_tcp_server でのエラー出力に ?error マクロを使ってしまうと,kai.hrl への依存が残ってしまうように思いました. >> 独立したモジュールとして使えるようにするためには,kai_tcp_server については error_logger >> を直接呼び出したほうがいいかもと思いました. >> ちょっと神経質かなぁ.. >> >> もし,?error のまま残すのであれば,先のメールに書いた「SASL の段落出力が気にくわない」という問題に対して妥協案を出せるかもしれません. >> エラー出力には ?error などのマクロなどを使うようにしておき,マクロ定義で error_logger と kai_log >> を選択するようにする,という手もありますね. >> とはいえ,SASL は長い年月を経て今の仕様になっているわけだから,段落出力を嫌う僕が少数派なのかなぁ. >> >>> error_logger でログをファイルに残す為 >>> Getting Started を下記の通り修正する必要があります。 >>> >>>>% erl -pa ebin -config kai -kai n 1 -kai r 1 -kai w 1 >>> ↓ >>>>% erl -boot start_sasl +W w -pa ebin -config ebin/kai -kai n 1 -kai r 1 -kai w 1 >>> >>>>% erl -pa ebin -config kai -kai port 11011 -kai memcache_port 11211 >>> ↓ >>>>% erl -boot start_sasl +W w -pa ebin -config ebin/kai -kai port 11011 -kai memcache_port 11211 >>> >>> ちなみに、rb は、rb:start/0 を評価された時点でログファイルを読み込むので >>> rb:start/0 評価後に、error_logger で info_msg 等をログファイルに書き込んだ場合は >>> 一旦、rb を再起動して rb:show/[0,1] や rb:list/[0,1] を評価して下さい。 >>> >>> 最後に、少し気になる点ですが・・・ >>> timer:tc(kai_hash, choose_bucket_randomly, []) が重い為 >>> 私の環境では、テストに失敗してしまいます。 >>> これは、今回の修正とは関係ないハズなのですが、念のため挙げておきます。 >> >> そうでしたか.. >> ちょっと余裕のある値にしたつもりでしたが,もう少しゆとりを持たせておきます. >> >> -- >> Takeru INOUE <tak...@gm...> >> > > > > -- > cooldaemon > -- Takeru INOUE <tak...@gm...> |
From: masahito i. <coo...@gm...> - 2008-08-27 22:55:45
|
kai-devel-ja に送り忘れたので再送します。 ごめんなさい。 > ちょっと力不足かなぁ.. とりあえず、trunk に kai_tcp_server の修正だけ入れてしまい 二回目のリリース後に検討するという事で如何でしょう? で、その際は、kai_tcp_server は、kai_log に依存させるつもりです。 2008/8/26 Takeru INOUE <tak...@gm...>: >>>ところが,SASL の出力ではこれができないので,段落単位で動作する "専用 grep" を作るか,ファイルに落としてから適当な処理をすることになります. >> >> まだ試してませんが、rb:grep/1 というのがあります。 >> 引数は、正規表現(文字列型)です。 > > rb で出来ることと出来ないことをまとめてみました. > ↓で正しいでしょうか? > > ・"INFO REPORT" の先頭 10件を出力. > > > rb:rescan([{type, info_msg}]). > > rb:show(). > > ・"INFO REPORT" の先頭 10件から,"abc" を含むものを出力. > > > rb:rescan([{type, info_msg}, {max, 10}]). > > rb:grep("abc"). > > ・"INFO REPORT" の "abc" を含むものから,先頭 10件を出力. > > Not available? > > ・"INFO REPORT" から,"abc" と "def" を含むものを出力. > > Not available? > > ちょっと力不足かなぁ.. > > >>> kai_tcp_server でのエラー出力に ?error マクロを使ってしまうと,kai.hrl への依存が残ってしまうように思いました. >> >> kai_tcp_server は、kai.hrl で定義されているレコード tcp_server_option にも依存しています。 > > あ,そうですね. > >> もし、kai.hrl と切り離すのであれば、tcp_server_option を kai_tcp_server.hrl へ移動し >> ?error などは、kai_error.hrl へ移動するのが良いかもしれません。 >> (kai_error.hrl も他のプロジェクトで汎用的に使えそう。少なくとも私は使うw;) > > では,そのへんの依存は残しても良しとしましょう. > >>> ちょっと神経質かなぁ.. >> >> 普通の感覚だと思います。 >> 言い訳ですが、tcp_server_option の件もあったので、あとで解決しようかなーと(。。;; >> >>>> 一旦、rb を再起動して rb:show/[0,1] や rb:list/[0,1] を評価して下さい。 >> >> これは、誤情報かも・・・。rb:rescan/[0,1] ってのが使えそう。 >> rb:grep/1 と共に検証してみます。 >> >> 2008/8/25 Takeru INOUE <tak...@gm...>: >>> 2008/8/25 masahito ikuta <coo...@gm...>: >>>> sasl 組み込みに関しての報告です。 >>>> >>>> https://kai.svn.sourceforge.net/svnroot/kai/branches/cooldaemon_embed_sasl/ >>>> >>>> 修正点は下記の通りです。 >>>> ・kai_log を error_logger に置き換え(kai_log は、一応削除しましたが、復活は可能です) >>>> ・kai.config を make で生成するように修正 (log ディレクトリの指定の為です) >>>> ・kai_tcp_server で accept に失敗した際は、sleep して再度 accept を実行するよう修正 >>> >>> kai_tcp_server でのエラー出力に ?error マクロを使ってしまうと,kai.hrl への依存が残ってしまうように思いました. >>> 独立したモジュールとして使えるようにするためには,kai_tcp_server については error_logger >>> を直接呼び出したほうがいいかもと思いました. >>> ちょっと神経質かなぁ.. >>> >>> もし,?error のまま残すのであれば,先のメールに書いた「SASL の段落出力が気にくわない」という問題に対して妥協案を出せるかもしれません. >>> エラー出力には ?error などのマクロなどを使うようにしておき,マクロ定義で error_logger と kai_log >>> を選択するようにする,という手もありますね. >>> とはいえ,SASL は長い年月を経て今の仕様になっているわけだから,段落出力を嫌う僕が少数派なのかなぁ. >>> >>>> error_logger でログをファイルに残す為 >>>> Getting Started を下記の通り修正する必要があります。 >>>> >>>>>% erl -pa ebin -config kai -kai n 1 -kai r 1 -kai w 1 >>>> ↓ >>>>>% erl -boot start_sasl +W w -pa ebin -config ebin/kai -kai n 1 -kai r 1 -kai w 1 >>>> >>>>>% erl -pa ebin -config kai -kai port 11011 -kai memcache_port 11211 >>>> ↓ >>>>>% erl -boot start_sasl +W w -pa ebin -config ebin/kai -kai port 11011 -kai memcache_port 11211 >>>> >>>> ちなみに、rb は、rb:start/0 を評価された時点でログファイルを読み込むので >>>> rb:start/0 評価後に、error_logger で info_msg 等をログファイルに書き込んだ場合は >>>> 一旦、rb を再起動して rb:show/[0,1] や rb:list/[0,1] を評価して下さい。 >>>> >>>> 最後に、少し気になる点ですが・・・ >>>> timer:tc(kai_hash, choose_bucket_randomly, []) が重い為 >>>> 私の環境では、テストに失敗してしまいます。 >>>> これは、今回の修正とは関係ないハズなのですが、念のため挙げておきます。 >>> >>> そうでしたか.. >>> ちょっと余裕のある値にしたつもりでしたが,もう少しゆとりを持たせておきます. >>> >>> -- >>> Takeru INOUE <tak...@gm...> >>> >> >> >> >> -- >> cooldaemon >> > > > > -- > Takeru INOUE <tak...@gm...> > -- cooldaemon |