![]() prj/coherence-core-components/target/coherence-core-components-14.1.1-0-13-SNAPSHOT-sources.jar My latest try was with the "mvn -am -pl coherence clean install -DskipTests " that reports the build as successful but leaves dist empty (only original readme file is there)?Ī quick search for "coherence*.jar" results in: I have never tried building Coherence before and when following the instructions it eventually reported build complete (including tests - some where skipped) but nothing shows up under the /dist directory?! maybe use a double linked list instead of an array list that have a O(1) complexity for deleting an entry?! Woulds appreciate info about IF that line that remove the entries from the list as they are processed is really needed (I would naively assume the whole prune operation is executed inside a "synchronized" block preventing any other operations on the local cache and in that case I do not immediately see the need to remove the elements instead of just letting them be and afterwards empty the whole array at once if it is retained or just discard it if it is temporary) and if so if you have some other suggestions of improvements to the code we can add in a "patch" for our own use. ![]() I have noticed that the above mentioned line is present also in the latest Coherence CE release so if this is the cause of the problem we are seeing it may be present also with the latest.Ĭan report that the work around to increase the low-units to be very close to high-units (this way ensuring that a small number of entries are evicted each time a "prune" is performed) seem to have improved the situation quite a lot (prune still seem more CPU consuming than expected though and now we instead have very frequent prunes which is not ideal either). We are also considering, as a further work around, try using Caffeine (2.X version ) as a local cache with this Coherence CE release (using the old lower level mechanism that has been available to provide your owen cache implementation) but not sure how well it would work - are experiences of this would be welcome! Our first work-around that we are testing now is to increase the low-units to be about 99% of the high-units to ensure the size of the array list will be small (then the ~O(n ** 2) effect of the repeated array.remove operation is minimized) - lets see if it works. ![]() Naively when looking at the code it seems to remove keys from an ArrayList of elements to be evicted as it is iterated - it is not clear to us WHY there is a need to do this and in general removing elements from ArrayLists is expensive (at least in the past required copying the array) so we are suspecting this could be at least one reason we see slow eviction (our caches are big and so could the list of keys to evict be). Not sure if this is a reference to an issue in Coherence CE or an internal Oracle issue to the enterprise edition but either way we have not been able to find any info about it and are very curious to what the issue was and why the line was introduced. We are profiling and seeing that the line that seem to take a lot of time is " iterEvict.remove()" in OldCache and is marked with an issue "COH-23644" that we assume introduced the line. ![]() I realize this is not a supported release so we are looking into solving the problem ourselves but have a specific question that could help us in this. I am working in a project where we due to limitations of using JDK 8 and other components used are "stuck" with Coherence CE 14 and is having a challenge where evicting entries in the local cache (part of a near cache) takes a LONG time. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |