geode-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Barry Oglesby (JIRA)" <j...@apache.org>
Subject [jira] [Created] (GEODE-1246) GemFireCacheImpl's eventThreadPool only uses one thread for asynchronously invoking CacheListener callbacks
Date Mon, 18 Apr 2016 18:51:25 GMT
Barry Oglesby created GEODE-1246:
------------------------------------

             Summary: GemFireCacheImpl's eventThreadPool only uses one thread for asynchronously
invoking CacheListener callbacks
                 Key: GEODE-1246
                 URL: https://issues.apache.org/jira/browse/GEODE-1246
             Project: Geode
          Issue Type: Bug
          Components: core, regions
            Reporter: Barry Oglesby


After enabling asynchronous {{CacheListener}} callbacks, the {{CacheListener}} callbacks are
processed serially by the same {{Message Event Thread}} thread even though the {{eventThreadPool}}
is configured with 16 threads.

Configure asynchronous {{CacheListener}} callbacks like:
{noformat}
--J=-Dgemfire.Cache.ASYNC_EVENT_LISTENERS=true
{noformat}
The {{eventThreadPool}} is currently created like:
{noformat}
ArrayBlockingQueue q = new ArrayBlockingQueue(EVENT_QUEUE_LIMIT);
this.eventThreadPool = new PooledExecutorWithDMStats(q, 16, this.cachePerfStats.getEventPoolHelper(),
tf, 1000, new CallerRunsPolicy());
{noformat}
At Darrel's suggestion, I replaced the {{eventThreadPool's ArrayBlockingQueue}} with a {{SynchronousQueue}},
and that is working as expected (all 16 threads are used):
{noformat}
this.eventThreadPool = new PooledExecutorWithDMStats(new SynchronousQueue(), 16, this.cachePerfStats.getEventPoolHelper(),
tf, 1000, new CallerRunsPolicy());
{noformat}




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message