[ 
https://issues.apache.org/jira/browse/IGNITE-6069?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16426036#comment-16426036
 ] 

Dmitriy Setrakyan commented on IGNITE-6069:
-------------------------------------------

I do not think it makes sense to have multiple versions of service operate at 
the same time. The right approach is to send all new requests to the new 
instance and undeploy the old service instance when it finished serving all 
existing requests.

This will create a small temporary window when the new and the old versions are 
both active, but I think it is a correct approach from the user standpoint.

Also, it seems that services will have to be deployed within their own 
class-loader, to avoid class conflicts. We use a similar approach for the 
compute tasks.

> Service versioning
> ------------------
>
>                 Key: IGNITE-6069
>                 URL: https://issues.apache.org/jira/browse/IGNITE-6069
>             Project: Ignite
>          Issue Type: New Feature
>          Components: general
>    Affects Versions: 2.1
>            Reporter: Ilya Lantukh
>            Assignee: Ilya Lantukh
>            Priority: Major
>
> Make services upgradable -again-. 
> Main points:
> - compute binary type ID by (classname + version)
> - use serialVersionUuid as version ( ?)
> - all service instances with the same name must have the same version
> - make ServiceProxy aware of versions and upgrade process, pause requests 
> while service is being upgraded
> - extend Service interface (UpgradableService?) - add ability to collect 
> state of previous version before start.
> Once the feature is implemented, it has to be documented extensively. The 
> ticket must not be closed until this happens.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to