I've not noted that the cache was cleared when some of the server nodes
left the topology.
Was the cache data inserted from all the nodes or from specific nodes
only (including the crashed one)?
--
Denis
On 2/9/2016 6:32 PM, Syed Moizuddin wrote:
Thanks Denis, I will refer the docs.
I had peerClassLoadingEnabled set to*true,*in my config. Also the
cache creation happened from a node in client mode, which exit after
cache creation. I was able to run queries in Zeppelin till one of the
server crashed. Is this scenario also covered?
Regards,
Moiz
On Tue, Feb 9, 2016 at 8:09 PM, Denis Magda <[email protected]
<mailto:[email protected]>> wrote:
Hi Moiz,
This happens due to several reasons:
- you're using peer-class-loading feature [1] that allows to load
a class definition from remote nodes if a class is missed locally.
- in your case a remote node loads Model class from the node that
created TEST cache and has its class locally;
- when the node that started the cache leaves the cluster this
cache is undeployed because DeploymentMode.SHARED mode is used.
Please refer to the description of this and other nodes for more
details.
To workaround this situation you can switch to Ignite 1.5.0.final
that uses binary objects format [2] for which peer-class-loading
is not needed at the cache level and thus the undeployment will
not happen.
If you don't need the peer-class-loading for the rest of
functionality (Ignite Compute, scan queries filters, etc.) then I
would suggest you turning off it at all by removing
<property name="peerClassLoadingEnabled" value="true"/>
from your config.
[1] https://apacheignite.readme.io/docs/zero-deployment
[2] https://apacheignite.readme.io/docs/binary-marshaller
--
Denis
On 2/9/2016 9:17 AM, Syed Moizuddin wrote:
Hi,
I have a ignite cluster with cache TEST created as follows:
try (Ignite ignite = Ignition.start("config/example-ignite.xml"));) {
System.out.println(">>> Cache data streamer example started.");
CacheConfiguration<Long, Model> cacheConfiguration =new
CacheConfiguration<>(CACHE_NAME);
cacheConfiguration.setCacheMode(CacheMode.PARTITIONED);// Default.
cacheConfiguration.setIndexedTypes(Long.class, Model.class);
cacheConfiguration.setBackups(1);
...
When one of the node crashes, the cache is cleared and I see the
following log on the running nodes.
[13:12:02] Topology snapshot [ver=48, servers=12, clients=2,
CPUs=136, heap=54.0GB]
[13:23:43] Topology snapshot [ver=49, servers=11, clients=2,
CPUs=136, heap=50.0GB]
[13:25:58] Cleared all cache entries for undeployed class loader
[cacheName=TEST, undeployCnt=1079679, swapUndeployCnt=0,
clsLdr=o.a.i.i.managers.deployment.GridDeploymentClassLoader]
[13:25:58] ^-- Cache auto-undeployment happens in SHARED
deployment mode (to turn off, switch to CONTINUOUS mode)
Could someone help me explain(or point to doc) what happened how
to avoid the cache getting cleared.
Regards,
Moiz