You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
どうも、補欠になったので勝手に後夜祭やります。いつになく真面目なテーマでやります。 Q4Mをworkerを使ってDBへのinsertを非同期に行うようなアーキテクチャのお話です。 例えば日記サイトを考えます。 通常は下図にように投稿時にはWEBアプリがDBに記事データを書き込み、表示時にはDBからデータを読み込んで表示します。 ええ、図にするまでもありませんでしたね!あ、ここでMySQLってのはレプリしております。書くのがめんどかった。 もちろん通常はこの構造でなんの問題もないし、これ以外ないと言ってもいいかもしれません。 ここであえてのQ4Mを登場させて、書き込みの際に一旦Q4Mにenqueueし、それをworkerがdequeueしてからDBに突っ込むようにしてみます。 こんな感じ。 ええ、めんどいですね。 ところがこのモデルはバックエンドのMySQLに何かほげほげと作業をしなければな
xaicronとネタが被ったようだけど気にしない>< livedoorでOperations EngineerやってるkazeburoだYo。最近livedoorからオープンソース化された3億ファイルを管理してるオブジェクトストレージ「STF」でも使ってるMessage QueueのQ4Mのインストール方法を紹介するよ! カジュアルだからインストールだけ! 知ってる人も多いと思うけどQ4Mはkazuhoさんによって開発されたMySQLのストレージエンジンとして実装されてるMessage Queue。livedoorではもちろん、mixiやDeNAをはじめソーシャルゲーム各社でも使われている。 Message Queueの説明や使い方はDIS_COMMENTでテーブルスペースフルの猫神様が書いてるので参考になるね! Perl Hackers Hub 第10回 ジョブキューで後回し大作戦―Th
こんにちは! MySQL Casual Advent Calendar の三日目がやって参りました。皆様いかがお過ごしでしょうか。僕は例年通り、クリスマスをどうやってなくすかに頭を悩ませています。 さて、自分は MySQL のこととかあんまりよくわからないんですが、仕事で Q4M とか HandlerSocket とか使う機会があります。 更に言うと、手元の Mac の環境でそれらを手軽に使いたいので、簡単にセットアップが出来ると嬉しいですね。 というわけで、一発で MySQL と Q4M と HandlerSocket のセットアップが出来ちゃうシェルスクリプトを書きました!大変カジュアルですね!! 前提条件として、Xcode と homebrew は入っているものとします。 $ zsh -c "$(curl -fsSL https://raw.github.com/gist/14264
conditions precedent: use daemontools & multilogPoints: make DB connection after forkdo not trap SIGTERM while calling queue_wait(), so that the process can be shut down while waiting for the response from q4mremove $time and add $PID for log. Because I'm using multilog. It prints the tai64n automatically(and, tai64n is better).package OreOre::Worker::Base; use strict; use warnings; use parent qw/
Q4M (Queue for MySQL) is a message queue licensed under GPL that works as a pluggable storage engine of MySQL, designed to be robust, fast, flexible. It is already in production quality, and is used by several web services (see Users of Q4M). To start using Q4M, download either a binary or source distribution from the install page, and follow the installation instructions. A small tutorial is also
Q4Mはサイボウズラボの奥 一穂氏が開発した、MySQLのストレージエンジンとして使用できるメッセージキューです。詳細については以下のウノウラボさんの記事が参考になりますので、こちらをご覧ください。 Q4Mを触ってみる インストールの前提条件として、MySQLのソースがconfigureまで通っていることが前提になります。でないと以下のようなエラーが出ます。こちらは、MySQL + Q4M インストール ハマリどころまとめさんのエントリーで--with-mysqlの指定が間違っている時と同じエラーが出ます。これはapacheとphpの関係と同じで先にapacheのconfigureを通しておくという奴ですね。*1ここでは過去エントリーCentOS 5.2 MySQL 5.1.44にSpiderを入れるでMySQL 5.1.44のソースがconfigureまで通っている前提です。 error
作業メモです。 src.rpm の取得 # cd /usr/src/redhat/SRPMS # wget http://dev.mysql.com/get/Downloads/MySQL-5.1/MySQL-community-5.1.42-0.rhel5.src.rpm/from/http://ftp.iij.ad.jp/pub/db/mysql/ rpmbuild --recompile ビルド時のソースツリーが必要なので recompile # rpmbuild --recompile --define 'community 1' /usr/src/redhat/SRPMS/MySQL-community-5.1.42-0.rhel5.src.rpm checkinstall で rpm 化 make 時に MYSQL_LIBDIR をつけてるのは libmysqlclient.s
死んだプロセス (あるいは kill したプロセス) の core イメージから自動的にスタックトレースを収集するデーモンを書いたので、これをセットアップしてサーバにインストールしとくといいかもです (kaztools/bt_cores at master · kazuho/kaztools · GitHub)。Linux のみ対応*1。使い方は bt_cores --help とするか、perl Makefile.PL && make install して man bt_cores。 具体的にいうと、Q4M とか Incline とか kazuho product が落ちたり固まったりしたらスタックトレース送ってくれると、私がうれしいです (古いバージョンのスタックトレースだととても悲しいです)。コアファイルは内部データがいろいろ入ってるから外部の人には見せられないけど、スタックトレース
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く