ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vyacheslav Daradur <daradu...@gmail.com>
Subject Re: Services hot redeployment
Date Mon, 04 Feb 2019 22:08:16 GMT
Denis, thank you for driving of Service Grid's development!

Sounds like a good plan. Does it mean that a user will have to
register a classloader for service's class explicitly in case of using
the feature?

On Mon, Feb 4, 2019 at 4:38 PM Denis Mekhanikov <dmekhanikov@gmail.com> wrote:
>
> Igniters,
>
> I'd like to start a dedicated thread for discussion of the design of
> services hot redeployment. The previous service design discussion can be
> found in the following thread: [1]
>
> Currently adding a new service or implementation change of an existing one
> requires restarting the hosting nodes. Service instances are deserialized
> using an application class loader, so the service class should be present
> on the classpath of the node. The only way to change the set of available
> classes is to restart the node. Potentially the whole cluster restart can
> be required. This is a major drawback in the current design. This problem
> should be addressed first.
>
> At the same time this problem can be resolved by relatively simple code
> changes. We need to change the way services are deserialized, and use a
> mechanism, that allows dynamic class changes. Deployment SPI [2] seems to
> be suitable for this. We can apply the same approach, which is used for
> tasks, so services will become dynamically modifiable.
>
> With this approach user will still need to perform a cancel-deploy routine
> for the changed service. But even with that the usability improvement will
> be huge. We'll think about service availability improvement after the first
> part is finished.
>
> Thoughts?
>
> [1]
> http://apache-ignite-developers.2346864.n4.nabble.com/Service-versioning-td20858.html
> [2] https://apacheignite.readme.io/docs/deployment-spi#deploymentspi
>
> Denis



--
Best Regards, Vyacheslav D.

Mime
View raw message