[pmwiki-users] PmWiki scalebility questions (newbie)

Patrick R. Michaud pmichaud at pobox.com
Thu Oct 19 07:52:14 CDT 2006

On Thu, Oct 19, 2006 at 02:16:00PM +0200, Tom Lederer wrote:
> i kinda re-open this thread. Having a relatively large wiki (wiki.d:  
> 33 MB in 5000 pages, Version 2.1.11 (Doh!)) running and facing some  
> performance issues lately, we think we discovered a problem with the  
> flock file. So i would like to know if we are correct and how to  
> improve.
> From what we learned the situation seems to be like this:
> Every page access process sets a read lock (with flock). Now if a  
> page should be changed, the writing process needs to wait for all old  
> reading processes to end, and does not allow any new reading  
> processes to set a lock.

While PmWiki once worked this way a very long time ago (April 2005,
prior to 2.0.0), it doesn't any longer.  Simply reading or 
accessing a page doesn't require a lock -- locks are set only 
when writing a page.

So, if a page should be changed, the writing process only needs to
wait for any other writing processes to end, and none of the
read processes are blocked.

(Of course, a recipe might be misusing the lock file and setting
a read lock on every page access, but the PmWiki core doesn't 
do this.)

> Is it possible that this results in page request times of several  
> seconds (1-30)?

Not likely.  There must be something else that is causing the delay.

> Can performance be improved by introducing per-group lock files?

Per-group lock files don't really help here -- whenever a page
is saved, we're actually writing pages across several groups
(e.g. Site.AllRecentChanges, .pageindex, .notifylist), and this
will only increase once we add some of the commenting and
blogging features.  


More information about the pmwiki-users mailing list