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:
- Is dbcache actually a part of the heap? If answer is "yes", then where exactly is memory for it being allocated? I.e., is it the Old Generation space, Permanent Generation space, or even Young Generation space? Or may be it is neither of them, and it cannot be seen in usual heap memory zone's (meaning it isn't placed in the heap, but in its own memory space which size is simply derived from the size of the heap using the settings this article mentions)?
- Can I somehow ensure (i.e. is there specific settings for that in the OpenDJ) that my complete db is cached during service's start up, and make sure that otherwise (i.e. if allocated RAM's size isn't set correctly, or there is not enough RAM) the service simply won't start?
Any help is appreciated.