jackrabbit-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Jackrabbit Wiki] Trivial Update of "PersistenceManagerFAQ" by GaryTeichrow
Date Fri, 21 Nov 2008 18:32:18 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Jackrabbit Wiki" for change notification.

The following page has been changed by GaryTeichrow:
http://wiki.apache.org/jackrabbit/PersistenceManagerFAQ

The comment on the change is:
Reading documents to learn more and making some small editorial changes.

------------------------------------------------------------------------------
  === What's the PM responsibility? ===
  The PM interface was never intended as being a general SPI that you could implement in order
to integrate external datasources with proprietary formats (e.g. a customers database). the
reason why we abstracted the PM interface was to leave room for future performance optimizations
that  would not affect the rest of the implementation (e.g. by storing the raw data in a b-tree
based database instead of individual file).
  
- === How smart should be a PM? ===
+ === How smart should a PM be? ===
- A PM should not be 'intelligent', it should not 'interpret' the data. The only thing it
should care about is to efficiently, consistently and reliably store and read the data encapsulated
in the passed nodeState & propertyState objects. Though it might be feasible to write
a custom persistence manager to represent existing legacy data in a level-1 (read-only) repository,
I don't think the same is possible for a level-2 repository and i certainly would not recommend
it.
+ A PM should not be 'intelligent'. It should not 'interpret' the data. The only thing a PM
should care about is to efficiently, consistently and reliably store and read the data encapsulated
in the passed nodeState & propertyState objects. Though it might be feasible to write
a custom persistence manager to represent existing legacy data in a level-1 (read-only) repository,
I don't think the same is possible for a level-2 repository.  At a minimum, it certainly would
not be recommended.
  
  === File System (FS) ===
  
- Jackrabbit uses the org.apache.jackrabbit.core.fs.FileSystem interface as a file system
abstraction. Although this interface does not cover all direct file system use of Jackrabbit,
it still allows for flexibility in selecting where and how to store various parts of the repository.
For example it might make sense to store the search indexes on a fast disk and the archived
node versions on a slower disk. It is possible to configure separate file systems for the
global repository state, workspaces, search indexes, and versioning.
+ Jackrabbit uses the org.apache.jackrabbit.core.fs.FileSystem interface as a file system
abstraction. Although this interface does not cover all direct file system use of Jackrabbit,
it still allows for flexibility in selecting where and how to store various parts of the repository.
For example, because it is possible with Jackrabbit to configure separate file systems for
different system components (e.g., global repository state, workspaces, search indexes, versioning,
etc), it might make sense to store the search indexes on a fast disk and the archived node
versions on a slower disk. 
  
  === What combination of FS and PM is the best choice? ===
- It depends on your priorities. If you want to store your data in a RDBMS, use BundleDbPersistenceManager
 + either Local``File``System or Db``File``System. If you want to store your data in an accessible
format (just in case ;), you might want to try XML``Persistence``Manager + Local``File``System.
+ It depends on your priorities. If you want to store your data in a RDBMS, use BundleDbPersistenceManager
in conjunction with either a Local``File``System or Db``File``System. If you want to store
your data in an more readily accessible format (just in case ;), you might want to try an
XML``Persistence``Manager paired with a Local``File``System.
  
  === Which are the current options? What are the status, pros and cons of each implementation?
===
  

Mime
View raw message