Pavel Pereslegin created IGNITE-6630:
----------------------------------------

             Summary: Incorrect time units of average transaction 
commit/rollback duration cache metrics.
                 Key: IGNITE-6630
                 URL: https://issues.apache.org/jira/browse/IGNITE-6630
             Project: Ignite
          Issue Type: Bug
            Reporter: Pavel Pereslegin
            Assignee: Pavel Pereslegin
            Priority: Minor


AverageTxCommitTime and AverageTxRollbackTime metrics in CacheMetrics 
calculated in milliseconds instead of microseconds as pointed in javadoc.

Simple junit repro:
{code:java}
public class CacheMetricsTxAvgTimeTest extends GridCommonAbstractTest {
    /** */
    private <K, V> CacheConfiguration<K, V> cacheConfiguration(String name) {
        CacheConfiguration<K, V> cacheConfiguration = new 
CacheConfiguration<>(name);
        cacheConfiguration.setCacheMode(CacheMode.PARTITIONED);
        cacheConfiguration.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
        cacheConfiguration.setStatisticsEnabled(true);
        return cacheConfiguration;
    }

    /** */
    public void testTxCommitDuration() throws Exception {
        try ( Ignite node = startGrid(0)) {
            IgniteCache<Object, Object> cache = 
node.createCache(cacheConfiguration(DEFAULT_CACHE_NAME));

            try (Transaction tx = node.transactions().txStart()) {
                cache.put(1, 1);

                // Await 1 second.
                U.sleep(1_000);

                tx.commit();
            }

            // Documentation says that this metric is in microseconds.
            float commitTime = cache.metrics().getAverageTxCommitTime();

            // But this assertion will fail because it in milliseconds and 
returns only ~1000.
            assert commitTime >= 1_000_000;
        }
    }
}
{code}




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to