You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geode.apache.org by Darrel Schneider <ds...@pivotal.io> on 2016/05/19 00:14:50 UTC
Review Request 47568: change async event pool to use all its threads
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/47568/
-----------------------------------------------------------
Review request for geode, Eric Shu, Scott Jewell, Ken Howe, and Sai Boorlagadda.
Bugs: GEODE-1246
https://issues.apache.org/jira/browse/GEODE-1246
Repository: geode
Description
-------
Changed async event pool to use all its threads.
A new unit test was added that failed with the old pool and passes with the new.
The system property gemfire.Cache.EVENT_THREAD_LIMIT can be used to configure
the number of threads used the async cache listener invocation.
It defaults to 16.
A bunch of changes were made so that the unit test could create a real GemFireCacheImpl with a mocked DistributedSystem.
I enhanced the DistributedSystem created by "Fakes".
The actual fix for the threading issue is limited to GemFireCacheImpl:
this.eventThreadPool = new PooledExecutorWithDMStats(q, EVENT_THREAD_LIMIT, this.cachePerfStats.getEventPoolHelper(), tf, 1000);
and the changes to PooledExecutorWithDMStats (which are not actually needed but will prevent someone from calling a particular constructor with a queue that is not a SynchronousQueue.
Diffs
-----
geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/PooledExecutorWithDMStats.java 0a9f9eca2b4c343fb69bd9bbce2ff76de5ea2faf
geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/locks/DLockService.java 610944e71a1b97cc11a534412c68a6dc98e909f3
geode-core/src/main/java/com/gemstone/gemfire/internal/cache/GemFireCacheImpl.java 96b7bbcf706ef52e02f01a424035e945050d2dee
geode-core/src/main/java/com/gemstone/gemfire/internal/cache/LocalRegion.java b5ff7ee8f56b0ce64f78db072d98104ac654b392
geode-core/src/main/java/com/gemstone/gemfire/internal/jndi/JNDIInvoker.java b3aecc4ef7d9b5d06ac528f2a70a469a1b32b328
geode-core/src/test/java/com/gemstone/gemfire/internal/cache/GemFireCacheImplTest.java PRE-CREATION
geode-core/src/test/java/com/gemstone/gemfire/test/fake/Fakes.java 2a1fd8e343681f5cd41fa42145d2ae2fb73fd2c3
Diff: https://reviews.apache.org/r/47568/diff/
Testing
-------
precheckin
Thanks,
Darrel Schneider
Re: Review Request 47568: change async event pool to use all its
threads
Posted by Sai Boorlagadda <sb...@pivotal.io>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/47568/#review133987
-----------------------------------------------------------
Ship it!
Ship It!
- Sai Boorlagadda
On May 19, 2016, 12:14 a.m., Darrel Schneider wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/47568/
> -----------------------------------------------------------
>
> (Updated May 19, 2016, 12:14 a.m.)
>
>
> Review request for geode, Eric Shu, Scott Jewell, Ken Howe, and Sai Boorlagadda.
>
>
> Bugs: GEODE-1246
> https://issues.apache.org/jira/browse/GEODE-1246
>
>
> Repository: geode
>
>
> Description
> -------
>
> Changed async event pool to use all its threads.
> A new unit test was added that failed with the old pool and passes with the new.
>
>
> The system property gemfire.Cache.EVENT_THREAD_LIMIT can be used to configure
> the number of threads used the async cache listener invocation.
> It defaults to 16.
>
> A bunch of changes were made so that the unit test could create a real GemFireCacheImpl with a mocked DistributedSystem.
> I enhanced the DistributedSystem created by "Fakes".
>
> The actual fix for the threading issue is limited to GemFireCacheImpl:
> this.eventThreadPool = new PooledExecutorWithDMStats(q, EVENT_THREAD_LIMIT, this.cachePerfStats.getEventPoolHelper(), tf, 1000);
> and the changes to PooledExecutorWithDMStats (which are not actually needed but will prevent someone from calling a particular constructor with a queue that is not a SynchronousQueue.
>
>
> Diffs
> -----
>
> geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/PooledExecutorWithDMStats.java 0a9f9eca2b4c343fb69bd9bbce2ff76de5ea2faf
> geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/locks/DLockService.java 610944e71a1b97cc11a534412c68a6dc98e909f3
> geode-core/src/main/java/com/gemstone/gemfire/internal/cache/GemFireCacheImpl.java 96b7bbcf706ef52e02f01a424035e945050d2dee
> geode-core/src/main/java/com/gemstone/gemfire/internal/cache/LocalRegion.java b5ff7ee8f56b0ce64f78db072d98104ac654b392
> geode-core/src/main/java/com/gemstone/gemfire/internal/jndi/JNDIInvoker.java b3aecc4ef7d9b5d06ac528f2a70a469a1b32b328
> geode-core/src/test/java/com/gemstone/gemfire/internal/cache/GemFireCacheImplTest.java PRE-CREATION
> geode-core/src/test/java/com/gemstone/gemfire/test/fake/Fakes.java 2a1fd8e343681f5cd41fa42145d2ae2fb73fd2c3
>
> Diff: https://reviews.apache.org/r/47568/diff/
>
>
> Testing
> -------
>
> precheckin
>
>
> Thanks,
>
> Darrel Schneider
>
>