I know it is hard.  But it is a common requirement. I wish ignite can have this feature in future.
Think below scenarios:
I initialize a 2-nodes server and all works fine.  later  I find my memory will be used up soon.
so i decide to add a new node.  I know ignite can do this. All works fine. later then I find that
use 3 node is too expensive(we run ignite on AWS) we don't need that much memory, I want to shrink the cluster, but I don't want
to stop it. It means even we are shrinking the cluster, all our business logic  like cache, computing, SQL query
should works as usual. 
For we really need this feature, I have a careful thought about it. My thought is simple:
1) use admin tools to mark a node in a DISMISSING status. when node in this status, it is only readable, computing jobs also OK, but can't write.
2) copy the data in above node to other node. 
3) when copy is finished, set the node status in DISMISSED status. node in DISMISSED status will not involved any operations.
4) then user can safely kill the process. 

I know talking is always simple, coding is hard.  Leveraging ignite's atomic, distributed locks, it may be possible.
welcome any comments.



If you don't have configured 3rd party cache store or backups,
then there is only one possible way, I think.
You need to 
 - store all the data from the node you want to shut down,
 - shut down the node 
 - upload stored data back to the cluster.

It can be done via an external database, for example.
If the data set is not huge, you can try to use a new partitioned cache (with node filter/backups) or replicated cache.


2018-02-23 10:00 GMT+03:00 shawn.du <shawn...@neulion.com.cn>:
Suppose I have several ignite server nodes which compose a cluster.
all data in PARTITIONED mode, and with no backups.
It is possible to dismiss a node without restarting and data lose?
if possible, what are the steps?


Reply via email to