Alexey, thank you for the advice!

On Thu, Oct 4, 2018 at 1:25 PM Alexey Goncharuk
<alexey.goncha...@gmail.com> wrote:
>
> Vyacheslav,
>
> I think it would be more correct to capture all required state that will be
> further used in a custom object and use it later in service processor.
> Nullifying the field is an explicit action that was taken to reduce memory
> consumption on server nodes, so we cannot simply drop it. Another solution
> is reference counting and nullifying the field only after all parties
> finished processing the message, but it looks like an overengineering to me.
>
> ср, 3 окт. 2018 г. в 15:00, Vyacheslav Daradur <daradu...@gmail.com>:
>
> > Alexey, thank you for the answer. I'd ask your advice about the
> > following question:
> >
> > New Service Grid implementation listens to messages:
> > * ChangeGlobalStateMessage - to perform activation/deactivation actions;
> > * DynamicCacheChangeBatch - to handle caches stopping to undeploy
> > related affinity services;
> > * CacheAffinityChangeMessage - to recalculate assignments for affinity
> > services in case of late affinity.
> >
> > It's important to handle these messages in order from disco-spi that
> > means SG is storing them in own exchange queue to process.
> > In some cases, PME may nullify this message earlier than they will be
> > processed by SG.
> >
> > Could I exclude these messages from PME nullifying?
> >
> > On Wed, Oct 3, 2018 at 11:26 AM Alexey Goncharuk
> > <alexey.goncha...@gmail.com> wrote:
> > >
> > > Vyacheslav,
> > >
> > > Thanks for investigating this. User code should never listen to system
> > > custom events because this is an internal API and it's a subject to
> > change.
> > > If there is anything a user interested in, the corresponding public event
> > > should be added.
> > >
> > > Nullifying the event in this case looks ok for me.
> > >
> > > вс, 30 сент. 2018 г. в 11:45, Vyacheslav Daradur <daradu...@gmail.com>:
> > >
> > > > I think that I understand a reason for doing this:
> > > > The most custom events which handle in
> > > > 'GridDhtPartitionsExchangeFuture' are using only in PME flow and
> > > > reason is release them for GC as soon as possible.
> > > >
> > > > But there are some other systems which can listen to the same events,
> > > > for example, to perform activation/deactivation actions them should
> > > > handle [ChangeGlobalStateMessage, ChangeGlobalStateFinishMessage]
> > > > which can be reset to 'null' by PME earlier then they will be handled
> > > > by other systems.
> > > >
> > > > I'd suggest do not reset to 'null' custom messages in
> > > > 'DiscoveryCustomEvent ' (at least without properly logic from the
> > > > discovery-spi side).
> > > >
> > > > Thoughts?
> > > >
> > > >
> > > >
> > > > On Sat, Sep 29, 2018 at 11:43 PM Vyacheslav Daradur <
> > daradu...@gmail.com>
> > > > wrote:
> > > > >
> > > > > Hi Igniters!
> > > > >
> > > > > I think I found an illegal behavior in
> > > > > GridDhtPartitionsExchangeFuture#onDone, the following code is called
> > > > > here:
> > > > > ((DiscoveryCustomEvent)firstDiscoEvt).customMessage(null);
> > > > >
> > > > > That means a global instance of 'DiscoveryCustomEvent' is being
> > > > > mutated outside discovery-spi infrastructure. It also means that
> > > > > discovery listeners receive 'DiscoveryCustomEvent' with 'null' field
> > > > > instead of 'CustomMessage' which they may rely on.
> > > > >
> > > > > Could someone confirm if it is wrong behavior and should be fixed?
> > > > >
> > > > > --
> > > > > Best Regards, Vyacheslav D.
> > > >
> > > >
> > > >
> > > > --
> > > > Best Regards, Vyacheslav D.
> > > >
> >
> >
> >
> > --
> > Best Regards, Vyacheslav D.
> >



-- 
Best Regards, Vyacheslav D.

Reply via email to