Hi all, We've been doing some detailed performance investigation on a JackRabbit app with approx 75,000 entries in the bundles table and 12,000 binaries in the binval table.
The behaviour we were seeing was that the database was continually being hammered to retrieve BLOB values and the synchronisation restrictions, which mean that node & BLOB reads require exclusive access, were causing the application to stop responding and block around a single thread. Jackrabbit was writing the BLOBs to the /tmp directory but we were also seeing some of these BLOB values auto-deleting and being re-fetched. Enabling the logging for BundleCache helped diagnose the issue. Basically we believe with the small 8MB default BundleCache size nodes JackRabbit also immediately filled this cache (with about 2,000 nodes) on startup. Thereafter it was thrashing with nodes dropping in and out of the cache. The lifetime of the local BLOB cache on the disk is tied to the lifetime of the node object that references it (via the garbage collector). As a result when the node is evicted from the cache the associated BLOB was also deleted. If the node was then required, it & the BLOB were re-read. The solution that made a massive difference was to set "bundleCacheSize" much larger within the persistence manager. This massively reduced the IO to the database. We're considering whether to deploy a fault tolerant file system and use external BLOBs. Comments / Suggestions from this investigation: * it would be good to explicitly list the "bundleCacheSize" as a configuration setting in the default persistence manager configuration showing the default of 8MB. This may already be the case. * the synchronisation around the bundle persistence manager becomes a real issue as the database is hit more and more. In our case blocked reads were the issue. * it would be great to be able to leverage more sophisticated caching facilities for the BLOB cache and BundleCache using something like ehcache. Regards, Shaun -----Original Message----- From: Alexander Klimetschek [mailto:[EMAIL PROTECTED] Sent: 13 June 2008 19:57 To: [email protected] Subject: Re: Controlling the cache size to reduce BLOB property eviction On Fri, Jun 13, 2008 at 3:37 PM, sbarriba <[EMAIL PROTECTED]> wrote: > To summarise my question - is there a way to increase the number of > InternalValue (and I guess nodes) that are cached by JackRabbit? This link might help: http://wiki.apache.org/jackrabbit/CacheManager Regards, Alex -- Alexander Klimetschek [EMAIL PROTECTED]
