- 17.9K All Categories
- 3.4K Industry Applications
- 3.3K Intelligent Advisor
- 65 Insurance
- 536.7K On-Premises Infrastructure
- 138.4K Analytics Software
- 38.6K Application Development Software
- 5.9K Cloud Platform
- 109.5K Database Software
- 17.6K Enterprise Manager
- 8.8K Hardware
- 71.2K Infrastructure Software
- 105.3K Integration
- 41.6K Security Software
About the EventDispatcher thread
We are bulk loading GBs of data for our initial load into a Coherence cluster (24 sotrage nodes/ 32 GB per JVM) and have event interceptors registered on caches (staging caches, cache service A) to populate another set of caches (final caches, cache service via entry processors.
[ standalone bulk data loader ] ---> [ [staging caches] -----> event interceptors ----> entry processors -----> [final caches] ]
What we noticed is that staging caches get populated quickly (std massive putAll), but the caches depending on event interceptors/entry processors get filled much slower, basically there is a x minutes lag before they are fully populated.
We are using asynchronous event intercepors (inserted, updated) and asynchronous entry processors.
But the problem seems to lie with the EventDispatcher, as we see EventBacklog metric (com.tangosol.coherence.component.manageable.modelAdapter.ServiceMBean) rising fast but decreasing slowly.
- is the EventDispatcher single threaded, one thread per cache service/per node?
- is there a way to have it multithreaded?
- should we shut down event interceptors and find an alternate way to pupulate final caches in our bulk initial load phase?