DokuWiki を読む - Overview

DokuWiki とは

DokuWiki は「データベースを前提としない Wiki ソフトウェア」だそうです。
認証バックエンドに DB を利用することもできるようですが、コンテンツは PlainText として保存されます。

特徴

  • Responsive Design に対応した標準テーマ
  • プラグインやスキン (Template) の管理画面
  • 名前空間やページに対して ACL を設定できる
  • MediaWiki 風の Syntax
    • Syntax は任意に拡張可能
  • 多言語対応、履歴管理、セクション編集、etc...

欠点

特徴の一つとして「システム要件が低い」が挙げられているのですが、レンタルサーバーと相性が悪いです。

例としては

  • cURL Extension を使わず fsockopen を利用している
  • WordPress は fsockopen/cURL のどちらも利用することができ、cURL を優先的に利用する
    • ウェブクロウも XREAWordPress しか考慮していない

などがあります。

厳密に言えば DokuWiki が悪いわけではない(レンタルサーバー会社が悪い)のですが、レンタルサーバーに手軽にインストールするにはあまり向きません。

目的

Pukiwiki の問題点として以下のようなものがあります。

  • ページ数が増加すると検索がタイムアウトするなどスケーラビリティに問題がある
    • 数千はともかく、万単位のページ数に耐えられない
  • 履歴が多いとメモリ上限に引っかかることがある(らしい)

ファイルベースの Wiki においてスケーラビリティは普遍的な問題ですね。

一方で DokuWiki の特徴として次のものが挙げられています。

  • インデックスを使用した高速な全文検索
  • より早い描画のためにページをキャッシュ

DokuWiki がスケーラビリティ問題をどう解決しているのか興味があるので、DokuWiki のコードリーディングをします。

目次