非同期キュー

RE:RE:RE: Perl5 の signal 処理と DBI と Q4M

kazuhooku さんにコメント頂いてしまい、恐縮っす。この件、kazuhooku さんのおっしゃることは理解できたと思う。kazuhooku さんの元記事はこれ。 Re: Perl5 の signal 処理と DBI と Q4M - kazuhoのメモ置き場 まず、現象はこう。 シグナルハンドラをセット…

RE:RE: Perl5 の signal 処理と DBI と Q4M

queue_wait() を呼んでいる間って他のことは何もしてないんだから、シグナルハンドラセットする必要ないよね、というのが基本的な考え方です。他のところでシグナルハンドラをセットしているならシグナルハンドラをデフォルト ('DEFAULT') に戻してください…

Q4M のレプリケーション

Google グループQ4M ってレプリケーションできないの? という質問がMLで。 奥さんからの回答は、 「出来ないです。個人的にはキューにレプリケーションは必要ないと思ってるけど、Q4M テーブルは DRBD でレプリケーション出来ますよ」(超意訳) まーそーっ…

q4m の queue_wait, queue_end の動作を小変更

現状の queue_wait はオーナーモードで呼び出した時に、勝手に queue_end が走るようになっている。また、queue_end は非オーナーモードでも何度でも呼べる。 よく考えられた仕様なのだが、私が若干特殊な使い方をしようとしていることもあって、queue_wait …

Prioritized Subscription 時の Q4M の動作

複数のキューの中で、データのあるものを探して取って来る Q4M の便利機能。 mysql> SELECT queue_wait('high_priority_table', 'low_priority_table', 10); これのこと。 エラーキューとしてウチでは使おうと思っているが、これの動きに若干癖があったので…

q4m-forward を使ってみる。

追記 2009-11-30: 「とても簡単」とか書いているが、q4m のテストが動いているのが前提だ。もし make test が通らない場合は、そちらを先に動くようにする必要あり。テストを動かすには、perl の mysql DBD がインストールされている必要がある。q4m の make…

q4m の動きをまとめてみた。

キューにデータを挿入する際には特に不思議な動作は無いし、普通の insert 文を使うだけなので、割愛。問題は取得時。これも直感にそぐう動作をしていると思う。 queue_wait() にて、owner モードに入ると同時にキューのデータを一件取得する。 取得した時点…

Ubuntu8.10 で OpenMQ4.3 のインストール

GlassFish このへんからインストールファイルを取得してくる。 http://blogs.sun.com/takemura/entry/mq4_1%E8%A3%9C%E8%B6%B3_solaris10%E3%81%B8%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%89%8B%E9%A0%86ここの Solaris 版のイ…

q4m の configure のオプションによる速度の違い

q4m の configure のオプション変更によってどの程度パフォーマンスに違いが出るのか比較してみた。Intel(R) Xeon(TM) CPU 2.80GHz x 4 CPU OS : Debian(Etch)まずは、default 状態。 ./configure --with-mysql=/home/kameid/mysql-5.1.30/ --prefix=/usr/lo…

q4m を debian にインストール

会社の debian にインストールしようとしたところ、 異なるエラーが出たため、一応記録しておく。 # ./configure --with-mysql=/home/kameid/mysql-5.1.30/ --prefix=/usr/local/mysql checking for mysql source code... "/home/kameid/mysql-5.1.30/" chec…

q4m のインストール

mysql の 5.1.30 で動く q4m のバイナリが現時点では無いみたいなんで、ソースから q4m をインストール。 q4mのバイナリは、http://q4m.31tools.com/dist/に置かれているが、 mysql-5.1.28-rc-linux-i686-glibc23-with-fast-mutexes-q4m-0.8.3.tar.gz という…

OpenMQ

QpenMQ は JMS 準拠の非同期キュー製品。 GlassFish に採用されている。 HAクラスタはHigh Availabilityクラスタの略で、高可用性クラスタのことです。 前回説明したコンベンショナル(=従来型)クラスタとどう違うかというと、以下の点で大きく異なってい…

Q4M

Q4Mについては、MySQL5.1のプラガブルストレージエンジンの1つで、サイボウズ・ラボ株式会社の奥一穂氏が開発されています。 mixi engineer blog mixi では一時に集中するDBへのwriteをいったんQ4Mで受けて時間軸分散して流す、という仕組みを採用している様…