ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrey Gura <ag...@apache.org>
Subject Re: Remove CacheAtomicWriteOrderMode.CLOCK mode.
Date Mon, 06 Mar 2017 15:42:13 GMT
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.goncharuk@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.max@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 <agura@apache.org> написал(а):
>> >
>> > Maxim,
>> >
>> > updateTime() method should be removed.
>> >
>> > On Mon, Mar 6, 2017 at 12:12 PM, Kozlov Maxim <dreamx.max@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 <agura@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.max@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 <agura@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.goncharuk@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.max@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.max@gmail.com>
>> >>>>>>> написал(а):
>> >>>>>>>>
>> >>>>>>>> Andrey,
>> >>>>>>>>
>> >>>>>>>> Please review PR again.
>> >>>>>>>>
>> >>>>>>>>> 1 марта 2017 г., в 18:47, Andrey Gura
<agura@apache.org>
>> написал(а):
>> >>>>>>>>>
>> >>>>>>>>> I think that it is ok.
>> >>>>>>>>>
>> >>>>>>>>> On Wed, Mar 1, 2017 at 6:34 PM, Kozlov Maxim
<
>> dreamx.max@gmail.com>
>> >>>>>>> wrote:
>> >>>>>>>>>> Ok. What do you say for the rest?
>> >>>>>>>>>>
>> >>>>>>>>>>> 1 марта 2017 г., в 18:15, Andrey
Gura <agura@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.max@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 <agura@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
>> >>>>>>>>>>>>> <dsetrakyan@apache.org>
wrote:
>> >>>>>>>>>>>>>> Do we still need GridClockSyncProcessor?
>> >>>>>>>>>>>>>>
>> >>>>>>>>>>>>>> On Tue, Feb 28, 2017 at
5:26 AM, Andrey Gura <
>> agura@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.max@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.kulichenko@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.max@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.
>>
>>
>>
>>
>>

Mime
View raw message