*3:kumofsは、I/Oとロジックを強く分離した形で実装しています。MessagePackの動的型付けの性質を利用することで、I/Oとロジックの疎結合化を実現。*4:Erlangはいいですねぇ。*5:普通は、I/Oイベント待ち(=epollやkqueue)とタスク待ち(=pthread_cond待ち)を混ぜて使うことはできません。epollにpipeを1つ喰わせておくなど、無駄の多い細工が必要です。mpioではもはやシングルスレッドを捨て、ロックやフラグを注意深く操作することで、pipeを使わずにI/Oイベント待ちとタスク待ちを混ぜることに成功しています。*6:signalfd+epollまたはkqueueを使ってシグナルをハンドリングします。*7:Wavyアーキテクチャでは多少長くブロックしても他の処理には影響は与えないのですが、長くブロックしすぎるとスレッドの数が足りなくなって応答速度が低下してしまいます。長くブロックする「可能性」のあるコードが入っていると、特に障害が発生した場合などに応答速度が低下し、プログラムの堅牢性が低下してしまいます。writeは、送信先のホストに障害が発生したときに長くブロックする可能性があります*8:名前付きのリストとTagsのリストがありますが、上の方の名前付きのリストからダウンロードしてください。コードは、全体で約2万行です。Wavyシングルスレッドではもう遅い。以前にマルチコア時代の高速サ...2008-10-14同期プロトコルと非同期プロトコル今のところチラシの裏的な話。リトライはいつ成功するかリトライと冪等性のデザインパターン月別アーカイブ検索はてなブログをはじめよう!viverさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。