表紙 | 新規 | 一覧 | RSS | 検索 | 閲覧履歴 | 作成履歴 | 更新履歴

2006/01/07 - ここは悩むところでも、迷うところでもありません。進むところです。

差分表示


&color(ffff00,ここは悩むところでも、迷うところでもありません。進むところです。)

* 敗北
2万ページを超えるような大規模なWikiサイトをやろうと思ったら、[[YukiWikiDB]]系じゃ無理がありますね。

で、比較の為にデータベースを&link(Berkeley DB,www.sleepycat.co)で構築してゴニョゴニョしてみました。&br()
比べ物にならないくらい高速ですね。ビバ、バイナリー (^^;; &br()
とりあえず12万ページぐらいあるサイトを作ってみましたが、なかなかいい感じです。

現状でもAnyDBM_FileでBerkeley DBを使えるのですけど、明示的にBerkeley DBを指定できるように改造してみました。いや、けっしてAnyDBM_File使えばBDB扱える事しらなかった訳じゃないですよ。ちょっと忘れていただけで(笑)。 それと、ググってみると思っていたのと違うDBになってたって話がチラホラとあったので、明示的に指定できる方がよかろうとの判断です。&br()
でも、use BerkeleyDBじゃなくて、use DB_Fileなんですよね。今の使い方だったらどっちでも変わんないと思いますが、use BerkeleyDBにしといた方が後々チューニング要素もあるし、ええんかな?今更BDBのVer1使う事なんてないやろし。

でもね、[[PonyWiki]]のデフォルトDBはこの間いぢった[[YukiWikiDB]]のままです。理由としては、万が一DBが壊れた時の影響範囲ですね。Berkeley DBだと大きな一つのファイルなので、そのファイルに問題があると全てのデータを失う事になります。db_recoveryとかするにしても、サーバにログインできない環境だと厄介です。[[YukiWikiDB]]系だと一つのページを失うだけで済みサービス停止までには至りません。この差は大きいと思います。私は[[PonyWiki]]をあまり環境依存させたくないですから。

とは言うものの、拡張性を考えると妥協も必要なので負けた気分です。自動リンクと検索部分だけBerkeley DB使うように書き直そうかなぁ。今の検索機能って[[YukiWikiDB]]を使う事を前提にしているので、大規模になるとメモリ使いすぎるんですよ。自動リンクは、BDBでも遅い(^^;;ので根本的にやり方を変えないと、これ以上のスケールは厳しいですね。BDBでも12万ページだと書き込みに数秒かかってしまいます。

私は書き込みで1秒以上待たされるなんてイヤなのでなんとかしたいですね。リアルタイムな自動リンクやめれば、話は早いんですけどねぇ。cron使えるwebサーバが前提なんて、これ以上ない環境依存ですからちょっとイヤかなぁ。

とりあえず100万ページまで増えても問題ないWikiエンジンを目指しましょうかねぇ。今やりたい事を考えると、それぐらいの規模に耐えられないと話になりませんから。

手軽に設置できて、100ページでも快適、100万ページでも快適なエンジン。それが私の理想かな。

----
[[2006年01月の日記]]一覧へ
-----
[[#rtrackback]]

先頭へ