2009年06月03日
ブログ移転のおしらせ
本ブログは、2009年6月以降、http://developer.cybozu.co.jp/kazuho/ へ移転いたします。今後ともよろしくお願いいたします。
※Web フィードはリダイレクトされるようになっています
投稿者 kazuho : 2009年06月03日 16:13 | トラックバック (0)
2009年04月30日
MySQL Conference & Expo 2009 に参加してきました
先週一週間、MySQL Conference & Expo 2009 に参加してきました。ほとんどのキーノートのビデオや一部のセッションの資料は公開されているようなので、それ以外、全体からうけたイメージなどについて、つらつらと。
プレゼン資料一覧
サービスをスケールアウトする話は、意外と聞かなかったように思います。今回が初参加だったので間違っているのかもしれませんが、単純な「スケールアウトできるよね」という話ではなく、むしろ、アプリケーションデベロッパに負担をかけずにスケールアウト (もしくはスケールアップ) するデータベースを、どのように作るか、というところが盛り上がっていたように思います。一方で、クラウドコンピューティングに関しては、サービスをスケールさせる道具というよりは、(リソースの確保が)柔軟で安定したインフラストラクチャとして期待されている側面が大きいように感じました。今後は、両者をどう組み合わせていくか、というのが課題になってくるのかもしれません。
カンファレンスにおいて、私は Q4M の発表 (Q4M (and Pathtraq) at MySQL Conference & Expo 2009) を行いました。Q4M の設計方針から使い方にはじまり、事例までをカバーした (かつてない) 丁寧な資料になっていますので、Q4M を使ってみようかな、という方はごらんください。また、既にお使いいただいている皆さんには、あらためて御礼申し上げさせていただきたいと思います。事例は引き続き絶賛募集中です。
また、併催されていた Percona Performance Conference (プレゼン資料一覧) でパストラックのバックエンドに関する発表 (Running a Realtime Stats Service on MySQL) を行い、こちらも好評を得ることができ、ほっとしています。
なかなか密度が濃くてつかれましたが、充実した一週間でした。お世話になったサンマイクロシステムズの方々をはじめ皆さん、ありがとうございました。
投稿者 kazuho : 2009年04月30日 17:28 | トラックバック (0)
2009年03月16日
FreeBSD の ptrace ではサンドボックスを作れないという話
t/rperl.tを使うと、特定のシステムコールを禁止しつつ任意の perl script を実行できます。
404 Blog Not Found:perl - FreeBSD::i386::Ptrace released!
自分も今回、弾さんのモジュールを試すまで知らなかったのですが、FreeBSD では ptrace をそのような目的で使うことはできないと思います。というのは、私の理解が正しければ、linux とは異なり、FreeBSD の ptrace でシステムコールの実行を検出し PT_KILL を発行しても、そのプロセスが停止するのはシステムコールの終了直後になるからです。
具体例を挙げると、たとえば unlink(2) の実行を検出しトレース対象のプロセスを殺そうとしたところで、そのプロセスが停止するのは unlink システムコールの実行後となるため、ファイルの削除を抑制することはできません。
さらに、vfork(2) は、仕様として、生成された子プロセスが execve(2) を呼び出すか、あるいは終了するまで、システムコールの実行が完了しません (つまりそれまでトレース対象のプロセス (実際はプロセスグループなんじゃないかな) を停止できない)。その結果、ptrace によるシステムコールの監視下にあっても、
vfork(); // 以下は生成された子プロセスでのみ実行される 複数個の任意のシステムコールを含むコード ... _exit(0); // 子プロセスの終了直後に親プロセスが PT_KILL されるのような形で、任意のプログラムが実行可能となってしまいます。
以上は、手元の FreeBSD 6.3R で検証した結果ですが、最新リリースでも当該部分の動作は変わっていないのではないかと思います。
参考: Deny system call using ptrace | KernelTrap, geordi - C++ eval bot投稿者 kazuho : 2009年03月16日 14:50 | トラックバック (0)
2009年02月09日
Q4M 0.8.4 をリリースしました
MySQL 5.1 用のメッセージキュー「Q4M」のバージョン 0.8.4 をリリースしました。MySQL 5.1.31 用のバイナリもアップロードしてあるので、興味のある方はご覧ください。
今回の変更は、唯一、linux (i386) 上において、テーブルサイズが 2GB を超えようとする際にクラッシュする問題の修正です。他の環境においては、変更はありません。
投稿者 kazuho : 2009年02月09日 20:43 | コメント (3) | トラックバック (0)
2009年02月06日
SSD (フラッシュメモリ) のベンチマークと選定基準
サーバ側での使用を目的とした SSD のベンチマークや選定基準については、これまでもいろいろ書いてきましたが、では、どのような点に着目して SSD を選定すべきかについて、少し触れておきたいと思います。というわけで、まずはベンチマークの紹介から。データベースのストレージとして使うことを念頭においた、16KB のランダムアクセステストです。
続きを読む "SSD (フラッシュメモリ) のベンチマークと選定基準"
投稿者 kazuho : 2009年02月06日 15:07 | コメント (2) | トラックバック (0)