Ilya,

Every Service Grid user will welcome this feature. Fully for it.

Mentioned in the ticket that it has to be documented before the ticket is 
closed.

—
Denis

> On Aug 15, 2017, at 8:18 AM, Ilya Lantukh <ilant...@gridgain.com> wrote:
> 
> Igniters,
> 
> Our current ServiceGrid implementation lacks several important features,
> one of which is ability to upgrade Service without downtime.
> 
> I've created ticket to add this feature:
> https://issues.apache.org/jira/browse/IGNITE-6069.
> 
> To implement it, the following problems must be solved:
> - currently we can store only one BinaryMetadata instance for given
> classname - if you change Service class implementation and then try to
> deploy it, you might get an exception like
> "org.apache.ignite.binary.BinaryObjectException: Binary type has different
> field types". It can be solved by making (className, version) unique
> metadata identifier. We can use serialVersionUuid as version.
> - ServiceProxy must be aware of actual version and know if service is
> currently being upgraded. If user tries to execute any method during
> upgrade, proxy should implicitly wait until new version is ready. We
> already have similar logic in IgniteCacheProxyImpl.
> - To effectively and conveniently migrate service state to newer version,
> we should add method to Service interface that will be executed before
> start if older version was present. To keep API compatible, I suggest to
> introduce interface UpgradableService (extends Service).
> 
> Any critique and suggestions are welcome.
> 
> -- 
> Best regards,
> Ilya

Reply via email to