You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by Apache Wiki <wi...@apache.org> on 2007/09/20 09:23:25 UTC

[Jackrabbit Wiki] Update of "PersistenceManagerFAQ" by ThomasMueller

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 ThomasMueller:
http://wiki.apache.org/jackrabbit/PersistenceManagerFAQ

------------------------------------------------------------------------------
  === What's a PM? ===
  The PM is an *internal* Jackrabbit component that handle the persistent storage of content nodes and properties. Each workspace of a Jackrabbit content repository uses a separate persistence manager to store the content in that workspace. Also the Jackrabbit version handler uses a separate persistence manager. The PM sits at the very bottom layer in jackrabbits system architecture. 
  Reliability, integrity and performance of the PM are *crucial* to the overall stability & performance of the repository. If e.g. the data that a PM is based upon is allowed to change through external means the integrity of the repository would be at risk (think of referential integrity / node references e.g.).
+ 
+ === Which Persistence Manager is the fastest? ===
+ The bundle persistence managers are usually the fastest:
+  * org.apache.jackrabbit.core.persistence.bundle.Bundle``Fs``Persistence``Manager (file system, no database)
+  * org.apache.jackrabbit.core.persistence.bundle.Derby``Persistence``Manager (Apache Derby; Java)
+  * org.apache.jackrabbit.core.persistence.bundle.H2``Persistence``Manager (H2 Database Engine; Java)
+  * org.apache.jackrabbit.core.persistence.bundle.My``Sql``Persistence``Manager (MySQL)
+  * org.apache.jackrabbit.core.persistence.bundle.Postgre``SQLPersistence``Manager (PostgreSQL)
+  * org.apache.jackrabbit.core.persistence.bundle.MSSql``Persistence``Manager (MS SQL Server)
+  * org.apache.jackrabbit.core.persistence.bundle.Oracle``Persistence``Manager (Oracle 10 or newer)
+  * org.apache.jackrabbit.core.persistence.bundle.Oracle9``Persistence``Manager (Oracle 9)
+  * org.apache.jackrabbit.core.persistence.bundle.Bundle``Db``Persistence``Manager (generic database)
+ Storing the data in the file system does not require a database. When using a database, please note that embedded Java databases do not have network overhead.
  
  === 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).