Hatena::Grouperlang

weekend erlang programmer

ここの更新は止まってしまいました。面倒なので全部kuenishiの日記に書くことにしました。
 | 

{2009, 5, 24}

クソコード第一弾、順調に進捗中 23:13 はてなブックマーク - クソコード第一弾、順調に進捗中 - weekend erlang programmer クソコード第一弾、順調に進捗中 - weekend erlang programmer のブックマークコメント

Yet Another Tokyo Cabinet - Erlang binding. Almost complies with interface.idl defined in Tokyo Cabinet, while tcerl keeps compatibility with dets/ets.

kuenishi / yatce / overview - bitbucket.org

erlangからTCを叩くためのプログラムです。すでにtcerlという立派なやつがあるのですが、インターフェースがdets/etsっぽかったのだけど、detsもetsもmnesiaも全然違うインターフェースだから、統一する必要ないじゃないかと思いました。あとはアレで本当にlinked-in driverがボトルネックになっているところが解決されているのかが気になってました。正しいアプローチは、まずそのtcerlを試してみるところから始まるべきなのですが、今の私はプライベートでしがらみから解放されているので、やりたいことをやるのです。

T = tcadb:new('/tmp/test.tch', [{libdir, "/usr/lib/erlang/lib"}]),
{ok,opened}  =T:open(),
{ok,inserted}=T:put("key","value"),
{ok,"value"} =T:get("key"),
{ok, closed} = T:close().

UbuntuMacOSXで動作したのを確認しています。

それにしてもerlangのlinked-in driverは作りにくい、というか、ertsの下回りの複雑なところが見えてきて、わりかし作るのが面倒ください、じゃない、面倒くさくて面白いです。erlang VMは中でethreadというのを持ち回っているみたいで、そいつとI/Oの関係をきちんと見切ってerlangI/Oがイマイチ*1なところを解決して行けたらなぁとか夢を見ています。寝言は寝て言えって感じですねはい。

なんつーか、TCの本来の性能をちっとも出し切れてない感じですが何か。というか、単純にR13BのCPU数に対するスケーラビリティを確認しただけの結果に:<>

f:id:kuenishi:20090525002805p:image

→実験条件とか気になる人は、フルサイズのグラフ

*1関数型だからとかオブジェクトがimmutableだからとかの理由があってもI/Oがイマイチなのが個人的に許せない

VoluntasVoluntas2009/05/24 23:25うひょー wktk です。
自分も色々学んで貢献できるようになりたいです:-)

kuenishikuenishi2009/05/25 00:35wktkされると緊張します><

ita-wasaita-wasa2009/05/26 18:38wktk++ m(_ _)m

kuenishikuenishi2009/05/27 21:34ますます緊張してきました><

 |