« スレッド間で共有する変数のアクセス権制御を C++ コンパイラで強制する方法 | Main | MySQL のトリガーの実用性を確認するために InnoDB の SELECT COUNT(*) を高速化してみる »

June 25, 2009

Q4M の mutex まわりを整理

 Q4M (Queue for MySQL) の mutex と rwlock のうち主要な部分を、「スレッド間で共有する変数のアクセス権制御を C++ コンパイラで強制する方法」で紹介させていただいたロック手法 (以下 CAC) を使うようリファクタリングしました。変更の過程でバグらしきものは見つかりませんでしたが、なにか未発見のバグが直っていたりする可能性、あるいは品質維持を考えて、今後は CAC ベースのリリースにしていこうと思っています。

 というわけで、非 CAC ベースの最終版 (0.8.6)、および CAC リリース (0.8.7) の最新版のプレリリース (バイナリ版は linux x86_64 のみ) が q4m.31tools.com/dist/pre においてあります。興味のある方はお試しください。しばらく様子を見て問題がなければ、0.8.7 を正式リリースにしたいと思います。

 また、(特に新しいバージョンの) Q4M が一度でも落ちたことがある、という方がいらっしゃいましたら、ぜひ詳細な情報をお寄せいただければと思います。よろしくお願いいたします。

注. 一点、--with-delete=msync の場合に、mysqld 起動後初回の Q4M 書き込み時に1回だけ、ロックが逆転する可能性があったことを確認しました

TrackBack

TrackBack URL for this entry:
http://www.typepad.jp/t/trackback/404050/20354249

Listed below are links to weblogs that reference Q4M の mutex まわりを整理:

Comments

Post a comment