Remove GridClockSyncProcessor and related code removed.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/9b02f81f Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/9b02f81f Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/9b02f81f Branch: refs/heads/ignite-4587 Commit: 9b02f81f2e9d21ad2c2ad4e5fe4efd52545f59fb Parents: 6265f33 Author: Max Kozlov <[email protected]> Authored: Tue Mar 7 14:45:24 2017 +0300 Committer: Max Kozlov <[email protected]> Committed: Tue Mar 7 14:45:24 2017 +0300 ---------------------------------------------------------------------- .../org/apache/ignite/cache/CacheEntry.java | 11 - .../ignite/internal/GridKernalContext.java | 8 - .../ignite/internal/GridKernalContextImpl.java | 12 - .../apache/ignite/internal/IgniteKernal.java | 2 - .../processors/cache/CacheEntryImplEx.java | 8 +- .../cache/GridCacheAtomicVersionComparator.java | 21 +- .../processors/cache/GridCacheMapEntry.java | 1 - .../processors/cache/GridCacheMvcc.java | 23 +- .../processors/cache/GridCacheUtils.java | 1 - .../cache/transactions/IgniteTxManager.java | 2 +- .../version/GridCachePlainVersionedEntry.java | 5 - .../version/GridCacheRawVersionedEntry.java | 5 - .../cache/version/GridCacheVersion.java | 37 +- .../cache/version/GridCacheVersionEx.java | 11 +- .../cache/version/GridCacheVersionManager.java | 9 +- .../cache/version/GridCacheVersionedEntry.java | 7 - .../processors/clock/GridClockServer.java | 6 - .../clock/GridClockSyncProcessor.java | 481 ------------------- .../ignite/internal/util/IgniteUtils.java | 30 +- .../cache/GridCacheMvccFlagsTest.java | 4 +- .../cache/GridCacheMvccPartitionedSelfTest.java | 2 +- .../processors/cache/GridCacheMvccSelfTest.java | 8 +- .../processors/cache/GridCacheTestEntryEx.java | 2 +- .../cache/GridCacheVersionSelfTest.java | 4 +- .../CacheVersionedEntryAbstractTest.java | 2 - .../clock/GridTimeSyncProcessorSelfTest.java | 224 --------- 26 files changed, 43 insertions(+), 883 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/main/java/org/apache/ignite/cache/CacheEntry.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/CacheEntry.java b/modules/core/src/main/java/org/apache/ignite/cache/CacheEntry.java index 19585a3..90f30a2 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/CacheEntry.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/CacheEntry.java @@ -82,15 +82,4 @@ public interface CacheEntry<K, V> extends Cache.Entry<K, V> { * @return Version of this cache entry. */ public Comparable version(); - - /** - * Returns the time when the cache entry for the given key has been updated or initially created. - * <p> - * It is valid to compare cache entries' update time for the same key. In this case the latter update will - * be represented by higher update time. The result of update time comparison of cache entries of different keys is - * undefined. - * - * @return Time in milliseconds. - */ - public long updateTime(); } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java index 00696c7..1c39f9a 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java @@ -37,7 +37,6 @@ import org.apache.ignite.internal.processors.affinity.GridAffinityProcessor; import org.apache.ignite.internal.processors.cache.GridCacheProcessor; import org.apache.ignite.internal.processors.cacheobject.IgniteCacheObjectProcessor; import org.apache.ignite.internal.processors.clock.GridClockSource; -import org.apache.ignite.internal.processors.clock.GridClockSyncProcessor; import org.apache.ignite.internal.processors.closure.GridClosureProcessor; import org.apache.ignite.internal.processors.cluster.ClusterProcessor; import org.apache.ignite.internal.processors.continuous.GridContinuousProcessor; @@ -178,13 +177,6 @@ public interface GridKernalContext extends Iterable<GridComponent> { public GridTimeoutProcessor timeout(); /** - * Gets time processor. - * - * @return Time processor. - */ - public GridClockSyncProcessor clockSync(); - - /** * Gets resource processor. * * @return Resource processor. http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java index e80ec6b..24bb97a 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java @@ -52,7 +52,6 @@ import org.apache.ignite.internal.processors.cache.GridCacheProcessor; import org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl; import org.apache.ignite.internal.processors.cacheobject.IgniteCacheObjectProcessor; import org.apache.ignite.internal.processors.clock.GridClockSource; -import org.apache.ignite.internal.processors.clock.GridClockSyncProcessor; import org.apache.ignite.internal.processors.clock.GridJvmClockSource; import org.apache.ignite.internal.processors.closure.GridClosureProcessor; import org.apache.ignite.internal.processors.cluster.ClusterProcessor; @@ -186,10 +185,6 @@ public class GridKernalContextImpl implements GridKernalContext, Externalizable /** */ @GridToStringInclude - private GridClockSyncProcessor clockSyncProc; - - /** */ - @GridToStringInclude private GridResourceProcessor rsrcProc; /** */ @@ -514,8 +509,6 @@ public class GridKernalContextImpl implements GridKernalContext, Externalizable jobProc = (GridJobProcessor)comp; else if (comp instanceof GridTimeoutProcessor) timeProc = (GridTimeoutProcessor)comp; - else if (comp instanceof GridClockSyncProcessor) - clockSyncProc = (GridClockSyncProcessor)comp; else if (comp instanceof GridResourceProcessor) rsrcProc = (GridResourceProcessor)comp; else if (comp instanceof GridJobMetricsProcessor) @@ -637,11 +630,6 @@ public class GridKernalContextImpl implements GridKernalContext, Externalizable } /** {@inheritDoc} */ - @Override public GridClockSyncProcessor clockSync() { - return clockSyncProc; - } - - /** {@inheritDoc} */ @Override public GridResourceProcessor resource() { return rsrcProc; } http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java index cdbe2e3..77ba212 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java @@ -108,7 +108,6 @@ import org.apache.ignite.internal.processors.cache.IgniteCacheProxy; import org.apache.ignite.internal.processors.cache.IgniteInternalCache; import org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl; import org.apache.ignite.internal.processors.cacheobject.IgniteCacheObjectProcessor; -import org.apache.ignite.internal.processors.clock.GridClockSyncProcessor; import org.apache.ignite.internal.processors.closure.GridClosureProcessor; import org.apache.ignite.internal.processors.cluster.ClusterProcessor; import org.apache.ignite.internal.processors.continuous.GridContinuousProcessor; @@ -891,7 +890,6 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable { // Start processors before discovery manager, so they will // be able to start receiving messages once discovery completes. startProcessor(createComponent(DiscoveryNodeValidationProcessor.class, ctx)); - startProcessor(new GridClockSyncProcessor(ctx)); startProcessor(new GridAffinityProcessor(ctx)); startProcessor(createComponent(GridSegmentationProcessor.class, ctx)); startProcessor(createComponent(IgniteCacheObjectProcessor.class, ctx)); http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntryImplEx.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntryImplEx.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntryImplEx.java index af926c6..664b216 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntryImplEx.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntryImplEx.java @@ -70,11 +70,6 @@ public class CacheEntryImplEx<K, V> extends CacheEntryImpl<K, V> implements Cach } /** {@inheritDoc} */ - @Override public long updateTime() { - return ver.globalTime(); - } - - /** {@inheritDoc} */ @Override public void writeExternal(ObjectOutput out) throws IOException { super.writeExternal(out); @@ -96,8 +91,7 @@ public class CacheEntryImplEx<K, V> extends CacheEntryImpl<K, V> implements Cach if (ver != null && ver != GET_ENTRY_INVALID_VER_AFTER_GET && ver != GET_ENTRY_INVALID_VER_UPDATED) { res += ", topVer=" + ver.topologyVersion() + ", nodeOrder=" + ver.nodeOrder() + - ", order=" + ver.order() + - ", updateTime=" + ver.globalTime(); + ", order=" + ver.order(); } else res += ", ver=n/a"; http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAtomicVersionComparator.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAtomicVersionComparator.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAtomicVersionComparator.java index 08a5b28..ac0abec 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAtomicVersionComparator.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAtomicVersionComparator.java @@ -36,24 +36,17 @@ public class GridCacheAtomicVersionComparator { int otherTopVer = other.topologyVersion(); if (topVer == otherTopVer) { - long globalTime = one.globalTime(); - long otherGlobalTime = other.globalTime(); + long locOrder = one.order(); + long otherLocOrder = other.order(); - if (globalTime == otherGlobalTime || ignoreTime) { - long locOrder = one.order(); - long otherLocOrder = other.order(); + if (locOrder == otherLocOrder) { + int nodeOrder = one.nodeOrder(); + int otherNodeOrder = other.nodeOrder(); - if (locOrder == otherLocOrder) { - int nodeOrder = one.nodeOrder(); - int otherNodeOrder = other.nodeOrder(); - - return nodeOrder == otherNodeOrder ? 0 : nodeOrder < otherNodeOrder ? -1 : 1; - } - else - return locOrder > otherLocOrder ? 1 : -1; + return nodeOrder == otherNodeOrder ? 0 : nodeOrder < otherNodeOrder ? -1 : 1; } else - return globalTime > otherGlobalTime ? 1 : -1; + return locOrder > otherLocOrder ? 1 : -1; } else return topVer > otherTopVer ? 1 : -1; http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java index c33b60d..68d171c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java @@ -2384,7 +2384,6 @@ public abstract class GridCacheMapEntry extends GridMetadataAwareAdapter impleme // Incorporate conflict version into new version if needed. if (conflictVer != null && conflictVer != newVer) newVer = new GridCacheVersionEx(newVer.topologyVersion(), - newVer.globalTime(), newVer.order(), newVer.nodeOrder(), newVer.dataCenterId(), http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvcc.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvcc.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvcc.java index 498584c..28cc8fb 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvcc.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvcc.java @@ -57,26 +57,19 @@ public final class GridCacheMvcc { /** */ private static final Comparator<GridCacheVersion> SER_VER_COMPARATOR = new Comparator<GridCacheVersion>() { @Override public int compare(GridCacheVersion ver1, GridCacheVersion ver2) { - long time1 = ver1.globalTime(); - long time2 = ver2.globalTime(); + int nodeOrder1 = ver1.nodeOrder(); + int nodeOrder2 = ver2.nodeOrder(); - if (time1 == time2) { - int nodeOrder1 = ver1.nodeOrder(); - int nodeOrder2 = ver2.nodeOrder(); + if (nodeOrder1 == nodeOrder2) { + long order1 = ver1.order(); + long order2 = ver2.order(); - if (nodeOrder1 == nodeOrder2) { - long order1 = ver1.order(); - long order2 = ver2.order(); + assert order1 != order2; - assert order1 != order2; - - return order1 > order2 ? 1 : -1; - } - else - return nodeOrder1 > nodeOrder2 ? 1 : -1; + return order1 > order2 ? 1 : -1; } else - return time1 > time2 ? 1 : -1; + return nodeOrder1 > nodeOrder2 ? 1 : -1; } }; http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java index 1c59390..6b235dd 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java @@ -984,7 +984,6 @@ public class GridCacheUtils { byte[] bytes = new byte[28]; U.intToBytes(ver.topologyVersion(), bytes, 0); - U.longToBytes(ver.globalTime(), bytes, 4); U.longToBytes(ver.order(), bytes, 12); U.intToBytes(ver.nodeOrderAndDrIdRaw(), bytes, 20); http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java index a1a18fe..2f12a1c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java @@ -2426,7 +2426,7 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter { * @param nearVer Near transaction version. */ private CommittedVersion(GridCacheVersion ver, GridCacheVersion nearVer) { - super(ver.topologyVersion(), ver.globalTime(), ver.order(), ver.nodeOrder(), ver.dataCenterId()); + super(ver.topologyVersion(), ver.order(), ver.nodeOrder(), ver.dataCenterId()); assert nearVer != null; http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCachePlainVersionedEntry.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCachePlainVersionedEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCachePlainVersionedEntry.java index c175e5a..f4d7e08 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCachePlainVersionedEntry.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCachePlainVersionedEntry.java @@ -110,11 +110,6 @@ public class GridCachePlainVersionedEntry<K, V> implements GridCacheVersionedEnt } /** {@inheritDoc} */ - @Override public long globalTime() { - return isStartVer ? 0L : ver.globalTime(); - } - - /** {@inheritDoc} */ @Override public GridCacheVersion version() { return ver; } http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheRawVersionedEntry.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheRawVersionedEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheRawVersionedEntry.java index b7c96b4..7513935 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheRawVersionedEntry.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheRawVersionedEntry.java @@ -170,11 +170,6 @@ public class GridCacheRawVersionedEntry<K, V> extends DataStreamerEntry implemen } /** {@inheritDoc} */ - @Override public long globalTime() { - return ver.globalTime(); - } - - /** {@inheritDoc} */ @Override public GridCacheVersion version() { return ver; } http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java index ccc17e5..f191c64 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java @@ -50,9 +50,6 @@ public class GridCacheVersion implements Message, Comparable<GridCacheVersion>, /** Node order (used as global order) and DR ID. */ private int nodeOrderDrId; - /** Globally adjusted time. */ - private long globalTime; - /** Order. */ private long order; @@ -65,12 +62,11 @@ public class GridCacheVersion implements Message, Comparable<GridCacheVersion>, /** * @param topVer Topology version plus number of seconds from the start time of the first grid node. - * @param globalTime Globally adjusted time. * @param order Version order. * @param nodeOrder Node order. * @param dataCenterId Replication data center ID. */ - public GridCacheVersion(int topVer, long globalTime, long order, int nodeOrder, int dataCenterId) { + public GridCacheVersion(int topVer, long order, int nodeOrder, int dataCenterId) { assert topVer >= 0 : topVer; assert order >= 0 : order; assert nodeOrder >= 0 : nodeOrder; @@ -80,7 +76,6 @@ public class GridCacheVersion implements Message, Comparable<GridCacheVersion>, throw new IllegalArgumentException("Node order overflow: " + nodeOrder); this.topVer = topVer; - this.globalTime = globalTime; this.order = order; nodeOrderDrId = nodeOrder | (dataCenterId << DR_ID_SHIFT); @@ -90,13 +85,11 @@ public class GridCacheVersion implements Message, Comparable<GridCacheVersion>, /** * @param topVer Topology version plus number of seconds from the start time of the first grid node. * @param nodeOrderDrId Node order and DR ID. - * @param globalTime Globally adjusted time. * @param order Version order. */ - public GridCacheVersion(int topVer, int nodeOrderDrId, long globalTime, long order) { + public GridCacheVersion(int topVer, int nodeOrderDrId, long order) { this.topVer = topVer; this.nodeOrderDrId = nodeOrderDrId; - this.globalTime = globalTime; this.order = order; } @@ -117,13 +110,6 @@ public class GridCacheVersion implements Message, Comparable<GridCacheVersion>, } /** - * @return Adjusted time. - */ - public long globalTime() { - return globalTime; - } - - /** * @return Version order. */ public long order() { @@ -187,7 +173,7 @@ public class GridCacheVersion implements Message, Comparable<GridCacheVersion>, * @return Version represented as {@code GridUuid} */ public IgniteUuid asGridUuid() { - return new IgniteUuid(new UUID(((long)topVer << 32) | nodeOrderDrId, globalTime), order); + return new IgniteUuid(new UUID(nodeOrderDrId << 32, topVer << 32), order); } /** {@inheritDoc} */ @@ -198,7 +184,6 @@ public class GridCacheVersion implements Message, Comparable<GridCacheVersion>, /** {@inheritDoc} */ @Override public void writeExternal(ObjectOutput out) throws IOException { out.writeInt(topVer); - out.writeLong(globalTime); out.writeLong(order); out.writeInt(nodeOrderDrId); } @@ -206,7 +191,6 @@ public class GridCacheVersion implements Message, Comparable<GridCacheVersion>, /** {@inheritDoc} */ @Override public void readExternal(ObjectInput in) throws IOException { topVer = in.readInt(); - globalTime = in.readLong(); order = in.readLong(); nodeOrderDrId = in.readInt(); } @@ -263,12 +247,6 @@ public class GridCacheVersion implements Message, Comparable<GridCacheVersion>, } switch (writer.state()) { - case 0: - if (!writer.writeLong("globalTime", globalTime)) - return false; - - writer.incrementState(); - case 1: if (!writer.writeInt("nodeOrderDrId", nodeOrderDrId)) return false; @@ -300,14 +278,6 @@ public class GridCacheVersion implements Message, Comparable<GridCacheVersion>, return false; switch (reader.state()) { - case 0: - globalTime = reader.readLong("globalTime"); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - case 1: nodeOrderDrId = reader.readInt("nodeOrderDrId"); @@ -350,7 +320,6 @@ public class GridCacheVersion implements Message, Comparable<GridCacheVersion>, /** {@inheritDoc} */ @Override public String toString() { return "GridCacheVersion [topVer=" + topologyVersion() + - ", time=" + globalTime() + ", order=" + order() + ", nodeOrder=" + nodeOrder() + ']'; } http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionEx.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionEx.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionEx.java index c89b941..e376366 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionEx.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionEx.java @@ -46,15 +46,14 @@ public class GridCacheVersionEx extends GridCacheVersion { * Constructor. * * @param topVer Topology version. - * @param globalTime Global time. * @param order Order. * @param nodeOrder Node order. * @param dataCenterId Data center ID. * @param drVer DR version. */ - public GridCacheVersionEx(int topVer, long globalTime, long order, int nodeOrder, byte dataCenterId, + public GridCacheVersionEx(int topVer, long order, int nodeOrder, byte dataCenterId, GridCacheVersion drVer) { - super(topVer, globalTime, order, nodeOrder, dataCenterId); + super(topVer, order, nodeOrder, dataCenterId); assert drVer != null && !(drVer instanceof GridCacheVersionEx); // DR version can only be plain here. @@ -66,12 +65,11 @@ public class GridCacheVersionEx extends GridCacheVersion { * * @param topVer Topology version. * @param nodeOrderDrId Node order and DR ID. - * @param globalTime Globally adjusted time. * @param order Version order. * @param drVer DR version. */ - public GridCacheVersionEx(int topVer, int nodeOrderDrId, long globalTime, long order, GridCacheVersion drVer) { - super(topVer, nodeOrderDrId, globalTime, order); + public GridCacheVersionEx(int topVer, int nodeOrderDrId, long order, GridCacheVersion drVer) { + super(topVer, nodeOrderDrId, order); assert drVer != null && !(drVer instanceof GridCacheVersionEx); // DR version can only be plain here. @@ -162,7 +160,6 @@ public class GridCacheVersionEx extends GridCacheVersion { /** {@inheritDoc} */ @Override public String toString() { return "GridCacheVersionEx [topVer=" + topologyVersion() + - ", time=" + globalTime() + ", order=" + order() + ", nodeOrder=" + nodeOrder() + ", drVer=" + drVer + ']'; http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionManager.java index 5a8904f..15a7d2a 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionManager.java @@ -79,7 +79,7 @@ public class GridCacheVersionManager extends GridCacheSharedManagerAdapter { /** {@inheritDoc} */ @Override public void start0() throws IgniteCheckedException { - last = new GridCacheVersion(0, 0, order.get(), 0, dataCenterId); + last = new GridCacheVersion(0, order.get(), 0, dataCenterId); cctx.gridEvents().addLocalEventListener(discoLsnr, EVT_NODE_METRICS_UPDATED); } @@ -103,7 +103,7 @@ public class GridCacheVersionManager extends GridCacheSharedManagerAdapter { public void dataCenterId(byte dataCenterId) { this.dataCenterId = dataCenterId; - last = new GridCacheVersion(0, 0, order.get(), 0, dataCenterId); + last = new GridCacheVersion(0, order.get(), 0, dataCenterId); } /** @@ -185,7 +185,7 @@ public class GridCacheVersionManager extends GridCacheSharedManagerAdapter { topVer += (gridStartTime - TOP_VER_BASE_TIME) / 1000; - ISOLATED_STREAMER_VER = new GridCacheVersion((int)topVer, 0, 0, 1, dataCenterId); + ISOLATED_STREAMER_VER = new GridCacheVersion((int)topVer, 0, 1, dataCenterId); } return ISOLATED_STREAMER_VER; @@ -271,8 +271,6 @@ public class GridCacheVersionManager extends GridCacheSharedManagerAdapter { if (topVer == -1) topVer = cctx.kernalContext().discovery().topologyVersion(); - long globalTime = cctx.kernalContext().clockSync().adjustedTime(topVer); - if (addTime) { if (gridStartTime == 0) gridStartTime = cctx.kernalContext().discovery().gridStartTime(); @@ -286,7 +284,6 @@ public class GridCacheVersionManager extends GridCacheSharedManagerAdapter { GridCacheVersion next = new GridCacheVersion( (int)topVer, - globalTime, ord, locNodeOrder, dataCenterId); http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionedEntry.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionedEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionedEntry.java index 06e7999..e685d79 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionedEntry.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionedEntry.java @@ -71,11 +71,4 @@ public interface GridCacheVersionedEntry<K, V> { * @return Entry's order in initiator data center */ public long order(); - - /** - * Gets entry's global time in initiator data center. - * - * @return Entry's global time in initiator data center - */ - public long globalTime(); } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockServer.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockServer.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockServer.java index 8daef31..a736a37 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockServer.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockServer.java @@ -47,9 +47,6 @@ public class GridClockServer { /** Read worker. */ private GridWorker readWorker; - /** Instance of time processor. */ - private GridClockSyncProcessor clockSync; - /** * Starts server. * @@ -59,7 +56,6 @@ public class GridClockServer { public void start(GridKernalContext ctx) throws IgniteCheckedException { this.ctx = ctx; - clockSync = ctx.clockSync(); log = ctx.log(GridClockServer.class); try { @@ -205,8 +201,6 @@ public class GridClockServer { GridClockMessage msg = GridClockMessage.fromBytes(packet.getData(), packet.getOffset(), packet.getLength()); - - clockSync.onMessageReceived(msg, packet.getAddress(), packet.getPort()); } catch (IgniteCheckedException e) { U.warn(log, "Failed to assemble clock server message (will ignore the packet) [host=" + http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockSyncProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockSyncProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockSyncProcessor.java deleted file mode 100644 index 257d0d9..0000000 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockSyncProcessor.java +++ /dev/null @@ -1,481 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ignite.internal.processors.clock; - -import java.net.InetAddress; -import java.util.Collection; -import java.util.Map; -import java.util.NavigableMap; -import java.util.UUID; -import org.apache.ignite.IgniteCheckedException; -import org.apache.ignite.cluster.ClusterNode; -import org.apache.ignite.events.DiscoveryEvent; -import org.apache.ignite.events.Event; -import org.apache.ignite.events.EventType; -import org.apache.ignite.internal.GridKernalContext; -import org.apache.ignite.internal.IgniteInterruptedCheckedException; -import org.apache.ignite.internal.managers.communication.GridMessageListener; -import org.apache.ignite.internal.managers.discovery.GridDiscoveryTopologySnapshot; -import org.apache.ignite.internal.managers.eventstorage.GridLocalEventListener; -import org.apache.ignite.internal.processors.GridProcessorAdapter; -import org.apache.ignite.internal.util.GridBoundedConcurrentOrderedMap; -import org.apache.ignite.internal.util.GridSpinReadWriteLock; -import org.apache.ignite.internal.util.typedef.T2; -import org.apache.ignite.internal.util.typedef.internal.LT; -import org.apache.ignite.internal.util.typedef.internal.U; -import org.apache.ignite.internal.util.worker.GridWorker; -import org.apache.ignite.thread.IgniteThread; - -import static org.apache.ignite.events.EventType.EVT_NODE_FAILED; -import static org.apache.ignite.events.EventType.EVT_NODE_JOINED; -import static org.apache.ignite.events.EventType.EVT_NODE_LEFT; -import static org.apache.ignite.internal.GridTopic.TOPIC_TIME_SYNC; -import static org.apache.ignite.internal.IgniteNodeAttributes.ATTR_TIME_SERVER_HOST; -import static org.apache.ignite.internal.IgniteNodeAttributes.ATTR_TIME_SERVER_PORT; -import static org.apache.ignite.internal.managers.communication.GridIoPolicy.SYSTEM_POOL; - -/** - * Time synchronization processor. - */ -public class GridClockSyncProcessor extends GridProcessorAdapter { - /** Maximum size for time sync history. */ - private static final int MAX_TIME_SYNC_HISTORY = 100; - - /** Time server instance. */ - private GridClockServer srv; - - /** Shutdown lock. */ - private GridSpinReadWriteLock rw = new GridSpinReadWriteLock(); - - /** Stopping flag. */ - private volatile boolean stopping; - - /** Time coordinator thread. */ - private volatile TimeCoordinator timeCoord; - - /** Time delta history. Constructed on coordinator. */ - private NavigableMap<GridClockDeltaVersion, GridClockDeltaSnapshot> timeSyncHist = - new GridBoundedConcurrentOrderedMap<>(MAX_TIME_SYNC_HISTORY); - - /** Last recorded. */ - private volatile T2<GridClockDeltaVersion, GridClockDeltaSnapshot> lastSnapshot; - - /** Time source. */ - private GridClockSource clockSrc; - - /** - * @param ctx Kernal context. - */ - public GridClockSyncProcessor(GridKernalContext ctx) { - super(ctx); - } - - /** {@inheritDoc} */ - @Override public void start() throws IgniteCheckedException { - super.start(); - - clockSrc = ctx.timeSource(); - - srv = new GridClockServer(); - - srv.start(ctx); - - ctx.io().addMessageListener(TOPIC_TIME_SYNC, new GridMessageListener() { - @Override public void onMessage(UUID nodeId, Object msg) { - assert msg instanceof GridClockDeltaSnapshotMessage; - - GridClockDeltaSnapshotMessage msg0 = (GridClockDeltaSnapshotMessage)msg; - - GridClockDeltaVersion ver = msg0.snapshotVersion(); - - GridClockDeltaSnapshot snap = new GridClockDeltaSnapshot(ver, msg0.deltas()); - - lastSnapshot = new T2<>(ver, snap); - - timeSyncHist.put(ver, snap); - } - }); - - // We care only about node leave and fail events. - ctx.event().addLocalEventListener(new GridLocalEventListener() { - @Override public void onEvent(Event evt) { - assert evt.type() == EVT_NODE_LEFT || evt.type() == EVT_NODE_FAILED || evt.type() == EVT_NODE_JOINED; - - DiscoveryEvent discoEvt = (DiscoveryEvent)evt; - - if (evt.type() == EVT_NODE_LEFT || evt.type() == EVT_NODE_FAILED) - checkLaunchCoordinator(discoEvt); - - TimeCoordinator timeCoord0 = timeCoord; - - if (timeCoord0 != null) - timeCoord0.onDiscoveryEvent(discoEvt); - } - }, EVT_NODE_LEFT, EVT_NODE_FAILED, EVT_NODE_JOINED); - - ctx.addNodeAttribute(ATTR_TIME_SERVER_HOST, srv.host()); - ctx.addNodeAttribute(ATTR_TIME_SERVER_PORT, srv.port()); - } - - /** {@inheritDoc} */ - @Override public void onKernalStart() throws IgniteCheckedException { - super.onKernalStart(); - - srv.afterStart(); - - // Check at startup if this node is a fragmentizer coordinator. - DiscoveryEvent locJoinEvt = ctx.discovery().localJoinEvent(); - - checkLaunchCoordinator(locJoinEvt); - } - - /** {@inheritDoc} */ - @Override public void onKernalStop(boolean cancel) { - super.onKernalStop(cancel); - - rw.writeLock(); - - try { - stopping = false; - - if (timeCoord != null) { - timeCoord.cancel(); - - U.join(timeCoord, log); - - timeCoord = null; - } - - if (srv != null) - srv.beforeStop(); - } - finally { - rw.writeUnlock(); - } - } - - /** {@inheritDoc} */ - @Override public void stop(boolean cancel) throws IgniteCheckedException { - super.stop(cancel); - - if (srv != null) - srv.stop(); - } - - /** - * Gets current time on local node. - * - * @return Current time in milliseconds. - */ - private long currentTime() { - return clockSrc.currentTimeMillis(); - } - - /** - * @return Time sync history. - */ - public NavigableMap<GridClockDeltaVersion, GridClockDeltaSnapshot> timeSyncHistory() { - return timeSyncHist; - } - - /** - * Callback from server for message receiving. - * - * @param msg Received message. - * @param addr Remote node address. - * @param port Remote node port. - */ - public void onMessageReceived(GridClockMessage msg, InetAddress addr, int port) { - long rcvTs = currentTime(); - - if (!msg.originatingNodeId().equals(ctx.localNodeId())) { - // We received time request from remote node, set current time and reply back. - msg.replyTimestamp(rcvTs); - - try { - srv.sendPacket(msg, addr, port); - } - catch (IgniteCheckedException e) { - U.error(log, "Failed to send time server reply to remote node: " + msg, e); - } - } - else - timeCoord.onMessage(msg, rcvTs); - } - - /** - * Checks if local node is the oldest node in topology and starts time coordinator if so. - * - * @param discoEvt Discovery event. - */ - private void checkLaunchCoordinator(DiscoveryEvent discoEvt) { - rw.readLock(); - - try { - if (stopping) - return; - - if (timeCoord == null) { - long minNodeOrder = Long.MAX_VALUE; - - Collection<ClusterNode> nodes = discoEvt.topologyNodes(); - - for (ClusterNode node : nodes) { - if (node.order() < minNodeOrder) - minNodeOrder = node.order(); - } - - ClusterNode locNode = ctx.discovery().localNode(); - - if (locNode.order() == minNodeOrder) { - if (log.isDebugEnabled()) - log.debug("Detected local node to be the eldest node in topology, starting time " + - "coordinator thread [discoEvt=" + discoEvt + ", locNode=" + locNode + ']'); - - synchronized (this) { - if (timeCoord == null && !stopping) { - timeCoord = new TimeCoordinator(discoEvt); - - IgniteThread th = new IgniteThread(timeCoord); - - th.setPriority(Thread.MAX_PRIORITY); - - th.start(); - } - } - } - } - } - finally { - rw.readUnlock(); - } - } - - /** - * Gets time adjusted with time coordinator on given topology version. - * - * @param topVer Topology version. - * @return Adjusted time. - */ - public long adjustedTime(long topVer) { - T2<GridClockDeltaVersion, GridClockDeltaSnapshot> fastSnap = lastSnapshot; - - GridClockDeltaSnapshot snap; - - if (fastSnap != null && fastSnap.get1().topologyVersion() == topVer) - snap = fastSnap.get2(); - else { - // Get last synchronized time on given topology version. - Map.Entry<GridClockDeltaVersion, GridClockDeltaSnapshot> entry = timeSyncHistory().lowerEntry( - new GridClockDeltaVersion(0, topVer + 1)); - - snap = entry == null ? null : entry.getValue(); - } - - long now = clockSrc.currentTimeMillis(); - - if (snap == null) - return now; - - Long delta = snap.deltas().get(ctx.localNodeId()); - - if (delta == null) - delta = 0L; - - return now + delta; - } - - /** - * Publishes snapshot to topology. - * - * @param snapshot Snapshot to publish. - * @param top Topology to send given snapshot to. - */ - private void publish(GridClockDeltaSnapshot snapshot, GridDiscoveryTopologySnapshot top) { - if (!rw.tryReadLock()) - return; - - try { - lastSnapshot = new T2<>(snapshot.version(), snapshot); - - timeSyncHist.put(snapshot.version(), snapshot); - - for (ClusterNode n : top.topologyNodes()) { - GridClockDeltaSnapshotMessage msg = new GridClockDeltaSnapshotMessage( - snapshot.version(), snapshot.deltas()); - - try { - ctx.io().send(n, TOPIC_TIME_SYNC, msg, SYSTEM_POOL); - } - catch (IgniteCheckedException e) { - if (ctx.discovery().pingNodeNoError(n.id())) - U.error(log, "Failed to send time sync snapshot to remote node (did not leave grid?) " + - "[nodeId=" + n.id() + ", msg=" + msg + ", err=" + e.getMessage() + ']'); - else if (log.isDebugEnabled()) - log.debug("Failed to send time sync snapshot to remote node (did not leave grid?) " + - "[nodeId=" + n.id() + ", msg=" + msg + ", err=" + e.getMessage() + ']'); - } - } - } - finally { - rw.readUnlock(); - } - } - - /** - * Time coordinator thread. - */ - private class TimeCoordinator extends GridWorker { - /** Last discovery topology snapshot. */ - private volatile GridDiscoveryTopologySnapshot lastSnapshot; - - /** Snapshot being constructed. May be not null only on coordinator node. */ - private volatile GridClockDeltaSnapshot pendingSnapshot; - - /** Version counter. */ - private long verCnt = 1; - - /** - * Time coordinator thread constructor. - * - * @param evt Discovery event on which this node became a coordinator. - */ - protected TimeCoordinator(DiscoveryEvent evt) { - super(ctx.gridName(), "grid-time-coordinator", GridClockSyncProcessor.this.log); - - lastSnapshot = new GridDiscoveryTopologySnapshot(evt.topologyVersion(), evt.topologyNodes()); - } - - /** {@inheritDoc} */ - @Override protected void body() throws InterruptedException, IgniteInterruptedCheckedException { - while (!isCancelled()) { - GridDiscoveryTopologySnapshot top = lastSnapshot; - - if (log.isDebugEnabled()) - log.debug("Creating time sync snapshot for topology: " + top); - - GridClockDeltaSnapshot snapshot = new GridClockDeltaSnapshot( - new GridClockDeltaVersion(verCnt++, top.topologyVersion()), - ctx.localNodeId(), - top, - ctx.config().getClockSyncSamples()); - - pendingSnapshot = snapshot; - - while (!snapshot.ready()) { - if (log.isDebugEnabled()) - log.debug("Requesting time from remote nodes: " + snapshot.pendingNodeIds()); - - for (UUID nodeId : snapshot.pendingNodeIds()) - requestTime(nodeId); - - if (log.isDebugEnabled()) - log.debug("Waiting for snapshot to be ready: " + snapshot); - - // Wait for all replies - snapshot.awaitReady(1000); - } - - // No more messages should be processed. - pendingSnapshot = null; - - if (log.isDebugEnabled()) - log.debug("Collected time sync results: " + snapshot.deltas()); - - publish(snapshot, top); - - synchronized (this) { - if (top.topologyVersion() == lastSnapshot.topologyVersion()) - wait(ctx.config().getClockSyncFrequency()); - } - } - } - - /** - * @param evt Discovery event. - */ - public void onDiscoveryEvent(DiscoveryEvent evt) { - if (log.isDebugEnabled()) - log.debug("Processing discovery event: " + evt); - - if (evt.type() == EventType.EVT_NODE_FAILED || evt.type() == EVT_NODE_LEFT) - onNodeLeft(evt.eventNode().id()); - - synchronized (this) { - lastSnapshot = new GridDiscoveryTopologySnapshot(evt.topologyVersion(), evt.topologyNodes()); - - notifyAll(); - } - } - - /** - * @param msg Message received from remote node. - * @param rcvTs Receive timestamp. - */ - private void onMessage(GridClockMessage msg, long rcvTs) { - GridClockDeltaSnapshot curr = pendingSnapshot; - - if (curr != null) { - long delta = (msg.originatingTimestamp() + rcvTs) / 2 - msg.replyTimestamp(); - - boolean needMore = curr.onDeltaReceived(msg.targetNodeId(), delta); - - if (needMore) - requestTime(msg.targetNodeId()); - } - } - - /** - * Requests time from remote node. - * - * @param rmtNodeId Remote node ID. - */ - private void requestTime(UUID rmtNodeId) { - ClusterNode node = ctx.discovery().node(rmtNodeId); - - if (node != null) { - InetAddress addr = node.attribute(ATTR_TIME_SERVER_HOST); - int port = node.attribute(ATTR_TIME_SERVER_PORT); - - try { - GridClockMessage req = new GridClockMessage(ctx.localNodeId(), rmtNodeId, currentTime(), 0); - - srv.sendPacket(req, addr, port); - } - catch (IgniteCheckedException e) { - LT.error(log, e, "Failed to send time request to remote node [rmtNodeId=" + rmtNodeId + - ", addr=" + addr + ", port=" + port + ']'); - } - } - else - onNodeLeft(rmtNodeId); - } - - /** - * Node left callback. - * - * @param nodeId Left node ID. - */ - private void onNodeLeft(UUID nodeId) { - GridClockDeltaSnapshot curr = pendingSnapshot; - - if (curr != null) - curr.onNodeLeft(nodeId); - } - } -} http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java index f6c8163..928a31c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java @@ -9217,11 +9217,7 @@ public abstract class IgniteUtils { GridUnsafe.putInt(arr, off, drVer.nodeOrderAndDrIdRaw()); - off += 4; - - GridUnsafe.putLong(arr, off, drVer.globalTime()); - - off += 8; + off += 12; GridUnsafe.putLong(arr, off, drVer.order()); @@ -9234,11 +9230,7 @@ public abstract class IgniteUtils { GridUnsafe.putInt(arr, off, ver.nodeOrderAndDrIdRaw()); - off += 4; - - GridUnsafe.putLong(arr, off, ver.globalTime()); - - off += 8; + off += 12; GridUnsafe.putLong(arr, off, ver.order()); @@ -9255,7 +9247,6 @@ public abstract class IgniteUtils { public static GridCacheVersion readVersion(long ptr, boolean verEx) { GridCacheVersion ver = new GridCacheVersion(GridUnsafe.getInt(ptr), GridUnsafe.getInt(ptr + 4), - GridUnsafe.getLong(ptr + 8), GridUnsafe.getLong(ptr + 16)); if (verEx) { @@ -9263,7 +9254,6 @@ public abstract class IgniteUtils { ver = new GridCacheVersionEx(GridUnsafe.getInt(ptr), GridUnsafe.getInt(ptr + 4), - GridUnsafe.getLong(ptr + 8), GridUnsafe.getLong(ptr + 16), ver); } @@ -9284,17 +9274,13 @@ public abstract class IgniteUtils { int nodeOrderDrId = GridUnsafe.getInt(arr, off); - off += 4; - - long globalTime = GridUnsafe.getLong(arr, off); - - off += 8; + off += 12; long order = GridUnsafe.getLong(arr, off); off += 8; - GridCacheVersion ver = new GridCacheVersion(topVer, nodeOrderDrId, globalTime, order); + GridCacheVersion ver = new GridCacheVersion(topVer, nodeOrderDrId, order); if (verEx) { topVer = GridUnsafe.getInt(arr, off); @@ -9303,15 +9289,11 @@ public abstract class IgniteUtils { nodeOrderDrId = GridUnsafe.getInt(arr, off); - off += 4; - - globalTime = GridUnsafe.getLong(arr, off); - - off += 8; + off += 12; order = GridUnsafe.getLong(arr, off); - ver = new GridCacheVersionEx(topVer, nodeOrderDrId, globalTime, order, ver); + ver = new GridCacheVersionEx(topVer, nodeOrderDrId, order, ver); } return ver; http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccFlagsTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccFlagsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccFlagsTest.java index ff2d62d..827b0a5 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccFlagsTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccFlagsTest.java @@ -73,7 +73,7 @@ public class GridCacheMvccFlagsTest extends GridCommonAbstractTest { UUID id = UUID.randomUUID(); - GridCacheVersion ver = new GridCacheVersion(1, 0, 0, 0, 0); + GridCacheVersion ver = new GridCacheVersion(1, 0, 0, 0); GridCacheMvccCandidate c = new GridCacheMvccCandidate( entry, @@ -114,7 +114,7 @@ public class GridCacheMvccFlagsTest extends GridCommonAbstractTest { UUID id = UUID.randomUUID(); - GridCacheVersion ver = new GridCacheVersion(1, 0, 0, 0, 0); + GridCacheVersion ver = new GridCacheVersion(1, 0, 0, 0); GridCacheMvccCandidate c = new GridCacheMvccCandidate( entry, http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccPartitionedSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccPartitionedSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccPartitionedSelfTest.java index 9da6ea6..ea0b986 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccPartitionedSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccPartitionedSelfTest.java @@ -991,7 +991,7 @@ public class GridCacheMvccPartitionedSelfTest extends GridCommonAbstractTest { * @return Version. */ private GridCacheVersion version(int order) { - return new GridCacheVersion(1, 0, order, order, 0); + return new GridCacheVersion(1, order, order, 0); } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccSelfTest.java index d352e26..ad50a40 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccSelfTest.java @@ -174,8 +174,8 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest { checkOrder(cands, ver1, ver5, ver3, ver2); entry.orderCompleted( - new GridCacheVersion(1, 0, 2, 0, 0), - Arrays.asList(new GridCacheVersion(1, 0, 3, 4, 0), ver2, new GridCacheVersion(1, 0, 5, 6, 0)), + new GridCacheVersion(1, 2, 0, 0), + Arrays.asList(new GridCacheVersion(1, 3, 4, 0), ver2, new GridCacheVersion(1, 5, 6, 0)), Collections.<GridCacheVersion>emptyList() ); @@ -1053,7 +1053,7 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest { entry.orderCompleted( ver2 /*local version.*/, - Arrays.asList(new GridCacheVersion(1, 0, 1, 2, 0), ver3, new GridCacheVersion(1, 0, 5, 6, 0)), + Arrays.asList(new GridCacheVersion(1, 1, 2, 0), ver3, new GridCacheVersion(1, 5, 6, 0)), Collections.<GridCacheVersion>emptyList() ); @@ -1619,7 +1619,7 @@ public class GridCacheMvccSelfTest extends GridCommonAbstractTest { * @return Version. */ private GridCacheVersion version(int order) { - return new GridCacheVersion(1, 0, order, order, 0); + return new GridCacheVersion(1, order, order, 0); } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java index e76ab40..821807f 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java @@ -52,7 +52,7 @@ public class GridCacheTestEntryEx extends GridMetadataAwareAdapter implements Gr private long ttl; /** Version. */ - private GridCacheVersion ver = new GridCacheVersion(0, 0, 0, 1, 0); + private GridCacheVersion ver = new GridCacheVersion(0, 0, 1, 0); /** Obsolete version. */ private GridCacheVersion obsoleteVer = ver; http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheVersionSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheVersionSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheVersionSelfTest.java index 8179dc5..475ccb5 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheVersionSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheVersionSelfTest.java @@ -79,7 +79,7 @@ public class GridCacheVersionSelfTest extends GridCommonAbstractTest { */ public void testMarshalling() throws Exception { GridCacheVersion ver = version(1, 1); - GridCacheVersionEx verEx = new GridCacheVersionEx(2, 2, 0, 0, ver); + GridCacheVersionEx verEx = new GridCacheVersionEx(2, 2, 0, ver); OptimizedMarshaller marsh = new OptimizedMarshaller(false); @@ -101,6 +101,6 @@ public class GridCacheVersionSelfTest extends GridCommonAbstractTest { * @return Cache version. */ private GridCacheVersion version(int nodeOrder, int drId) { - return new GridCacheVersion(0, 0, 0, nodeOrder, drId); + return new GridCacheVersion(0, 0, nodeOrder, drId); } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/version/CacheVersionedEntryAbstractTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/version/CacheVersionedEntryAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/version/CacheVersionedEntryAbstractTest.java index 37cf26d..d1c0f31 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/version/CacheVersionedEntryAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/version/CacheVersionedEntryAbstractTest.java @@ -155,7 +155,6 @@ public abstract class CacheVersionedEntryAbstractTest extends GridCacheAbstractS }); assert ver1.version().compareTo(ver2.version()) < 0; - assert ver1.updateTime() <= ver2.updateTime(); } /** @@ -165,7 +164,6 @@ public abstract class CacheVersionedEntryAbstractTest extends GridCacheAbstractS assertNotNull(entry); assertNotNull(entry.version()); - assert entry.updateTime() > 0; assertNotNull(entry.getKey()); assertNotNull(entry.getValue()); http://git-wip-us.apache.org/repos/asf/ignite/blob/9b02f81f/modules/core/src/test/java/org/apache/ignite/internal/processors/clock/GridTimeSyncProcessorSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/clock/GridTimeSyncProcessorSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/clock/GridTimeSyncProcessorSelfTest.java deleted file mode 100644 index f5ba07d..0000000 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/clock/GridTimeSyncProcessorSelfTest.java +++ /dev/null @@ -1,224 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ignite.internal.processors.clock; - -import java.util.NavigableMap; -import org.apache.ignite.Ignite; -import org.apache.ignite.configuration.IgniteConfiguration; -import org.apache.ignite.internal.GridKernalContextImpl; -import org.apache.ignite.internal.IgniteKernal; -import org.apache.ignite.internal.util.typedef.PA; -import org.apache.ignite.lifecycle.LifecycleBean; -import org.apache.ignite.lifecycle.LifecycleEventType; -import org.apache.ignite.resources.IgniteInstanceResource; -import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi; -import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder; -import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder; -import org.apache.ignite.testframework.GridTestUtils; -import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; - -/** - * Time sync processor self test. - */ -public class GridTimeSyncProcessorSelfTest extends GridCommonAbstractTest { - /** IP finder. */ - private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true); - - /** Number of grids in test. */ - public static final int GRID_CNT = 4; - - /** Starting grid index. */ - private int idx; - - /** {@inheritDoc} */ - @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception { - IgniteConfiguration cfg = super.getConfiguration(gridName); - - TcpDiscoverySpi discoSpi = new TcpDiscoverySpi(); - - discoSpi.setIpFinder(IP_FINDER); - - cfg.setDiscoverySpi(discoSpi); - - cfg.setLifecycleBeans(new TimeShiftLifecycleBean(idx * 2000)); - - idx++; - - return cfg; - } - - /** - * @throws Exception If failed. - */ - public void testTimeSync() throws Exception { - startGrids(GRID_CNT); - - try { - // Check coordinator time deltas. - final IgniteKernal kernal = (IgniteKernal)grid(0); - - // Wait for latest time sync history. - GridTestUtils.waitForCondition(new PA() { - @Override public boolean apply() { - NavigableMap<GridClockDeltaVersion, GridClockDeltaSnapshot> hist = kernal.context().clockSync() - .timeSyncHistory(); - - info("Checking time sync history: " + hist); - - for (GridClockDeltaVersion ver : hist.keySet()) { - if (ver.topologyVersion() == 4) - return true; - } - - return false; - } - }, 10000); - - NavigableMap<GridClockDeltaVersion, GridClockDeltaSnapshot> history = kernal.context().clockSync() - .timeSyncHistory(); - - GridClockDeltaSnapshot snap = history.lastEntry().getValue(); - - assertEquals(3, snap.deltas().size()); - - for (int i = 1; i < GRID_CNT; i++) { - Long delta = snap.deltas().get(grid(i).localNode().id()); - - // Give 300ms range for test? - int idealDelta = - i * 2000; - - int threshold = 100; - - assertTrue("Invalid time delta for node [expected=" + idealDelta + ", " + - "actual=" + delta + ", threshold=" + threshold, - delta <= idealDelta + threshold && delta >= idealDelta - threshold); - } - } - finally { - stopAllGrids(); - } - } - - /** - * @throws Exception If failed. - */ - public void testTimeSyncChangeCoordinator() throws Exception { - startGrids(GRID_CNT); - - try { - for (int i = 0; i < GRID_CNT; i++) { - // Not coordinator now. - stopGrid(i); - - startGrid(i); - } - - // Check coordinator time deltas. - final IgniteKernal kernal = (IgniteKernal)grid(0); - - assertEquals(6, kernal.localNode().order()); - - // Wait for latest time sync history. - GridTestUtils.waitForCondition(new PA() { - @Override public boolean apply() { - NavigableMap<GridClockDeltaVersion, GridClockDeltaSnapshot> hist = kernal.context().clockSync() - .timeSyncHistory(); - - info("Checking time sync history: " + hist); - - for (GridClockDeltaVersion ver : hist.keySet()) { - if (ver.topologyVersion() == 12) - return true; - } - - return false; - } - }, 10000); - - NavigableMap<GridClockDeltaVersion, GridClockDeltaSnapshot> history = kernal.context().clockSync() - .timeSyncHistory(); - - GridClockDeltaSnapshot snap = history.lastEntry().getValue(); - - assertEquals(3, snap.deltas().size()); - - for (int i = 1; i < GRID_CNT; i++) { - Long delta = snap.deltas().get(grid(i).localNode().id()); - - // Give 300ms range for test? - int idealDelta = - i * 2000; - - int threshold = 100; - - assertTrue("Invalid time delta for node [expected=" + idealDelta + ", " + - "actual=" + delta + ", threshold=" + threshold, - delta <= idealDelta + threshold && delta >= idealDelta - threshold); - } - } - finally { - stopAllGrids(); - } - } - - /** - * Time bean that sets shifted time source to context. - */ - private static class TimeShiftLifecycleBean implements LifecycleBean { - /** Injected grid. */ - @IgniteInstanceResource - private Ignite g; - - /** Time delta. */ - private int delta; - - /** - * Constructs lifecycle bean. - * - * @param delta Time delta. - */ - private TimeShiftLifecycleBean(int delta) { - this.delta = delta; - } - - /** {@inheritDoc} */ - @Override public void onLifecycleEvent(LifecycleEventType evt) { - if (evt == LifecycleEventType.BEFORE_NODE_START) - ((GridKernalContextImpl)((IgniteKernal)g).context()).timeSource(new TimeShiftClockSource(delta)); - } - } - - /** - * Time shift time source. - */ - private static class TimeShiftClockSource implements GridClockSource { - /** Time shift delta. */ - private int delta; - - /** - * @param delta Time shift delta. - */ - private TimeShiftClockSource(int delta) { - this.delta = delta; - } - - /** {@inheritDoc} */ - @Override public long currentTimeMillis() { - return System.currentTimeMillis() + delta; - } - } -} \ No newline at end of file
