Maxim, About SER_VER_COMPARATOR. You can use code branch that executes when times are equal:
int nodeOrder1 = ver1.nodeOrder(); int nodeOrder2 = ver2.nodeOrder(); if (nodeOrder1 == nodeOrder2) { long order1 = ver1.order(); long order2 = ver2.order(); assert order1 != order2; return order1 > order2 ? 1 : -1; } else return nodeOrder1 > nodeOrder2 ? 1 : -1; On Mon, Mar 6, 2017 at 6:32 PM, Alexey Goncharuk <alexey.goncha...@gmail.com> wrote: > Maxim, > > Global time comparison is only needed for CLOCK mode, so you should modify > the code as if ignoreTime is always true. > > 2017-03-06 18:13 GMT+03:00 Kozlov Maxim <dreamx....@gmail.com>: > >> ok, >> in GridCacheAtomicVersionComparator class, method >> compare(GridCacheVersion one, GridCacheVersion other, boolean ignoreTime) >> if (globalTime == otherGlobalTime || ignoreTime) { // => if (ignoreTime) { >> ..... >> } >> else >> return globalTime > otherGlobalTime ? 1 : -1; // => return -1; >> >> and, >> GridCacheMvcc class, >> SER_VER_COMPARATOR is comparator by globalTime var. His remove and remove >> compareSerializableVersion? >> >> >> >> >> >> >> >> > 6 марта 2017 г., в 16:51, Andrey Gura <ag...@apache.org> написал(а): >> > >> > Maxim, >> > >> > updateTime() method should be removed. >> > >> > On Mon, Mar 6, 2017 at 12:12 PM, Kozlov Maxim <dreamx....@gmail.com> >> wrote: >> >> In CacheEntryImplEx class use ver.globalTime() in >> >> >> >> @Override public long updateTime() { >> >> return ver.globalTime(); >> >> } >> >> >> >> Than is better to replace this variable? >> >> >> >> >> >>> 3 марта 2017 г., в 19:19, Andrey Gura <ag...@apache.org> написал(а): >> >>> >> >>> Maxim, >> >>> >> >>> I think the next implementation will be good enough: >> >>> >> >>> public IgniteUuid asGridUuid() { >> >>> return new IgniteUuid(new UUID(nodeOrderDrId, topVer), order); >> >>> } >> >>> >> >>> >> >>> Serialization/deserialization of GridCacheVersion.globalTime field >> >>> should be removed. >> >>> >> >>> On Fri, Mar 3, 2017 at 5:57 PM, Kozlov Maxim <dreamx....@gmail.com> >> wrote: >> >>>> Alexey, >> >>>> >> >>>> public IgniteUuid asGridUuid() { >> >>>> return new IgniteUuid(new UUID(nodeOrderDrId << 32, topVer << 32), >> order); >> >>>> } >> >>>> >> >>>> So you want to change or not? >> >>>> >> >>>> And >> >>>> - GridCacheVersion.writeTo(ByteBuffer buf, MessageWriter writer) >> >>>> - GridCacheVersion.readFrom(ByteBuffer buf, MessageReader reader) >> >>>> >> >>>> use globalTime variable, must be removed case 0: (in both methods) or >> replace globalTime? >> >>>> >> >>>> >> >>>> >> >>>>> 2 марта 2017 г., в 16:58, Andrey Gura <ag...@apache.org> написал(а): >> >>>>> >> >>>>> +1 >> >>>>> >> >>>>> Removing of asGridUuid() method can lead to much code changes but it >> >>>>> should be avoided on this step. >> >>>>> >> >>>>> On Thu, Mar 2, 2017 at 4:56 PM, Alexey Goncharuk >> >>>>> <alexey.goncha...@gmail.com> wrote: >> >>>>>> Maxim, >> >>>>>> >> >>>>>> I see several usages of asGridUuid() method, so I would just remove >> global >> >>>>>> time and use nodeOrderDrId and topVer as different parts of high >> and low >> >>>>>> parts of the embedded UUID. >> >>>>>> >> >>>>>> --AG >> >>>>>> >> >>>>>> 2017-03-02 12:39 GMT+03:00 Kozlov Maxim <dreamx....@gmail.com>: >> >>>>>> >> >>>>>>> Andrey, >> >>>>>>> >> >>>>>>> When removed parameter globalTime, in method: >> >>>>>>> >> >>>>>>> public IgniteUuid asGridUuid() { >> >>>>>>> return new IgniteUuid(new UUID(((long)topVer << 32) | >> nodeOrderDrId, >> >>>>>>> globalTime), order); >> >>>>>>> } >> >>>>>>> >> >>>>>>> globalTime parameter replaced by something or remove this method? >> >>>>>>> >> >>>>>>> >> >>>>>>>> 2 марта 2017 г., в 12:07, Kozlov Maxim <dreamx....@gmail.com> >> >>>>>>> написал(а): >> >>>>>>>> >> >>>>>>>> Andrey, >> >>>>>>>> >> >>>>>>>> Please review PR again. >> >>>>>>>> >> >>>>>>>>> 1 марта 2017 г., в 18:47, Andrey Gura <ag...@apache.org> >> написал(а): >> >>>>>>>>> >> >>>>>>>>> I think that it is ok. >> >>>>>>>>> >> >>>>>>>>> On Wed, Mar 1, 2017 at 6:34 PM, Kozlov Maxim < >> dreamx....@gmail.com> >> >>>>>>> wrote: >> >>>>>>>>>> Ok. What do you say for the rest? >> >>>>>>>>>> >> >>>>>>>>>>> 1 марта 2017 г., в 18:15, Andrey Gura <ag...@apache.org> >> написал(а): >> >>>>>>>>>>> >> >>>>>>>>>>> Maxim, >> >>>>>>>>>>> >> >>>>>>>>>>> I think that during renaming we should not lose "Atomic" >> prefix. >> >>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>>>> On Wed, Mar 1, 2017 at 5:16 PM, Kozlov Maxim < >> dreamx....@gmail.com> >> >>>>>>> wrote: >> >>>>>>>>>>>> Andrey, ok. >> >>>>>>>>>>>> >> >>>>>>>>>>>> Also remove in the modules/platform/dotnet >> >>>>>>> CacheAtomicWriteOrderMode.cs? >> >>>>>>>>>>>> >> >>>>>>>>>>>> Rename classes: >> >>>>>>>>>>>> >> >>>>>>>>>>>> GridCacheAtomicNearCacheSelfTest.startGrids -> >> >>>>>>> GridCacheAtomicNearCacheSelfTest.startGridsLocal (commit) >> >>>>>>>>>>>> IgniteCacheAtomicPrimaryWriteOrderWithStoreInvokeTest -> >> >>>>>>> IgniteCacheWithStoreInvokeTest >> >>>>>>>>>>>> IgniteCacheAtomicPrimaryWriteOrderInvokeTest -> >> >>>>>>> IgniteCacheInvokeTest >> >>>>>>>>>>>> IgniteCacheAtomicPrimaryWriteOrderNearEnabledStoreValueTest >> -> >> >>>>>>> IgniteCacheNearEnabledStoreValueTest >> >>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrderNearRemoveFailureTest -> >> >>>>>>> GridCacheNearRemoveFailureTest >> >>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrderRemoveFailureTest -> >> >>>>>>> GridCacheRemoveFailureTest >> >>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrderFailoverSelfTest -> >> >>>>>>> GridCacheFailoverSelfTest >> >>>>>>>>>>>> GridCacheValueConsistencyAtomicPrimaryWriteOrderNearEnabledS >> elfTest >> >>>>>>> -> GridCacheValueConsistencyNearEnabledSelfTest >> >>>>>>>>>>>> CacheContinuousQueryAsyncFailoverAtomicPrimaryWriteOrderSelfTest >> -> >> >>>>>>> CacheContinuousQueryAsyncFailoverSelfTest >> >>>>>>>>>>>> CacheContinuousQueryFailoverAtomicPrimaryWriteOrderSelfTest >> -> >> >>>>>>> CacheContinuousQueryFailoverSelfTest >> >>>>>>>>>>>> GridCacheAtomicNearCacheSelfTest.testNoBackupsPrimaryWriteOrder >> -> >> >>>>>>> GridCacheAtomicNearCacheSelfTest.testNoBackups >> >>>>>>>>>>>> GridCacheAtomicNearCacheSelfTest. >> testWithBackupsPrimaryWriteOrder >> >>>>>>> -> GridCacheAtomicNearCacheSelfTest.testWithBackups >> >>>>>>>>>>>> >> >>>>>>>>>>>> Remove classes: >> >>>>>>>>>>>> >> >>>>>>>>>>>> IgniteCacheAtomicPrimaryWriteOrderStoreValueTest >> >>>>>>>>>>>> GridCacheReplicatedAtomicPrimaryWriteOrderMultiNodeFullApiSe >> lfTest >> >>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrderMultiNodeFullApiSelfTest >> >>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrderMultiNodeP2PDisabledFullApiS >> elfTest >> >>>>>>>>>>>> GridCacheAtomicPrimaryWrityOrderOffHeapMultiNodeFullApiSelfT >> est >> >>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrderOffHeapFullApiSelfTest >> >>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrderFullApiSelfTest >> >>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrderReloadAllSelfTest >> >>>>>>>>>>>> IgniteCachePutRetryAtomicPrimaryWriteOrderSelfTest >> >>>>>>>>>>>> GridCacheValueConsistencyAtomicPrimaryWriteOrderSelfTest >> >>>>>>>>>>>> IgniteCacheAtomicPrimaryWriteOrderExpiryPolicyTest >> >>>>>>>>>>>> >> >>>>>>>>>>>> ok? :) >> >>>>>>>>>>>> >> >>>>>>>>>>>>> 1 марта 2017 г., в 2:04, Andrey Gura <ag...@apache.org> >> написал(а): >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> No, it should be removed. If somebody use entry last update >> time >> >>>>>>> (e.g. >> >>>>>>>>>>>>> for conflict resolving) they should store this time as entry >> field. >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> On Wed, Mar 1, 2017 at 12:57 AM, Dmitriy Setrakyan >> >>>>>>>>>>>>> <dsetrak...@apache.org> wrote: >> >>>>>>>>>>>>>> Do we still need GridClockSyncProcessor? >> >>>>>>>>>>>>>> >> >>>>>>>>>>>>>> On Tue, Feb 28, 2017 at 5:26 AM, Andrey Gura < >> ag...@apache.org> >> >>>>>>> wrote: >> >>>>>>>>>>>>>> >> >>>>>>>>>>>>>>> Maxim, >> >>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>> Yes, this setting doesn't make sense anymore. So we need >> remove >> >>>>>>> all >> >>>>>>>>>>>>>>> related methods. >> >>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>> Also there is component called GridClockSyncProcessor that >> also >> >>>>>>> should >> >>>>>>>>>>>>>>> be removed. It will lead to removing globalTime field from >> >>>>>>>>>>>>>>> GridCacheVersion class and some related methods. >> >>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>> On Tue, Feb 28, 2017 at 3:21 PM, Kozlov Maxim < >> >>>>>>> dreamx....@gmail.com> >> >>>>>>>>>>>>>>> wrote: >> >>>>>>>>>>>>>>>> Valentin, >> >>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>> Then there is no need for setting CacheConfiguration. >> >>>>>>> atomicWriteOrderMode. >> >>>>>>>>>>>>>>> What do you think, remove it and and related methods? >> >>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>> 28 февр. 2017 г., в 2:49, Valentin Kulichenko < >> >>>>>>>>>>>>>>> valentin.kuliche...@gmail.com> написал(а): >> >>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>> Hi Max, >> >>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>> In case we remove the CLOCK mode, I think we should >> remove the >> >>>>>>> enum >> >>>>>>>>>>>>>>> too, as >> >>>>>>>>>>>>>>>>> well as configuration properties and other code using >> this >> >>>>>>> enum. Having >> >>>>>>>>>>>>>>>>> enum with one value doesn't make sense to me. >> >>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>> -Val >> >>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>> On Mon, Feb 27, 2017 at 5:09 AM, Kozlov Maxim < >> >>>>>>> dreamx....@gmail.com> >> >>>>>>>>>>>>>>> wrote: >> >>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>>> Hi Igniters, >> >>>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>>> After remove CLOCK mode, CacheAtomicWriteOrderMode enum >> >>>>>>> contains now >> >>>>>>>>>>>>>>> only >> >>>>>>>>>>>>>>>>>> one value PRIMARY. Andrey Gura, proposition remove >> >>>>>>>>>>>>>>>>>> CacheAtomicWriteOrderMode enum. Will there be something >> >>>>>>> special for >> >>>>>>>>>>>>>>> this >> >>>>>>>>>>>>>>>>>> purpose is enum? >> >>>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>>> jira: https://issues.apache.org/jira/browse/IGNITE-4587 >> < >> >>>>>>>>>>>>>>>>>> https://issues.apache.org/jira/browse/IGNITE-4587> >> >>>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>>> -- >> >>>>>>>>>>>>>>>>>> Best Regards, >> >>>>>>>>>>>>>>>>>> Max K. >> >>>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>> -- >> >>>>>>>>>>>>>>>> Best Regards, >> >>>>>>>>>>>>>>>> Max K. >> >>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>> >> >>>>>>>>>>>> >> >>>>>>>>>>>> -- >> >>>>>>>>>>>> Best Regards, >> >>>>>>>>>>>> Max K. >> >>>>>>>>>>>> >> >>>>>>>>>>>> >> >>>>>>>>>>>> >> >>>>>>>>>>>> >> >>>>>>>>>> >> >>>>>>>>>> -- >> >>>>>>>>>> Best Regards, >> >>>>>>>>>> Max K. >> >>>>>>>>>> >> >>>>>>>>>> >> >>>>>>>>>> >> >>>>>>>>>> >> >>>>>>>> >> >>>>>>>> -- >> >>>>>>>> Best Regards, >> >>>>>>>> Max K. >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> >> >>>>>>> >> >>>>>>> -- >> >>>>>>> Best Regards, >> >>>>>>> Max K. >> >>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>>>> >> >>>> >> >>>> -- >> >>>> Best Regards, >> >>>> Max K. >> >>>> >> >>>> >> >>>> >> >>>> >> >> >> >> -- >> >> Best Regards, >> >> Max K. >> >> >> >> >> >> >> >> >> >> -- >> Best Regards, >> Max K. >> >> >> >> >>