[dokuwiki] Re: Selecting a Wiki engine...

  • From: Chris Smith <chris@xxxxxxxxxxxxx>
  • To: dokuwiki@xxxxxxxxxxxxx
  • Date: Thu, 05 Oct 2006 13:37:22 +0100

Oliver Betz wrote:

Chris Smith wrote:

For example about data storage: While PmWiki stores page data, metadata and old revisions in the same file, DokuWiki uses separate files. I would like to learn more about the reasons behind and the (dis-) advantages.
Hi Oliver,

Let me try and give some explanation on this point.

In summary:
Advantages:
- raw wiki pages are uncomplicated by extra data and are usable on their own

but you have to check also the metadata and history files. There is a risk to get "out of sync" when modifying the files from outside DokuWiki.
That would be a bug. If you come across such circumstance, please report it.
- speed

A PmWiki page data file contains the text of the current revision "ready to use", so there shouldn't be any (noticeable) difference. The revision diffs are at the end of the file and only used when viewing a diff or storing new page content.
what do you mean by "ready to use". Dokuwiki stores a cached version of the rendered page. It'll use this version if the caching logic determines it is still valid.

Disadvantages
- larger disk space requirement on older, inefficient file systems (e.g. FAT, FAT32)

even if the block/cluster size is small, and even when using compression, storing old revisions as a whole, takes much more space if the changes are small.

Yes. Storing revisions as a diff, especially when revisions are small is likely to require far less space. Disk space isn't really at a premium these days, at least not in the amounts required for textual data.


Page metadata is stored separately to make it accessible without having to access the page data itself. Metadata files are small (generally under 1k, serialised php data). This makes accessing metadata extremely fast. This is important as it is referenced often especially by wikis which "use first headings for pagenames", where every link requires a

I don't know about this, could you please explain?
e.g. metadata contains a list of the internal links on the page. The caching logic makes use of this information to assist it in determining whether or not the cache is valid. The page title is included in the metadata. When "use first headings is on", any reference to to the page heading requires the page title. The title can be retrieved from the metadata quickly.
lookup for the curent page title. It also speeds up some of the slower DokuWiki operations, e.g. backlinks.

O.k., I didn't know that the metadata file contains a list of all links.
For details on what is contained within standard (plugins can add things) DokuWiki metadata, see the metadata page at splitbrain.

Perhaps its not reasonable to compare the individual aspects of strategies that underly pmWiki. and DokuWiki. The design decisions that lead to those aspects could well be a natural consequence of the underlying strategy. It may be better to compare the wiki engines in terms of your requirements and more general concerns (e.g. markup, maintenance, speed, ease of use, server requirements, etc):

E.g., DokuWiki stores metadata the way it does because (1) the raw wiki page is the user entered text only, (2) storing it in the instruction file is inefficient, (3) regenerating it whenever its is required is inefficient (4) DokuWiki is committed to using the file system rather than a separate database engine for storing its data. Under these circumstances the metadata pretty well has to be stored in a separate file.

Cheers,

Chris
--
DokuWiki mailing list - more info at
http://wiki.splitbrain.org/wiki:mailinglist

Other related posts: