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 <dmekhani...@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.