Skip to content
This repository has been archived by the owner on Sep 16, 2021. It is now read-only.

PHPCR Backend

dbu edited this page May 6, 2011 · 1 revision

For the design of the backend it seems to make sense to look at 3 different user types:

1) simple needs, little content, few writes, few reads (or easily cacheable)
2) mid level needs, maybe a few hundred pages, moderate level of writes, quite a few reads with potentially a fair number of different permission roles
3) heavy users

It seems certainly 1) needs a pure PHP solution that works on any shared host. This means it needs to work with the file system or a MySQL database, but cannot require any custom extensions or server daemons. For 2) should still work on a high end shared hosting package. But requiring Java might be tricky, same for non standard server daemons. That being said, one can probably expect MongoDB/CouchDB to become more available in shared host packages. For 3) we can expect willingness to rely on being willing to install custom extensions and server daemons.

As a result:
1) will use file system or MySQL with Zend_Lucene for search
2) will probably use CouchDB with Zend_Lucene or Lucene/Solr for search
3) will use CouchDB/MongoDB or a Java JCR with Lucene/Solr for search

Some relevant links about Jackrabbit:
http://wiki.apache.org/jackrabbit/DataStore
http://wiki.apache.org/jackrabbit/PersistenceManagerFAQ

Some thoughts:
– Since RDBMS and even NoSQL are not really ideal for tree traversal, the solution might be to keep the tree structure in some cache (APC, memcache, XML, YAML, PHP Array).

Clone this wiki locally