今日は Shibuya.lisp Hackathon #1
今日は Shibuya.lisp Hackathon #1 に行ってきた。
結局 Rucksack の改造をした。
まずは IO に mmap を使う。 30% くらい速くなったように思う。 mmap すごいな。
次はトランザクションの並列化。といっても、せめてリード処理だけは並列に行いたい、というだけ。でも、これは失敗。やったことが、単に書き込みが走ってなければ読み込みは複数スレッド走れるように、ロック処理を改造。で、それだけでは足りなかった。オブジェクトのデシリアライズが、1バイトのマーカーを読み、そのマーカーによって内容を読む、という流れになっている。マーカー読んでから内容を読み終るまでにスレッドの切り替えがあると、他のスレッドによってファイルポジションが変更されて、デシリアライズが破綻する。それとは関係なく serialize.lisp のコードは好きだな。
ちゃんとデシリアライズをロックすればいいのかもしれないが、そこまで時間がなかった。もうちょっと時間が長い方がいいな。
http://github.com/quek/rucksack
楽しかったな。またやりたい。
そして @machida さんと @komagata さんのエイリアンパーカーが楽しみでしょうがない。
0 件のコメント:
コメントを投稿