There are at least a couple more mutable messages:
StartRoutineDiscoveryMessage and SchemaProposeDiscoveryMessage.

I agree that here that making all messages immutable are highly
desired (e.g. it will allow implementation of new discovery
protocols). But so far I do not understand why marker interface is a
better approach. Pavel, could you please elaborate?

чт, 24 окт. 2019 г. в 17:55, Pavel Kovalenko <jokse...@gmail.com>:
>
> Hi Nikita,
>
> 1. As I can understand, this functionality is needed if a custom message is
> needed to be processed only on the coordinator node. I'm not following for
> what purposes it was implemented and I see the real usage only in tests.
> As far as this functionality is not used in production code, I suggest to
> remove it.
> 2. This method needs if we want to perform a message mutation during
> sending it over the ring. Each node after message receive can mutate its
> state and resend to another node. I know only 2 mechanisms where this
> functionality is needed:
> binary metadata propagation and cluster-wide metrics collecting. From my
> side of view, this is poor approach and we should avoid discovery messages
> mutation and use only immutable messages. It can be removed from the custom
> message interface and marker interface should be introduced instead.
>
> чт, 24 окт. 2019 г. в 16:35, Nikita Amelchev <nsamelc...@gmail.com>:
>
> > Hi, Igniters.
> >
> > The discovery custom message interface has two methods the use of
> > which is not clear to developers:
> >
> > 1. The stopProcess() method. Currently, it works only if the zookeeper
> > discovery configured. It doesn't work in TcpDiscoverySpi. I did not
> > find any usages of this method except tests. I suggest to remove it
> > from the discovery custom message interface.
> >
> > 2. The isMutable() method. It works in TcpDiscoverySpi but not in the
> > zookeeper SPI. Using this method is opaque to the developer when he
> > wants to add new features to the project. In general, it cannot be
> > used because may not be supported depending on the configuration.
> > Perhaps some functionality that uses it is not working correctly with
> > zookeeper configured. It seems we should avoid it in the custom
> > message interface too.
> >
> > WDYT?
> >
> > --
> > Best wishes,
> > Amelchev Nikita
> >



-- 
Best regards,
Ivan Pavlukhin

Reply via email to