[
https://issues.apache.org/jira/browse/GEODE-6828?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dick Cavender closed GEODE-6828.
--------------------------------
> DistributedCacheOperation._distribute does synchronization to decide to log
> trace instead of debug
> --------------------------------------------------------------------------------------------------
>
> Key: GEODE-6828
> URL: https://issues.apache.org/jira/browse/GEODE-6828
> Project: Geode
> Issue Type: Improvement
> Components: core
> Reporter: Darrel Schneider
> Assignee: Mario Ivanac
> Priority: Major
> Labels: performance
> Fix For: 1.10.0
>
> Time Spent: 50m
> Remaining Estimate: 0h
>
> Running the PartitionedPutBenchmark with no redundancy, yourkit reported the
> 32 server threads doing the put blocked for 77% of the time in this code:
> {code:java}
> if (mgr.getNormalDistributionManagerIds().size() > 1) {
> // suppress this msg if we are the only member.
> if (logger.isTraceEnabled()) {
> logger.trace("<No Recipients> {}", this);
> }
> } else {
> // suppress this msg if we are the only member.
> if (logger.isDebugEnabled()) {
> logger.debug("<No Recipients> {}", this);
> }
> }
> {code}
> The getNormalDistributionManagerIds method does a sync and this is what they
> were blocked on. I'm not sure how useful this debug/trace message is (bucket
> regions with no redundancy will not distribute and that is expected but this
> will log a message each time).
> We also done need the actual set of ids; we just want to know if we have more
> than 1.
> The easiest fix is to test if trace or debug is enabled first. If it is then
> logging is going to hurt performance anyway, but if it is not then nothing
> else needs to be checked.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)