Entries from 2009-08-01 to 1 month

memcachedのクライアントライブラリに対する不満

Cache::Memcached, libmemcache, Cache::Memcached::Fast, libmemcached, Cache::Memcached::libmemcached あたりを見たけど、primitive なインターフェイスが公開されてなくて、mycached のシャードへアクセスするみたいなケースだと使えないなーという感じ…

メモ: Error.pm でサブクラス化した例外を投げる

例外を投げるときは $obj->throw。ベースクラスは Error::Simple。 try { MyException->new("hello world")->throw; } catch MyException with { my $e = shift; print "$e\n"; }; package MyException; use base qw(Error::Simple); みたく書く、色々教えて…

ユーザーフレンドリな assert() の使い方

assert(fd < picoev.max_fd); みたく書いてると、assertion が失敗した場合に表示されるエラーは、 Assertion failed: (fd < picoev.max_fd), function parse_hoge, file ..., line 15.のような形になる。でもこれだと、何をチェックしているのか、ライブラ…

MySQL に memcached プロトコルサポートを追加してみる

ソース: http://coderepos.org/share/browser/platform/mysql/mycached/例によって UDF (笑) として書いてみてるところ *1。大体2倍速。対応してるのは gets? コマンドのみ、かつ、INT 系のプライマリキーのルックアップのみ。こんな感じで動いてる。 $ ech…

Test::mysqld で Q4M のテストを書く方法

yappo perl, test, memcached Test::memcached もほすい Test::Q4M もほすぃ Test::Pg もほすい はてなブックマーク - yappoのブックマーク / 2009年8月10日 Test::Pg は書いた。memcached は個人的に需要がない。Q4M のテストなら、こんな感じで書けます。 …

PostgreSQL のデーモンが起動中に、別のインスタンスを作成することってできないのかな

Test::mysqld みたいなのを作る必要があって、試してみたんだけど、postgres が起動中に initdb を実行すると、 $ /opt/local/lib/postgresql-devel/bin/postgres --version postgres (PostgreSQL) 8.4devel $ /opt/local/lib/postgresql-devel/bin/initdb -…

シングルマスタ/マルチスレーブ構成に興味がない理由

システム全体で必要な書き込みパフォーマンスが、RDBMSノード1基の IOPS の W% の場合、シングルマスタ+スレーブn台構成のシステム全体のパフォーマンスは、 書き込みパフォーマンス: W 読み込みパフォーマンス: R=(1-w)*(n+1) になる。この n=R/(1-w)-1 っ…

xtrabackup を src.rpm からインストールするメモ

前提: xtrabackup は mysql にパッチあてて make するのでソースからのインストールは大変 でもバイナリパッケージは x86_64 しかない そこで、それ以外の RedHat 系環境では src.rpm とかからインストールする 手順: ccache をインストール xtrabackup-0.…

海外のクラウド環境と国内のVPSを比較検討してみた

Amazon EC2 や Rackspace Cloud Servers を色々調べていて分かったこと。国内の比較対象は、仕事や個人で使っている WebARENA SuitePRO と CPI VPS スケーラブルプラン。まず、価格について。国内の VPS は、転送量に関わらず価格が一定なのに対して、EC2 や…

OpenVZ系の環境でプロセスの使用メモリ量を節約するライブラリを書いた

以前、 スワップがなく、かつ、overcommit が効かないので、いろいろ動かない。apache 2 系の worker mpm とか標準設定だと起動時に 500MB 確保するので当然起動すらしない。もう LD_PRELOAD で malloc を MAP_SHARED な mmap(2) にマップする共有ライブラリ…