8

In our project we use jackrabbit with spring and tomcat to manage pdf files.

Currently MySql database is being used to store blob files (in terms of jackrabbit it's called BundleDbPersistenceManager).

As soon as the number of generated files grow we thought of using file system instead of database to boost performance and to eliminate replication overhead. In the spec jackrabbit team recommend using BundleFsPersistenceManager instead but with comments like this

Not meant to be used in production environments (except for read-only uses)

Does anyone have any experience using BundleFsPersistenceManager and can reference any resources on painless migration from blobs in mysql database to files in the filesystem?

Thank you very much in advance

basilboli
  • 614
  • 1
  • 6
  • 21

1 Answers1

2

Persistence in Jackrabbit is a bit complicated, it makes sense to read the configuration overview documentation first.

In Jackrabbit, binaries are stored in the data store by default, and not in the persistence manager. Even if you use the BundleDbPersistenceManager, large binary files are stored in the data store. You can combine the (default) FileDataStore with the BundleDbPersistenceManager.

I would recommended to not use the BundleFsPersistenceManager, because data can get corrupt quite easily if the program gets killed while writing.

Thomas Mueller
  • 48,905
  • 14
  • 116
  • 132
  • thanks. I am right saying that in case of FileDataStore jackrabbit stores blobs in the file system and file properties info in the database? – basilboli Apr 27 '12 at 20:23
  • Yes, if you are using FileDataStore then the blobs are stored in the file system. If you use the BundleDbPersistenceManager then JCR nodes and properties are stored in the database. – Thomas Mueller Apr 27 '12 at 21:21
  • What is we use a BundleDbPersistenceManager with FileDataStore ? – Ducaz035 Apr 21 '16 at 12:15