Darrel Schneider created GEODE-6828: ---------------------------------------
Summary: 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 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 (v7.6.3#76005)