GG-9141 - Fixed and enabled metrics tests.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/7964632f Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/7964632f Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/7964632f Branch: refs/heads/ignite-41 Commit: 7964632f295e55809259195469286853083dd761 Parents: 8963d29 Author: Alexey Goncharuk <agoncha...@gridgain.com> Authored: Sun Dec 14 11:29:24 2014 -0800 Committer: Alexey Goncharuk <agoncha...@gridgain.com> Committed: Sun Dec 14 11:29:24 2014 -0800 ---------------------------------------------------------------------- .../org/apache/ignite/IgniteTransactions.java | 10 ++ .../gridgain/grid/cache/GridCacheTxMetrics.java | 45 -------- .../grid/cache/GridCacheTxMetricsAdapter.java | 108 ------------------- .../gridgain/grid/cache/IgniteTxMetrics.java | 45 ++++++++ .../grid/cache/IgniteTxMetricsAdapter.java | 107 ++++++++++++++++++ .../cache/GridCacheSharedContext.java | 13 ++- .../processors/cache/GridCacheTxManager.java | 18 +++- .../near/GridNearTxPrepareFuture.java | 38 +++++-- .../transactions/IgniteTransactionsImpl.java | 10 ++ .../cache/GridCacheAbstractMetricsSelfTest.java | 9 +- .../GridCacheReferenceCleanupSelfTest.java | 2 +- ...cheTransactionalAbstractMetricsSelfTest.java | 32 ++++-- .../GridCacheMetricsSelfTestSuite.java | 4 +- 13 files changed, 258 insertions(+), 183 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7964632f/modules/core/src/main/java/org/apache/ignite/IgniteTransactions.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteTransactions.java b/modules/core/src/main/java/org/apache/ignite/IgniteTransactions.java index d28954c..783dab4 100644 --- a/modules/core/src/main/java/org/apache/ignite/IgniteTransactions.java +++ b/modules/core/src/main/java/org/apache/ignite/IgniteTransactions.java @@ -133,4 +133,14 @@ public interface IgniteTransactions { * does not have a transaction. */ @Nullable public GridCacheTx tx(); + + /** + * @return Transaction metrics. + */ + public IgniteTxMetrics metrics(); + + /** + * Resets transaction metrics. + */ + public void resetMetrics(); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7964632f/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheTxMetrics.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheTxMetrics.java b/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheTxMetrics.java deleted file mode 100644 index c9c8bd3..0000000 --- a/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheTxMetrics.java +++ /dev/null @@ -1,45 +0,0 @@ -/* @java.file.header */ - -/* _________ _____ __________________ _____ - * __ ____/___________(_)______ /__ ____/______ ____(_)_______ - * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \ - * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / / - * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/ - */ - -package org.gridgain.grid.cache; - -import java.io.*; - -/** - * Transaction metrics, shared across all caches. - */ -public interface GridCacheTxMetrics extends Serializable { - /** - * Gets last time transaction was committed. - * - * @return Last commit time. - */ - public long commitTime(); - - /** - * Gets last time transaction was rollback. - * - * @return Last rollback time. - */ - public long rollbackTime(); - - /** - * Gets total number of transaction commits. - * - * @return Number of transaction commits. - */ - public int txCommits(); - - /** - * Gets total number of transaction rollbacks. - * - * @return Number of transaction rollbacks. - */ - public int txRollbacks(); -} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7964632f/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheTxMetricsAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheTxMetricsAdapter.java b/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheTxMetricsAdapter.java deleted file mode 100644 index 4fe5896..0000000 --- a/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheTxMetricsAdapter.java +++ /dev/null @@ -1,108 +0,0 @@ -/* @java.file.header */ - -/* _________ _____ __________________ _____ - * __ ____/___________(_)______ /__ ____/______ ____(_)_______ - * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \ - * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / / - * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/ - */ - -package org.gridgain.grid.cache; - -import org.gridgain.grid.util.tostring.*; -import org.gridgain.grid.util.typedef.internal.*; - -import java.io.*; - -/** - * TODO: Add class description. - */ -public class GridCacheTxMetricsAdapter implements GridCacheTxMetrics, Externalizable { - /** Number of transaction commits. */ - private volatile int txCommits; - - /** Number of transaction rollbacks. */ - private volatile int txRollbacks; - - /** Last commit time. */ - private volatile long commitTime; - - /** Last rollback time. */ - private volatile long rollbackTime; - - /** - * - */ - public GridCacheTxMetricsAdapter() { - - } - - /** - * @param m Transaction metrics to copy. - */ - public GridCacheTxMetricsAdapter(GridCacheTxMetrics m) { - commitTime = m.commitTime(); - rollbackTime = m.rollbackTime(); - txCommits = m.txCommits(); - txRollbacks = m.txRollbacks(); - } - - /** {@inheritDoc} */ - @Override public long commitTime() { - return commitTime; - } - - /** {@inheritDoc} */ - @Override public long rollbackTime() { - return rollbackTime; - } - - /** {@inheritDoc} */ - @Override public int txCommits() { - return txCommits; - } - - /** {@inheritDoc} */ - @Override public int txRollbacks() { - return txRollbacks; - } - - /** - * Transaction commit callback. - */ - public void onTxCommit() { - commitTime = U.currentTimeMillis(); - - txCommits++; - } - - /** - * Transaction rollback callback. - */ - public void onTxRollback() { - rollbackTime = U.currentTimeMillis(); - - txRollbacks++; - } - - /** {@inheritDoc} */ - @Override public void writeExternal(ObjectOutput out) throws IOException { - out.writeLong(commitTime); - out.writeLong(rollbackTime); - out.writeInt(txCommits); - out.writeInt(txRollbacks); - } - - /** {@inheritDoc} */ - @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { - commitTime = in.readLong(); - rollbackTime = in.readLong(); - txCommits = in.readInt(); - txRollbacks = in.readInt(); - } - - /** {@inheritDoc} */ - @Override public String toString() { - return S.toString(GridCacheTxMetricsAdapter.class, this); - } -} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7964632f/modules/core/src/main/java/org/gridgain/grid/cache/IgniteTxMetrics.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/gridgain/grid/cache/IgniteTxMetrics.java b/modules/core/src/main/java/org/gridgain/grid/cache/IgniteTxMetrics.java new file mode 100644 index 0000000..1c36cfd --- /dev/null +++ b/modules/core/src/main/java/org/gridgain/grid/cache/IgniteTxMetrics.java @@ -0,0 +1,45 @@ +/* @java.file.header */ + +/* _________ _____ __________________ _____ + * __ ____/___________(_)______ /__ ____/______ ____(_)_______ + * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \ + * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / / + * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/ + */ + +package org.gridgain.grid.cache; + +import java.io.*; + +/** + * Transaction metrics, shared across all caches. + */ +public interface IgniteTxMetrics extends Serializable { + /** + * Gets last time transaction was committed. + * + * @return Last commit time. + */ + public long commitTime(); + + /** + * Gets last time transaction was rollback. + * + * @return Last rollback time. + */ + public long rollbackTime(); + + /** + * Gets total number of transaction commits. + * + * @return Number of transaction commits. + */ + public int txCommits(); + + /** + * Gets total number of transaction rollbacks. + * + * @return Number of transaction rollbacks. + */ + public int txRollbacks(); +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7964632f/modules/core/src/main/java/org/gridgain/grid/cache/IgniteTxMetricsAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/gridgain/grid/cache/IgniteTxMetricsAdapter.java b/modules/core/src/main/java/org/gridgain/grid/cache/IgniteTxMetricsAdapter.java new file mode 100644 index 0000000..f9214d4 --- /dev/null +++ b/modules/core/src/main/java/org/gridgain/grid/cache/IgniteTxMetricsAdapter.java @@ -0,0 +1,107 @@ +/* @java.file.header */ + +/* _________ _____ __________________ _____ + * __ ____/___________(_)______ /__ ____/______ ____(_)_______ + * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \ + * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / / + * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/ + */ + +package org.gridgain.grid.cache; + +import org.gridgain.grid.util.typedef.internal.*; + +import java.io.*; + +/** + * Tx metrics adapter. + */ +public class IgniteTxMetricsAdapter implements IgniteTxMetrics, Externalizable { + /** Number of transaction commits. */ + private volatile int txCommits; + + /** Number of transaction rollbacks. */ + private volatile int txRollbacks; + + /** Last commit time. */ + private volatile long commitTime; + + /** Last rollback time. */ + private volatile long rollbackTime; + + /** + * + */ + public IgniteTxMetricsAdapter() { + + } + + /** + * @param m Transaction metrics to copy. + */ + public IgniteTxMetricsAdapter(IgniteTxMetrics m) { + commitTime = m.commitTime(); + rollbackTime = m.rollbackTime(); + txCommits = m.txCommits(); + txRollbacks = m.txRollbacks(); + } + + /** {@inheritDoc} */ + @Override public long commitTime() { + return commitTime; + } + + /** {@inheritDoc} */ + @Override public long rollbackTime() { + return rollbackTime; + } + + /** {@inheritDoc} */ + @Override public int txCommits() { + return txCommits; + } + + /** {@inheritDoc} */ + @Override public int txRollbacks() { + return txRollbacks; + } + + /** + * Transaction commit callback. + */ + public void onTxCommit() { + commitTime = U.currentTimeMillis(); + + txCommits++; + } + + /** + * Transaction rollback callback. + */ + public void onTxRollback() { + rollbackTime = U.currentTimeMillis(); + + txRollbacks++; + } + + /** {@inheritDoc} */ + @Override public void writeExternal(ObjectOutput out) throws IOException { + out.writeLong(commitTime); + out.writeLong(rollbackTime); + out.writeInt(txCommits); + out.writeInt(txRollbacks); + } + + /** {@inheritDoc} */ + @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { + commitTime = in.readLong(); + rollbackTime = in.readLong(); + txCommits = in.readInt(); + txRollbacks = in.readInt(); + } + + /** {@inheritDoc} */ + @Override public String toString() { + return S.toString(IgniteTxMetricsAdapter.class, this); + } +} http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7964632f/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheSharedContext.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheSharedContext.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheSharedContext.java index e67519b..ab23680 100644 --- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheSharedContext.java +++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheSharedContext.java @@ -61,7 +61,7 @@ public class GridCacheSharedContext<K, V> { private Map<Integer, GridCacheContext<K, V>> ctxMap; /** Tx metrics. */ - private GridCacheTxMetricsAdapter txMetrics; + private volatile IgniteTxMetricsAdapter txMetrics; /** Preloaders start future. */ private IgniteFuture<Object> preloadersStartFut; @@ -88,7 +88,7 @@ public class GridCacheSharedContext<K, V> { this.exchMgr = add(exchMgr); this.ioMgr = add(ioMgr); - txMetrics = new GridCacheTxMetricsAdapter(); + txMetrics = new IgniteTxMetricsAdapter(); ctxMap = new HashMap<>(); } @@ -206,11 +206,18 @@ public class GridCacheSharedContext<K, V> { /** * @return Transactional metrics adapter. */ - public GridCacheTxMetricsAdapter txMetrics() { + public IgniteTxMetricsAdapter txMetrics() { return txMetrics; } /** + * Resets tx metrics. + */ + public void resetTxMetrics() { + txMetrics = new IgniteTxMetricsAdapter(); + } + + /** * @return Cache transaction manager. */ public GridCacheTxManager<K, V> tm() { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7964632f/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxManager.java index 935ae1d..cc37438 100644 --- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxManager.java +++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxManager.java @@ -1239,9 +1239,16 @@ public class GridCacheTxManager<K, V> extends GridCacheSharedManagerAdapter<K, V txContextReset(); // 15. Update metrics. - if (!tx.dht() && tx.local()) + if (!tx.dht() && tx.local()) { cctx.txMetrics().onTxCommit(); + for (int cacheId : tx.activeCacheIds()) { + GridCacheContext<K, V> cacheCtx = cctx.cacheContext(cacheId); + + cacheCtx.cache().metrics0().onTxCommit(); + } + } + if (slowTxWarnTimeout > 0 && tx.local() && U.currentTimeMillis() - tx.startTime() > slowTxWarnTimeout) U.warn(log, "Slow transaction detected [tx=" + tx + @@ -1305,9 +1312,16 @@ public class GridCacheTxManager<K, V> extends GridCacheSharedManagerAdapter<K, V txContextReset(); // 11. Update metrics. - if (!tx.dht() && tx.local()) + if (!tx.dht() && tx.local()) { cctx.txMetrics().onTxRollback(); + for (int cacheId : tx.activeCacheIds()) { + GridCacheContext<K, V> cacheCtx = cctx.cacheContext(cacheId); + + cacheCtx.cache().metrics0().onTxRollback(); + } + } + if (log.isDebugEnabled()) log.debug("Rolled back from TM: " + tx); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7964632f/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridNearTxPrepareFuture.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridNearTxPrepareFuture.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridNearTxPrepareFuture.java index a9bcd3b..5bc5a3e 100644 --- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridNearTxPrepareFuture.java +++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridNearTxPrepareFuture.java @@ -12,7 +12,6 @@ package org.gridgain.grid.kernal.processors.cache.distributed.near; import org.apache.ignite.*; import org.apache.ignite.cluster.*; import org.apache.ignite.lang.*; -import org.gridgain.grid.*; import org.gridgain.grid.cache.*; import org.gridgain.grid.kernal.managers.discovery.*; import org.gridgain.grid.kernal.processors.cache.*; @@ -384,19 +383,46 @@ public final class GridNearTxPrepareFuture<K, V> extends GridCompoundIdentityFut if (tx.activeCacheIds().isEmpty()) return cctx.exchange().lastTopologyFuture(); - GridCacheContext<K, V> cacheCtx = cctx.cacheContext(F.first(tx.activeCacheIds())); + GridCacheContext<K, V> nonLocalCtx = null; - cacheCtx.topology().readLock(); + for (int cacheId : tx.activeCacheIds()) { + GridCacheContext<K, V> cacheCtx = cctx.cacheContext(cacheId); + + if (!cacheCtx.isLocal()) { + nonLocalCtx = cacheCtx; + + break; + } + } + + if (nonLocalCtx == null) + return cctx.exchange().lastTopologyFuture(); + + nonLocalCtx.topology().readLock(); - return cacheCtx.topology().topologyVersionFuture(); + return nonLocalCtx.topology().topologyVersionFuture(); } /** * Releases topology read lock. */ private void topologyReadUnlock() { - if (!tx.activeCacheIds().isEmpty()) - cctx.cacheContext(F.first(tx.activeCacheIds())).topology().readUnlock(); + if (!tx.activeCacheIds().isEmpty()) { + GridCacheContext<K, V> nonLocalCtx = null; + + for (int cacheId : tx.activeCacheIds()) { + GridCacheContext<K, V> cacheCtx = cctx.cacheContext(cacheId); + + if (!cacheCtx.isLocal()) { + nonLocalCtx = cacheCtx; + + break; + } + } + + if (nonLocalCtx != null) + nonLocalCtx.topology().readUnlock(); + } } /** http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7964632f/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/transactions/IgniteTransactionsImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/transactions/IgniteTransactionsImpl.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/transactions/IgniteTransactionsImpl.java index 98a87e3..60eec9e 100644 --- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/transactions/IgniteTransactionsImpl.java +++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/transactions/IgniteTransactionsImpl.java @@ -206,4 +206,14 @@ public class IgniteTransactionsImpl<K, V> implements IgniteTransactions { @Nullable @Override public GridCacheTx tx() { return cctx.tm().userTx(); } + + /** {@inheritDoc} */ + @Override public IgniteTxMetrics metrics() { + return cctx.txMetrics(); + } + + /** {@inheritDoc} */ + @Override public void resetMetrics() { + cctx.resetTxMetrics(); + } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7964632f/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractMetricsSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractMetricsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractMetricsSelfTest.java index 605b278..87248ef 100644 --- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractMetricsSelfTest.java +++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractMetricsSelfTest.java @@ -12,8 +12,6 @@ package org.gridgain.grid.kernal.processors.cache; import org.apache.ignite.*; import org.gridgain.grid.cache.*; -import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*; - /** * Cache metrics test. */ @@ -22,11 +20,6 @@ public abstract class GridCacheAbstractMetricsSelfTest extends GridCacheAbstract private static final int KEY_CNT = 50; /** {@inheritDoc} */ - @Override protected GridCacheWriteSynchronizationMode writeSynchronization() { - return FULL_SYNC; - } - - /** {@inheritDoc} */ @Override protected boolean swapEnabled() { return false; } @@ -70,6 +63,8 @@ public abstract class GridCacheAbstractMetricsSelfTest extends GridCacheAbstract assert g.cache(null).isEmpty(); g.cache(null).resetMetrics(); + + g.transactions().resetMetrics(); } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7964632f/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReferenceCleanupSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReferenceCleanupSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReferenceCleanupSelfTest.java index 80c4747..4602445 100644 --- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReferenceCleanupSelfTest.java +++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheReferenceCleanupSelfTest.java @@ -96,7 +96,7 @@ public class GridCacheReferenceCleanupSelfTest extends GridCommonAbstractTest { } /** @throws Exception If failed. */ - public void _testAtomicLongLocal() throws Exception { // TODO GG-9141 + public void testAtomicLongLocal() throws Exception { mode = GridCacheMode.LOCAL; try { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7964632f/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTransactionalAbstractMetricsSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTransactionalAbstractMetricsSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTransactionalAbstractMetricsSelfTest.java index 2ef09ea..5d3399c 100644 --- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTransactionalAbstractMetricsSelfTest.java +++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTransactionalAbstractMetricsSelfTest.java @@ -210,15 +210,22 @@ public abstract class GridCacheTransactionalAbstractMetricsSelfTest extends Grid } for (int i = 0; i < gridCount(); i++) { - // TODO GG-9141 - GridCacheTxMetrics metrics = null; //grid(i).cache(null).metrics(); + IgniteTxMetrics metrics = grid(i).transactions().metrics(); + GridCacheMetrics cacheMetrics = grid(i).cache(null).metrics(); - if (i == 0) + if (i == 0) { assertEquals(TX_CNT, metrics.txCommits()); - else + + if (put) + assertEquals(TX_CNT, cacheMetrics.txCommits()); + } + else { assertEquals(0, metrics.txCommits()); + assertEquals(0, cacheMetrics.txCommits()); + } assertEquals(0, metrics.txRollbacks()); + assertEquals(0, cacheMetrics.txRollbacks()); } } @@ -233,7 +240,7 @@ public abstract class GridCacheTransactionalAbstractMetricsSelfTest extends Grid GridCache<Integer, Integer> cache = grid(0).cache(null); for (int i = 0; i < TX_CNT; i++) { - GridCacheTx tx = cache.txStart(concurrency ,isolation); + GridCacheTx tx = cache.txStart(concurrency, isolation); if (put) for (int j = 0; j < keyCount(); j++) @@ -243,15 +250,22 @@ public abstract class GridCacheTransactionalAbstractMetricsSelfTest extends Grid } for (int i = 0; i < gridCount(); i++) { - // TODO GG-9141 - GridCacheTxMetrics metrics = null;//grid(i).cache(null).metrics(); + IgniteTxMetrics metrics = grid(i).transactions().metrics(); + GridCacheMetrics cacheMetrics = grid(i).cache(null).metrics(); assertEquals(0, metrics.txCommits()); + assertEquals(0, cacheMetrics.txCommits()); - if (i == 0) + if (i == 0) { assertEquals(TX_CNT, metrics.txRollbacks()); - else + + if (put) + assertEquals(TX_CNT, cacheMetrics.txRollbacks()); + } + else { assertEquals(0, metrics.txRollbacks()); + assertEquals(0, cacheMetrics.txRollbacks()); + } } } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7964632f/modules/core/src/test/java/org/gridgain/testsuites/GridCacheMetricsSelfTestSuite.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/gridgain/testsuites/GridCacheMetricsSelfTestSuite.java b/modules/core/src/test/java/org/gridgain/testsuites/GridCacheMetricsSelfTestSuite.java index 178465a..6a21e85 100644 --- a/modules/core/src/test/java/org/gridgain/testsuites/GridCacheMetricsSelfTestSuite.java +++ b/modules/core/src/test/java/org/gridgain/testsuites/GridCacheMetricsSelfTestSuite.java @@ -27,8 +27,8 @@ public class GridCacheMetricsSelfTestSuite extends TestSuite { // suite.addTest(new TestSuite(GridCacheLocalMetricsSelfTest.class)); suite.addTest(new TestSuite(GridCacheNearMetricsSelfTest.class)); -// suite.addTest(new TestSuite(GridCacheReplicatedMetricsSelfTest.class)); -// suite.addTest(new TestSuite(GridCachePartitionedMetricsSelfTest.class)); + suite.addTest(new TestSuite(GridCacheReplicatedMetricsSelfTest.class)); + suite.addTest(new TestSuite(GridCachePartitionedMetricsSelfTest.class)); // Atomic cache. suite.addTest(new TestSuite(GridCacheAtomicLocalMetricsSelfTest.class));