mnesia

RESTfull な I/F を持つストレージを作った

yaws 調査の為、試しに RESTfull な I/F を持つストレージを作ってみたので晒してみる。 インストール % svn co http://labs.miu.vc/svn/cooldaemon/erl/ssd/trunk/ ssd % cd ssd % makemake を実行する前に、Makefile 内の yaws のインストール先を編集する…

Mnesia で作った memcached もどきにレプリケーション機能とディスク保存機能を追加した

まだ中途半端だが、晒してみる。 突っ込み大歓迎。 source http://labs.miu.vc/svn/cooldaemon/erl/yamd/trunk/ インストール % cd /path/to % svn co http://labs.miu.vc/svn/cooldaemon/erl/yamd/trunk/ yamd % cd yamd % makeFreeBSD なら make のかわり…

Mnesia を起動した後、schema を local node の ram に配置するなら mnesia:create_schema/1 は不要だった

今まで(id:cooldaemon:20070919:1190169198 とか)、下記の source のように Mnesia を起動した後に mnesia:create_schema/1 を実行していたのですが… start() -> mnesia:start(), mnesia:create_schema([node()]), mnesia:create_table(store, [{attributes,…

Mnesia で永続化したテーブルに関数を入れ、全ノード停止後に再起動し、別ノードで実行したら動いた(まー、動いて当たり前ですけど)

id:cooldaemon:20071011:1192094209 で Mnesia 上のテーブルをディスクに保存しましたが、そのテーブルに関数を入れて遊んでみました。前回作ったノード a を再起動し、io:fwrite/2 を保存する。 % erlang -sname a (a@imac)1> mnesia_test:restart(). ok (a…

Mnesia に保存されたデータを永続化する(後からノードを追加しても大丈夫)

id:cooldaemon:20070919 で書いた Mnesia のレプリケーションの記事で、id:Hamano 氏からコメントで 便利ですよねー、mnesia のレプリケーション。 でも最近悩んでいるのが ram_copies ram_copies と disc_copies ram_copies は2つ目を後から起動しても上手…

mnesia:select と qlc:q の lock はテーブル丸ごと

ロック状態がどうなっているか気になったので、いろいろコード書いて試したところ、テーブル単位でロックが掛かっていた…。 レコード毎にロックできないもんだろうか? ちなみに、トランザクション内で qlc:q を使って QueryHandle を作ると read lock にな…

Mnesia のレプリケーションを試す

Mnesia のレプリケーションをいろいろ試してみたのでメモ。まずは、下記を mnesia_test.erl というファイル名で保存して、コンパイルする。 -module(mnesia_test). -include_lib("stdlib/include/qlc.hrl"). -record(store, {key, value}). -export([start/0…

Erlang(Mnesia) で memcached (互換なし)を作ってみました

DSAS開発者の部屋:Erlang で memcached を作ってみました。 触発されました。で、家族サービスを一日サボって作りました。嫁と子供達に感謝!http://labs.miu.vc/svn/cooldaemon/erl/yamd/trunk/ memcached との違い プロトコル(w; validation が抜けまく…