Near Cache GetAll Call Taking Longer for Front Cache Misses
(Doc ID 2170966.1)
Last updated on DECEMBER 06, 2021
Applies to:Oracle Coherence - Version 3.7.1 to 22.214.171.124.5 [Release AS10g to 12c]
Information in this document applies to any platform.
On : 126.96.36.199.3 version, Oracle Coherence
The performance of getAll() when using a near cache is very poor when there are front cache misses. When the front cache is empty, calling getAll() takes slightly longer than 1ms per key. So, for a getAll() query of 50k keys it takes 50+ seconds. Querying the back cache directly results in substantially better performance, eg 1 or 2 seconds total for large objects.
In the log lines below queried for the same set of 31,935 keys using getAll() on the back cache directly via ((NearCache)cache).getBackCache().getAll(). Then executed cache.getAll() with an empty front cache and then again with a populated front cache.
08:22:11.715 getAll() from back cache takes:3,745.114ms size:31,935
08:22:47.505 getAll() from front cache takes:35,788.594ms size:31,935
08:22:47.515 getAll() from front cache takes:9.801ms size:31,935
As you can see, retrieving the entries directly from the storage nodes took 3.7 seconds but it took 35.7s when using the near cache. Then, as expected, with a populated front cache, subsequent queries took less than 10ms. The front cache miss penalty should not be 9x that of loading directly from the back cache.
To view full details, sign in with your My Oracle Support account.
Don't have a My Oracle Support account? Click to get started!
In this Document