2009-03-01から1ヶ月間の記事一覧

スケールアウトする分散ブロックデバイスのアイディア

DRBDみたいだけどノードを足すとスケールアウトする感じのもの。ローカルのHDDよりリモートのメモリの方が速いという前提に基づく。RDBMSやファイルサーバーのバックエンドとして。 RDBMSをkey-valueストレージでは置き換えられない状況は少なからず存在する…

INTEROP Tokyo 2009 クラウドコンピューティングコンペティション

http://www.interop.jp/pavilion/ccc.html 2009年4月30日参加応募締切実行委員の一人の首藤さんのブログより: こんな感じのネタ、どうでしょう。 memcached (日記12/14分,12/7分) 等 key-value store をチューン / 改造して、無改造品より高い性能を出す。 …

Chukanにユニットテストフレームワークを統合してみる

perl界でよく使われているらしいproveで実行できるユニットテストフレームワークを書いてChukanに統合してみた。理由は?と聞かれれば Chukan::Test が作りたかった!Ruby的にはRSpecを使っておけばいい気がする。 見た目的にはperlのTest::BaseのRuby移植版…

分散システムのテストの自動化

複数のプロセスが相互に連携して動くシステムのテストを自動化したい。ありがちに書くとプロセスを起動すると終了するまで待ってしまうので、同時に複数のプロセスを起動できなくて困る。バックグラウンドで起動させておいて後で終了させたとき、 ps aux | g…

新しい構造化Wiki記法パーサーの設計案

プラグインの記述 プラグイン=要素の記述。要素はRubyのクラス。このクラスが持つクラス変数(か定数): 開始マーク 終了マーク(省略可) XMLを生成するプログラム(メソッド) 包含可能な要素またはグループ(無ければ省略) 所属するグループ(無ければ…

initramfsにdebianを入れちゃえばいいじゃない

#!/bin/sh debootstrap --arch=amd64 etch rootfs cp -a /lib/modules/`uname -r` ./rootfs/lib/modules/ ln -s sbin/init ./rootfs/init cd ./rootfs && find | cpio --quiet -c -o | gzip -9 -c > rootrd.img kvm -m 1024 -kernel /boot/vmlinuz -initrd .…

initramfsの作り方概略

新しいディレクトリを作る /devを作る /dev/consoleなどは必須 何が必須で必須でないのかを判定するのは面倒なので、必要っぽいデバイスノードは全部作っておく 作りすぎで困ることはあまりない /binを作る スタティックリンクしてコンパイルしたbusyboxをイ…

QEMU/KVMを使ったネットワークブートシステムのテスト環境

ネットワークブートシステムを構築するために Linuxカーネルや initramfs を作成しているとき、本物のハードウェアを使って実験していると再起動が面倒すぎてイヤになる。VMを使うのが次善策だが、BIOSの初期化には時間がかかる。 そこで qemu のlinuxカーネ…

迅速なサーバー開発をサポートするRPCフレームワーク

ふと閃いたネタ。 「JavaでSeasar2を使ってアジャイルなWeb開発」などと言われるように、開発の効率化はライブラリやフレームワークに依るところが大きい。Rubyは言語自体も生産性が高いと思うが、Web開発を効率化しているのはRailsに依るところが大きいに違…