ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Denis Magda <dma...@apache.org>
Subject Re: Service versioning
Date Tue, 15 Aug 2017 23:22:10 GMT

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.


> On Aug 15, 2017, at 8:18 AM, Ilya Lantukh <ilantukh@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

View raw message