ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexey Kuznetsov <akuznet...@apache.org>
Subject Re: Remove CacheAtomicWriteOrderMode.CLOCK mode.
Date Mon, 13 Mar 2017 11:35:21 GMT
I will also take a  look for Web Console changes tomorrow.

On Fri, Mar 10, 2017 at 5:00 PM, Andrey Gura <agura@apache.org> wrote:

> Maxim,
>
> I'll take a look today.
>
> 10 марта 2017 г. 11:06 AM пользователь "Kozlov Maxim" <
> dreamx.max@gmail.com>
> написал:
>
> > Andrey, Alexey, please review
> > PR - https://github.com/apache/ignite/pull/1521 <
> > https://github.com/apache/ignite/pull/1521>
> > tests - http://ci.ignite.apache.org/viewType.html?buildTypeId=
> > IgniteTests_RunAll&branch_IgniteTests=pull%2F1521%
> > 2Fhead&tab=buildTypeStatusDiv <http://ci.ignite.apache.org/
> > viewType.html?buildTypeId=IgniteTests_RunAll&branch_
> > IgniteTests=pull/1521/head&tab=buildTypeStatusDiv>
> >
> > > 7 марта 2017 г., в 14:15, Andrey Gura <agura@apache.org> написал(а):
> > >
> > > Maxim,
> > >
> > > all GridClockSyncProcessor related code should be remove (objects,
> > > messages, etc)
> > >
> > > On Tue, Mar 7, 2017 at 12:23 PM, Kozlov Maxim <dreamx.max@gmail.com>
> > wrote:
> > >> Andrey, or better remove GridTimeSyncProcessorSelfTest class?
> > >>
> > >>> 7 марта 2017 г., в 12:21, Kozlov Maxim <dreamx.max@gmail.com>
> > написал(а):
> > >>>
> > >>> Andrey, in GridTimeSyncProcessorSelfTest class methods:
> testTimeSync()
> > and testTimeSyncChangeCoordinator() also removed?
> > >>>
> > >>>
> > >>>> 6 марта 2017 г., в 18:42, Andrey Gura <agura@apache.org>
> написал(а):
> > >>>>
> > >>>> 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
> > >>>>>>>>>>>>>>>>>> IgniteCacheAtomicPrimaryWriteO
> > rderNearEnabledStoreValueTest
> > >>>>>> ->
> > >>>>>>>>>>>>> IgniteCacheNearEnabledStoreValueTest
> > >>>>>>>>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrderNearRemoveFailureTest
> > ->
> > >>>>>>>>>>>>> GridCacheNearRemoveFailureTest
> > >>>>>>>>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrderRemoveFailureTest
->
> > >>>>>>>>>>>>> GridCacheRemoveFailureTest
> > >>>>>>>>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrderFailoverSelfTest
->
> > >>>>>>>>>>>>> GridCacheFailoverSelfTest
> > >>>>>>>>>>>>>>>>>> GridCacheValueConsistencyAtomi
> > cPrimaryWriteOrderNearEnabledS
> > >>>>>> elfTest
> > >>>>>>>>>>>>> -> GridCacheValueConsistencyNearEnabledSelfTest
> > >>>>>>>>>>>>>>>>>> CacheContinuousQueryAsyncFailo
> > verAtomicPrimaryWriteOrderSelfTest
> > >>>>>> ->
> > >>>>>>>>>>>>> CacheContinuousQueryAsyncFailoverSelfTest
> > >>>>>>>>>>>>>>>>>> CacheContinuousQueryFailoverAt
> > omicPrimaryWriteOrderSelfTest
> > >>>>>> ->
> > >>>>>>>>>>>>> CacheContinuousQueryFailoverSelfTest
> > >>>>>>>>>>>>>>>>>> GridCacheAtomicNearCacheSelfTest.
> > testNoBackupsPrimaryWriteOrder
> > >>>>>> ->
> > >>>>>>>>>>>>> GridCacheAtomicNearCacheSelfTest.testNoBackups
> > >>>>>>>>>>>>>>>>>> GridCacheAtomicNearCacheSelfTest.
> > >>>>>> testWithBackupsPrimaryWriteOrder
> > >>>>>>>>>>>>> -> GridCacheAtomicNearCacheSelfTest.testWithBackups
> > >>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>> Remove
classes:
> > >>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>> IgniteCacheAtomicPrimaryWriteOrderStoreValueTest
> > >>>>>>>>>>>>>>>>>> GridCacheReplicatedAtomicPrima
> > ryWriteOrderMultiNodeFullApiSe
> > >>>>>> lfTest
> > >>>>>>>>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrd
> > erMultiNodeFullApiSelfTest
> > >>>>>>>>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrd
> > erMultiNodeP2PDisabledFullApiS
> > >>>>>> elfTest
> > >>>>>>>>>>>>>>>>>> GridCacheAtomicPrimaryWrityOrd
> > erOffHeapMultiNodeFullApiSelfT
> > >>>>>> est
> > >>>>>>>>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrd
> erOffHeapFullApiSelfTest
> > >>>>>>>>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrderFullApiSelfTest
> > >>>>>>>>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrderReloadAllSelfTest
> > >>>>>>>>>>>>>>>>>> IgniteCachePutRetryAtomicPrimaryWriteOrderSelfTest
> > >>>>>>>>>>>>>>>>>> GridCacheValueConsistencyAtomi
> > cPrimaryWriteOrderSelfTest
> > >>>>>>>>>>>>>>>>>> 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.
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>
> > >>> --
> > >>> Best Regards,
> > >>> Max K.
> > >>>
> > >>>
> > >>>
> > >>>
> > >>
> > >> --
> > >> Best Regards,
> > >> Max K.
> > >>
> > >>
> > >>
> > >>
> >
> > --
> > Best Regards,
> > Max K.
> >
> >
> >
> >
> >
>



-- 
Alexey Kuznetsov

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message