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のドメイン制約

     * Level1: クロスドメインXML

     * Level2: XMLSocketサーバの実装が必要

       * System.secuurity.load.PolicyFile("xmlsocket://....")

       *  <- クロスドメインファイル

   * XMLSocket \0がセパレータ

 * ShootingStarでクロスドメイン

 * Jetty

   * Continuation

     * Runtime Exceptionを使って

   * JettyはJRE6でないとepollつかわないから、そっちがいいよ