I'm trying to understand how memory allocation for dbcache is being handled by OpenDJ in tandem with java vm. There is a couple of things I couldn't get completely, though. As mentioned here, it's possible to allocate some predefined amount of RAM for the sole purpose of caching the database. It also mentioned here and there, that OpenDJ may attempt to store as much db files in memory as possible. 2 questions so far:
Any help is appreciated.
Funny you're referring to my blog... 1/ Yes, dbcache is part of the JVM heap. OpenDJ let the JVM decides where to allocate the dbcache. Normally it is allocated in the New Generation space, but if the amount to be allocated exceeds the size of the New Gen, it's allocated in the Old Generation space.
2/ OpenDJ has an option to specify whether the server should pre-load the cache and the maximum amount of time it should spend trying to pre-load it. Please check the OpenDJ administration guide, and it's Tuning For Performance section for details.
There is no way to prevent the server from starting if the whole DB is not cached. I cannot think of a valid use case for this specific behaviour.