Hi,

We have no global DB behind the grid, and we use @CacheLocalStore annotation
in our Store implementation. But after some tests we've discovered that we
cannot change the cluster tolopogy arbitrarily without data loss. It is
because Ignite knows nothing about the storage contents.

Here is an example (see readme.txt)
https://dl.dropboxusercontent.com/u/46370629/localstore-example.zip

We've tried to create a "protocol" of topology changing in order to avoid
problems with synchronization of local stores.

* We must completely disable evictions
* We should not join a node to the cluster until the loadCache operation is
completed
* We should fix the topology (using the TopologyValidator) when completely
stopping the cluster
* We should restore the fixed topology (using the TopologyValidator) when
starting the cluster
* A node can leave a topology at any time. And it can be joined back, but
its store should be cleared before (it is because it can contain already
deleted entries)

The protocol is quite difficult and I want to find a way to simplify it. I'm
sure that Ignite already manages some of issues that we try to solve with
the protocol.

How to use Ignite with local stores correctly? Are there some set of simple
rules that we should follow to avoid data loss?



--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/CacheLocalStore-toplogy-changing-strategy-tp7832.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Reply via email to