Deploying an app to an ignite cache cluster

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Deploying an app to an ignite cache cluster

Ognen Duzlevski
Hello all,

I would like to re-raise this issue and see if anyone has any
production-grade recommendations for deploying new app versions to an
ignite cache. Basically the issue is this: you have a new version of an app
with new/changed classes that you would like cached. One way to deploy this
is to copy a fat jar to ignite/lib and restart ignite. However, this gets
to be pretty ornery as the real steps are dump cache, restart ignite with
new fat jar, reload cache, deploy app. On a large cluster this becomes
somewhat of an issue.

Anyone have any recommendations or procedures they are following or
anything that they are using of the Ignite functionality that I have missed?

Thanks!
Ognen
Reply | Threaded
Open this post in threaded view
|

Re: Deploying an app to an ignite cache cluster

yzhdanov
Ognen,

There is no a simple answer to this question, but what you talk about is
still possible.

1. You should care about data compatibility. So, you need to store data in
the format that can be read by different app version - json; byte array
with custom serialize/deserialize logic; your custom Marshaller
implementation; or switching to JdkMarshalling that uses standard java
serialization and therefore support mutations.

2. App logic compatibility - your logic and services belonging to
compatible versions of the application should not break each other. I.e.
different nodes of the cluster can carry different versions of the app. If
node with newer version (client or server) initiates some operation on the
cache it can bring all the data locally change it and save to cache OR send
a job of a prev version to remote node. Then you can update your app
restarting Ignite nodes one by one. After update is complete and all nodes
carry same app version you can use any flow.

Please note that Ignite currently does not support hot Ignite version
upgrade. This is supported by GridGain. GridGain also has portable
marshaler eliminating data compatibility issues.

--Yakov

2015-05-27 18:46 GMT+03:00 Ognen Duzlevski <[hidden email]>:

> Hello all,
>
> I would like to re-raise this issue and see if anyone has any
> production-grade recommendations for deploying new app versions to an
> ignite cache. Basically the issue is this: you have a new version of an app
> with new/changed classes that you would like cached. One way to deploy this
> is to copy a fat jar to ignite/lib and restart ignite. However, this gets
> to be pretty ornery as the real steps are dump cache, restart ignite with
> new fat jar, reload cache, deploy app. On a large cluster this becomes
> somewhat of an issue.
>
> Anyone have any recommendations or procedures they are following or
> anything that they are using of the Ignite functionality that I have
> missed?
>
> Thanks!
> Ognen
>
Reply | Threaded
Open this post in threaded view
|

Re: Deploying an app to an ignite cache cluster

emmathornber
In reply to this post by Ognen Duzlevski
Apache Ignite allows you to store the most frequently accessed data in
memory. It evenly distributes the data across a cluster of computers in
either partitioned or replicated manner. Ignite allows you to access the
data from any underlying data store – RDBMS, NoSQL, or HDFS. you can
dynamically add nodes to the Ignite cluster without restarting the entire
cluster. Ignite has virtually unlimited scale.



-----
Developer at Cokernutx
--
Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/
Developer at Cokernutx