Q4M

Kazuho Oku on Twitter: "P::C::MQ のバグ報告したし、独自MQの開発するかな (ぉ" って書いたら Toru Yamaguchi on Twitter: "@kazuho 明後日になると90%くらいの確率でリリースしましたエントリが挙がる悪寒" とか言われたので、なんとか リリース しましたよという話。MySQL 用のキューだからプロジェクト名を「m9」にすべきか悩んだけど、無難な線に落ち着きました。

MySQL の Pluggable Storage Engine は、いいですね。わかりやすいドキュメント (http://forge.mysql.com/wiki/MySQL_Internals_Custom_Engine) もあるし。


あとは、

  • ファイルベースの永続化
    • 現状はメモリベースなので
  • 細かな設定の確認
    • 対応非対応の機能をちゃんとフラグたてて MySQL に教えてあげるとか

とかやればメインのブログで書いてもいいかなぁ。個人的には、排他制御まわりが気になる。pthread_cond に相当する機能は THR_LOCK にもあるんだろうか。悩んでる点としては、

  • インデックスは必要か?
    • 基本的にはキューテーブルを増やせばいい
      • その方がもちろん速い
    • でもテーブルは動的には増減させにくい
      • MQ で動的に宛先のハンドラを追加/削除したいケースがどれだけあるか

というあたり。クラスタ構成でノードを追加するとかあるんだろうけど、そういうケースでは専用MQ使えよって気もするし。

でも専用MQにもパフォーマンスで負けないようにチューニングするつもり。つーか、なんだかんだ言って、ちゃんとしたパケットベースのプロトコル+pthread_mutex+専用バックエンドって構成は速いはず。