Gauche > Archives > 2012/05/08

2012/05/08 03:34:18 UTC(び)
#
Redis相手に、dbm-db-exists? と dbm-db-remove がどう振る舞うべきかわからない...
#
前者は接続に行ってつなげられたら#tとか、後者はflushdbするとかでいいんだろうか。
2012/05/08 03:41:19 UTCshiro
#
exists?については、dbm-openしにいってエラーを出す前にチェックしときたいって用途が主だと思うんで、実際につないでみるだけでいいかなと。というかデフォルトメソッドとしてdbm-openしてすぐcloseするってのを実装しとかなかったのはなぜだろう。
#
removeの方は、dbm実装によらない汎用的なツールを書いてて、もういらなくなったやつを消したい、って時に使うので、リソースが解放されるアクションなら何でもいいと思います。
2012/05/08 03:45:37 UTC(び)
#
なるほど
2012/05/08 04:13:55 UTC(び)
#
最低限のdbm APIだけ実装してみました。dbm-foldはもうちょっと効率のいい実装ができそうだし、dbm-db-copyやdbm-db-moveも実装した方がよさそうですが、とりあえずということで。
2012/05/08 04:19:57 UTC(び)
#
この上にもうちょっとだけリッチなpersistent engineを被せて、その上にkahua.persistenceを載せるというのが現在の構想(夢想)
2012/05/08 04:24:37 UTC(び)
#
というか、kahua.persistenceと、kahua-keyservの両方を載せられる気がする。
2012/05/08 04:35:37 UTCleque
#
./DIST gen; mkdir build; cd build; ../configure みたいにして out-of-source-tree build すると tls のテストに失敗します。
#
http://chaton.practical-scheme.net/gauche/a/2012/05/06#entry-4fa63cd1-7b4dc の方法でエラーを stderr に吐いてみると、
#
Testing rfc.tls ...                                              awk: can't open file ../ssl/openssl.pid
 source line number 1
awk: can't open file ../ssl/openssl.pid
 source line number 1
sh: ../../kick_openssl: No such file or directory
socket: Connection refused
socket: Connection refused
socket: Connection refused
awk: can't open file ../ssl/openssl.pid
 source line number 1
kill: 39626: No such process
failed.
discrepancies found.  Errors are:
test ssltest: expects 0 => got 256
#
と言われていました。
#
./DIST gen 後そのまま ./configure すれば通ります。環境は MacOSX 10.6.8
2012/05/08 06:32:37 UTCshiro
#
あー、out-of-tree buildだとkick_opensslが見つけられないのか。
#
kahua-keyservはmemcachedでもいいんですよね。expireも面倒みてくれるし。
2012/05/08 06:46:17 UTCshiro
#
out-of-tree buildの問題、直ったんじゃないかな (23208ca)
2012/05/08 08:49:37 UTC(び)
#
はい。memcachedプロトコルドライバも昔作ったのがどこかにあります。が、redisだと、ディスクにセーブしたりリストアできるので、redis-serverを再起動してもセッションが維持できるかなぁ、と。
#
それで何が嬉しいかは微妙な感じですが。
2012/05/08 08:53:30 UTCshiro
#
keyservの情報はephemeralだから、というのが頭にあったんだけどその必要はないのか。私は http://fixedpoint.jp/gauche-memcache/ を使わせてもらってます (kahuaじゃないけど)
2012/05/08 09:00:03 UTC(び)
#
ほほぉ
2012/05/08 09:04:40 UTC(び)
#
kahua.persistenceのトランザクション制御とか考えてた時、複数プロセスのkahua-serverから読み書きする場合は、kahua.persistenceの機能をサーバに括りだすことになるのかなぁ、と考えて、だったらkahua-keyservと統合しちゃえば、とか考えたのでした。keyserv単体ならmemcachedでいいんだけど、そこまで盛り込むなら別の何かだなぁ、と考えてたんですが、redisちょうどいいかな、と。redisにもexpireあるのです。
#
相変わらず言うだけ番長なので、いつになったら実現するやら、ですが。
#
あと、redisにはトランザクションがある。
2012/05/08 09:06:56 UTCshiro
#
persistenceのストレージも兼ねるならそうですね。今なら、外部のもろもろに依存すれば色々楽が出来そうな気がする。kahuaはかなり自分で抱え込んでるから。
2012/05/08 09:08:11 UTC(び)
#
そうなんですよね。all in oneですぐ遊べるのはいいことですが、本気で使う時にがんばれないのはちょっとつらいので、少しずつプロトコルを整理して、外にも出せるような仕組みにしたいと思っています。
2012/05/08 11:50:08 UTC(び)
#
自分のも公開しとくかと思ったけど見当たらない。自宅サーバ潰した時に一緒に消しちゃったかな。