Comet勉強会 第2回
第2回Comet勉強会
http://rails.office.drecom.jp/takiuchi/daily/200706/18
に行ってきました。
ドリコム瀧内さん、また参加者の方々、お疲れさまでした。
濃密な時間をいただきました。ありがとうございました。
メモです。無編集。
* Erlangの2000万プロセスの秘密
* 軽量プロセス(300K)の存在
* 実行の切替戦略
* Rubyの場合は時間で片付ける
* ErlangはFunctionベース
(並列的に持っているけど逐次処理)
* UNIXにあてはめると共有リソースの問題でダメだろう
* yaws のパフォーマンス
* たぶんメッセージパッシングだから
* Apacheは受信ワーカと処理ワーカが分かれている。
* IOがからむとどうなる
* あんまりは有効な戦略はないんじゃないか?
* Erlangのhttpのソケットハンドリングはどうしてるのか?
* select? sig?
* IO系のソース読むか
* 仮想マシンのソース?
* Rubyのfiber
* fiberでブロックしたらきっと止まっちゃうよね。
* だからノンブロックで頑張ろう、と。
* そういやRubyの1.8.5->6で変わったらしい。
* Rubiniusは 8バイト?
* それじゃ状態も持てない
* 特定用途向けだとよくやるケースではあるけど。
* Erlangはプロセス側にスタックも持っているし
優先順位制御もしている。
* 結局、「プロセスになにをさせたいか」と、
オーバヘッドはトレードオフ。
* 結局Erlangはpollじゃん
* C10K問題
* IO多重化 TCP select poll でわりと解決したかも
* Producer/ConsumerパターンでQuereが溢れる
* これは本質的だ
* 本質的には断るしかない
* 電話屋さんはよくやっている。
どの程度の機器となら通信するか
* Producer/Consumer
* 登場人物
* Producer :
* queue : キュー
* Consumer :
* ProduceしたとたんにConsume
* AP4Rとかarmail(?)で使っている
* Flashを使ったらCometじゃない?(Comet原理主義)
* FlashのXMLSocketを使っていると
L7でなんかしているサーバは困りそう
* Proxy通るのか?
* XMLSocketのドメイン制約
* Level2: XMLSocketサーバの実装が必要
* System.secuurity.load.PolicyFile("xmlsocket://....")
*
* XMLSocket \0がセパレータ
* ShootingStarでクロスドメイン
* Jetty
* Continuation
* Runtime Exceptionを使って
* JettyはJRE6でないとepollつかわないから、そっちがいいよ