[Moin-devel] Page Storage
Thomas Waldmann
tw-public at gmx.de
Tue Feb 22 10:18:35 EST 2005
Hi Kent,
> If the page storage structure will be changed, I would
> like to suggest the following:
>
> Keep all pages under one directory, the supporting
> index and revisions in another.
If you are suggesting to go back to how 1.2 and previous versions did:
it is rather unlikely we do that because we had good reasons to go away
from that "structure".
What is a "supporting index"?
> The reason is:
>
> 1. It easy the backup process. Exporting a wiki can be
> a simpler task.
That all depends on your needs. Some people might want to backup past
revisions, too.
And if you use MoinMoin functions to enumerate pages and get their
content, it doesn't really matter how the pages are stored. That way is
far easier, especially if it comes to non-ASCII stuff.
> 2. Search engine friend, It will be easier to
> configure a local search engine to index and search a
> single directory instead of the current structure.
Sure. But this is non-standard usage. And a internet like search engine
will use http, not file system access.
> 3. It will be easier to migrate one wiki to other. Or
> even merge two wikis into one. It is easier to restore
> and re-build after some failure.
I see no difference there. The new stuff might be even easier because if
you want to copy over some page, you just copy it's bundle dir and don't
need to collect stuff from multiple directories or split off / remerge
stuff from editlog as in 1.2.
> 4. You will have a fallback plan to serve just static
> wikitexts when needed. Just config your webserver to
> serve the directory contain the pages.
That isn't really an option:
* that completely overrides ACLs
* it will serve unrendered pages
* problems getting attachments, following links ...
> I dont known about efficiency of this scheme. But I
> think the operation of export, emerge, backup, search
> operation will be much simplifier.
Some stuff would be simpler, right. But other stuff would be more
complicated or impossible. One example is RenamePage. In 1.2 and before,
this was quite incomplete, it dropped all attachments, old revisions and
page info.
Since 1.3 "page bundle" stuff, rename is easier and almost complete (all
gets moved, only old RC entries not).
> Also, a normal user will be quite easily find his way to the wiki
text. An
> advance user will find his way to the support structure anyway.
The wiki is not intended for "normal users" to be used via the file
system. And the "unnormal" people will have no problem finding the right
file anyway. :)
> By providing a stable API to basic storage application
> will be a very good way.
Yes, stable APIs are nice. We try to have them after we found some
storage structure that sucks less. :))
> I think forcing everyone to use xmlrpc is not good.
It is a stable API. :)
> 1. It load the system.
> 2. xmlrpc is not always supported.
Python supports it via xmlrpclib. And the load should be a big problem
usually, file systems access is always lots slower than processing some
http request and parsing xml.
> For example, in case of a havily load system
> (slashdoted?), one might decide that making the site
> as static site temporarly. But when you want to do
> that, xmlrpc just not as stable as you wish.
If you really get slashdotted, nothing might help you.
You could of course try a static html export (see moin_dump), but a wiki
where you can't edit or search isn't that great ...
> BTW, I would like to learn more about the wiki xmlrpc
> v2. Would you please give me some pointer or examples.
MoinMoin/scripts/xmlrpc/*
For the API either search the internet or look into MoinMoin/wikirpc.py.
If you don't like xmlrpc, you could also call some functions of wikiutil
/ Page / PageEditor class. But you will have to change those for 1.4 (or
2.0, how ever we call it when it is ready).
Thomas
More information about the Moin-devel
mailing list