Kimura Fuyuki
fuyuk****@nigre*****
2003年 10月 18日 (土) 17:16:01 JST
At Fri, 03 Oct 2003 20:39:13 -1000 (HST), Shiro Kawai <shiro****@lava*****> wrote: > > バックエンドをMySQLにして、速くなるのかなあ。 > 現在のwilikiのようにCGIでやる限り、一回毎にコネクションを > 張るわけですし、検索は全文検索をやっているし…。 バックエンドのスピードがどの程度WiLiKiのレスポンスに影響するか? の実 験(のような何か)です。 こんなものを見つけたので、 http://qdbm.sourceforge.net/ とりあえずQDBMのGDBM互換モードを利用するだけのパッチを作ってみました。 次の手順で、GDBMのかわりにQDBMを使うようになります。 0. QDBMをインストールする 1. パッチを当てる 2. Gaucheを再インストール(DIST genから) 3. 古いwilikidata.dbmをリネームする 3が必要なのは、QDBMの互換モードの「互換」はインターフェースだけの話で、 データベースのフォーマットには互換性がないからです。 で、やってみたんですが、結果は……まだよくわからんです。しばらく試して みて、調子がいいようだったら、もうちょっとまじめにQDBMへの対応を考えた いと思います。 ベンチマークはいい数字を出してるんですけどね(データサイズが小さいのが 気になりますが)。 http://qdbm.sourceforge.net/benchmark.pdf あと、WiLiKiの"Edit History"って「履歴を編集する」の意味に取られそうな 気がします。(歴史修正主義かも ;) -- 木村 冬樹 Index: dbm.ac =================================================================== RCS file: /cvsroot/gauche/Gauche/ext/dbm/dbm.ac,v retrieving revision 1.2 diff -u -r1.2 dbm.ac --- dbm.ac 20 Jul 2003 10:07:10 -0000 1.2 +++ dbm.ac 18 Oct 2003 08:09:51 -0000 @@ -12,7 +12,7 @@ dnl On some systems, legacy DBM and NDBM is emulated by more powerful dnl packages like BSD DB or GDBM. We need to be careful to pick the dnl consistent header/library pair. -AC_CHECK_HEADERS(gdbm.h, [ +AC_CHECK_HEADERS(gdbm.h hovel.h, [ DBM_ARCHFILES=gdbm.$SHLIB_SO_SUFFIX DBM_SCMFILES=gdbm.scm ]) @@ -28,6 +28,7 @@ ]) AC_CHECK_LIB(gdbm, gdbm_open, [ GDBMLIB="-lgdbm" ]) +AC_CHECK_LIB(qdbm, gdbm_open, [ GDBMLIB="-lqdbm" ]) LIBSAVE="$LIBS" if test "$NDBM_HEADER" = "gdbm/ndbm.h"; then NDBMLIB="-lgdbm" # use emulation by gdbm Index: dbmconf.h.in =================================================================== RCS file: /cvsroot/gauche/Gauche/ext/dbm/dbmconf.h.in,v retrieving revision 1.1 diff -u -r1.1 dbmconf.h.in --- dbmconf.h.in 20 Jul 2003 10:07:10 -0000 1.1 +++ dbmconf.h.in 18 Oct 2003 08:09:51 -0000 @@ -15,3 +15,5 @@ /* Define if you have the <gdbm/ndbm.h> header file. */ #undef HAVE_GDBM_NDBM_H +/* Define if you have the <hovel.h> header file. */ +#undef HAVE_HOVEL_H Index: gdbm.stub =================================================================== RCS file: /cvsroot/gauche/Gauche/ext/dbm/gdbm.stub,v retrieving revision 1.17 diff -u -r1.17 gdbm.stub --- gdbm.stub 5 Jul 2003 03:29:10 -0000 1.17 +++ gdbm.stub 18 Oct 2003 08:09:51 -0000 @@ -34,9 +34,18 @@ ;;; " + #include <gauche/extend.h> + #include \"dbmconf.h\" + + #if HAVE_HOVEL_H + #include <hovel.h> + #include <stdlib.h> + #include <sys/types.h> + #include <sys/stat.h> + #elif HAVE_GDBM_H #include <gdbm.h> #include <stdlib.h> - #include <gauche/extend.h> + #endif SCM_CLASS_DECL(Scm_GdbmClass); static void gdbm_print(ScmObj, ScmPort *, ScmWriteContext*);