[ 
https://issues.apache.org/jira/browse/GEODE-1246?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15300913#comment-15300913
 ] 

Darrel Schneider commented on GEODE-1246:
-----------------------------------------

The unit test also introduced GEODE-1456

> 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
>            Assignee: Darrel Schneider
>             Fix For: 1.0.0-incubating.M3
>
>
> 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)

Reply via email to