[pmwiki-users] mySQL backend and sort of an OT

Petko Yotov 5ko at 5ko.fr
Fri Jan 13 18:26:31 CST 2012


On Friday 13 January 2012 04:37:02, Carlos AB wrote :
> My question is that if sqlite plugin would take care of this amount of
> pages and users? I can't quantify users for now but I plan to have
> plenty of those :) .

Unlikely. An SQLite database is a single file on your server. It may not work 
well with many editors saving pages at the same millisecond.

Moreover, the most "CPU- and memory- expensive" part of pagelists and 
searches[1] in the current implementation are the need to sort (order) the 
list (especially if you use order=$:PTV) and to convert the template snippets 
into HTML.

The SQLite recipe is a PageStore class, it mostly just stores the pages and 
their history into one file in wiki.d, instead of the many PmWiki files on the 
filesystem.

[1] A search in PmWiki is actually a pagelist, it works the same way.

> * A mysql backend plugin would solve the problems concerning amount of
> content, user base and speed? 

It may solve the problem of "many editors saving pages at the same 
millisecond" but to solve the other problems, special optimizations need to be 
made, one for listing and ordering huge numbers of pages -- use the database 
engine for sorting instead of PmWiki --, and another one for indexing and 
searching into these pages. BTW, to search among 2M pages, a dedicated program 
or server may be needed.

There is also the DataQuery recipe. I haven't reviewed it, but it may be 
usable or easier to adapt:

  http://www.pmwiki.org/wiki/Cookbook/DataQuery

> ** if it would be too hard for a noob such as I, to modify sqlite
> recipe to be a mysql one?

Yes, this PageStore class is too SQLite-specific, it will be easier to have a 
clean start based on the original PageStore class in pmwiki.php.

> Even so preferring PmWiki as a wiki solution for my project, I dare to
> ask if it is the best choice for it, _with_ the yet non-existant mysql
> backend, more for the pretense performance boost provided by it.Please
> don't be ofended by the question.

PmWiki is a tool for collaborative creation and maintenance of websites. It is 
more focused on the goal (websites) than on the process (community, editor 
accountability). For the latter, I could suggest MediaWiki, or if you need 
stuff like PageTextVariables, a Semantic wiki: 

  https://en.wikipedia.org/wiki/Semantic_wiki

Petko



More information about the pmwiki-users mailing list