Hello Alexey, I mean 'local partition map'. I am trying to investigate the issue, and in fact, I need some clarification about the ticket. From my understanding, It is necessary to refresh the partitions (refreshPartitions()) only if the local partition is changed, or if a transaction has been made on it. So if I understand I need to add logic and control in the OnTimeOut method of the inner class . Is it correct ?
/** {@inheritDoc} */ @Override public void onTimeout() { cctx.kernalContext().closure().runLocalSafe(new Runnable() { @Override public void run() { if (!busyLock.readLock().tryLock()) return; try { // onTimeOut we refresh always the partitions if (started.compareAndSet(false, true)) refreshPartitions(); } finally { busyLock.readLock().unlock(); cctx.time().removeTimeoutObject(ResendTimeoutObject.this); pendingResend.compareAndSet(ResendTimeoutObject.this, null); } } }); } Thank you, Regards, Gianfranco 2015-09-01 3:30 GMT+02:00 Dmitriy Setrakyan <dsetrak...@apache.org>: > On Mon, Aug 31, 2015 at 5:57 PM, Alexey Goncharuk < > alexey.goncha...@gmail.com> wrote: > > > As far as I understood Yakov's point, even this message indicating that > no > > change happened is redundant because we have message delivery guarantees > on > > communication level and no messages can be lost. If a node is waiting > for a > > message and receives a message indicating that no change had happened, I > am > > not even sure how this node should react: it means that the message with > an > > important update somehow was not received (a bug in the code?) and the > next > > message indicates that no updates after the lost message were made. > > > > I still would wait for a No-Change empty partition exchange message, rather > than have no message at all (and wait for a timeout?). > > Yakov, can you please chime in and let us all know what you meant by that > ticket? > > > > > > 2015-08-31 17:33 GMT-07:00 Dmitriy Setrakyan <dsetrak...@apache.org>: > > > > > On Mon, Aug 31, 2015 at 4:58 PM, Alexey Goncharuk < > > > alexey.goncha...@gmail.com> wrote: > > > > > > > Gianfranco, > > > > > > > > What do you mean by 'local cache' here? > > > > > > > > If you are talking about the local partition map, I do not think we > > have > > > > such a method. The background exchange that is described in the > ticket > > is > > > > handled in controlled by the ResendTimeoutObject inner class in > > > > GridCachePartitionExchangeManager. I cannot recall any cases when > this > > > > exchange would be needed from the top of my head, but it looks like > you > > > > need to do some investigation and code digging to check whether the > > > > background exchange can be indeed safely removed :) > > > > > > > > > > Alexey, I actually think that this ticket is named wrongly. After > looking > > > at the description, it seems that Yakov is suggesting that we do not > send > > > the exchange message if there are no changes to the exchange. Perhaps, > we > > > should be still sending something indicating that no change happened, > > > otherwise, other nodes will hang forever waiting for the exchange to > > > complete. > > > > > > Am I wrong in my understanding? > > > > > > > > > > > > > > > > > 2015-08-28 5:58 GMT-07:00 Gianfranco Murador <mura...@apache.org>: > > > > > > > > > Hi Igniters, > > > > > I 'm starting to implement this patch: > > > > > Can you tell me if there is already a convenient method to see if > the > > > > local > > > > > cache was updated last time interval ? > > > > > Regards, Gianfranco > > > > > > > > > > > > > > > -- > > > > > Gianfranco Murador > > > > > Igniter and Software Engineer. > > > > > > > > > > > > > > >