[pmwiki-users] PageLists of database contents

Patrick R. Michaud pmichaud at pobox.com
Wed Oct 4 17:37:30 CDT 2006


On Wed, Oct 04, 2006 at 03:00:59PM -0700, Martin Fick wrote:
> --- "Patrick R. Michaud" <pmichaud at pobox.com> wrote:
> > The key to making this more efficient will be to
> > reduce the overall number of "pages" (records) that
> > MakePageList has to perform  its searches on.   I'm 
> > thinking the best approach to this will
> > be for us to provide either (1) options to
> > ListPages() and ls() or (2) alternate methods 
> > entirely so that we can tell a 
> > PageStore/DataStore object "we want the names of
> > 'pages' that might match these criteria" as opposed 
> > to "give me a list of all pages".  Then we can 
> > optimize things quite a bit.
> 
> You probably know my thougths on this: yes, yes, yes. 
> More "Searching" should be done at the pagestore level
> so that optimizations can be implemented easily (and
> past on to DBs potentially.  With this, it seems like
> the page-index should move into the pagestore instead
> of the pagelist script.  

...except then we have page *indexes*, not a single
pageindex.  And we have to figure out where to keep the
pageindex for a directory that the webserver cannot
write to (e.g., wikilib.d/).

This isn't to imply it's not a good idea or can't
be done, just that doing this would require a fair
amount of rearchitecture to the existing PageStore.

> > I'm also needing to re-think a few of PmWiki's
> > internals here, especially the $PCache array.  
> 
> Yes, yes, attributes should also be done at the
> pagestore level... this migh break a lot of recipes?

Only those recipes that are directly accessing
$PCache, which I've tried to discourage over time.
Everything else ought to be plug compatible (or made to
be that way).

> > I wasn't planning to revamp
> > $PCache for 2.2... but with the pagelist and page 
> > variable changes it's becoming far more relevant,
> 
> Break it now, pmwiki will be awesome!  Even though it
> might break recipes, many of them could be eliminated
> or greatly enhanced/simplified with these features
> anyway,

I don't think I'll do this for 2.2.  PageStores need to be 
substantially redesigned anyway to handle non-ASCII
characters in filenames, and case-insensitive pagnames
on case-sensitive filesystems, and spaces in pagenames,
and a bunch of other things that need addressing.
So, if changing PCache and search are going to require
substantial modifications to PageStore, it'll probably
have to wait for 2.3, because unless I suddenly have a 
bunch of breakthrough ideas on some of these other 
PageStore-related items it would hold up the 2.2 
releases for far too long.

Besides, a deprecation cycle for $PCache would give
recipes an opportunity to migrate away from using
it before making a switch.

Pm




More information about the pmwiki-users mailing list