We have our ES cluster running on aws instances where nodes can come and
go. We would like to disable Shard reallocation on cluster in Normal state
so that Node going down should not rebalance the shards.(Just to avoid
unnecessary Network i/o).
When node comes back up (within few minutes), we would like to enable it so
that new node will get back it's own shards and after rebalancing is
finished, we would like to Disable Shard reallocation again.
We would like this to be an automated process rather than manual one.
So I would like to know, is there any way to Listen to the event which says
"Shard Rebalancing is finished" (by adding a new listener) and then
disable cluster.routing.allocation.enable Property ?
We have our ES cluster running on aws instances where nodes can come and
go. We would like to disable Shard reallocation on cluster in Normal state
so that Node going down should not rebalance the shards.(Just to avoid
unnecessary Network i/o).
When node comes back up (within few minutes), we would like to enable it
so that new node will get back it's own shards and after rebalancing is
finished, we would like to Disable Shard reallocation again.
We would like this to be an automated process rather than manual one.
So I would like to know, is there any way to Listen to the event which
says "Shard Rebalancing is finished" (by adding a new listener) and then
disable cluster.routing.allocation.enable Property ?
We have our ES cluster running on aws instances where nodes can
come and go. We would like to disable Shard reallocation on
cluster in Normal state so that Node going down should not
rebalance the shards.(Just to avoid unnecessary Network i/o).
If your shard topology is relatively static, you could just leave
allocation disabled (or set it to new_primaries for the occasional
index creation). But honestly you're trying to micro-manage a
process that ES does pretty well. There's nothing wrong with
having a yellow cluster. If you're concerned about availability
you should add replicas.
Thanks Ivan for the suggestions, I'll try to make use of them.
Drew, Sorry I din't get the part when you said "There's nothing wrong with
having a yellow cluster" And yes I agree ES does a good job of rebalancing
but just think of a case where you have close to few hundred GBs of data
per shard which will move around the cluster even though the new node takes
only few minutes to come back up. Hence, looking to avoid unnecessary
network i/O.
-- Sagar
On Friday, June 6, 2014 2:41:37 PM UTC-7, Drew Raines wrote:
sagarl wrote:
We have our ES cluster running on aws instances where nodes can
come and go. We would like to disable Shard reallocation on
cluster in Normal state so that Node going down should not
rebalance the shards.(Just to avoid unnecessary Network i/o).
If your shard topology is relatively static, you could just leave
allocation disabled (or set it to new_primaries for the occasional
index creation). But honestly you're trying to micro-manage a
process that ES does pretty well. There's nothing wrong with
having a yellow cluster. If you're concerned about availability
you should add replicas.
Drew, Sorry I din't get the part when you said "There's nothing
wrong with having a yellow cluster" And yes I agree ES does a
good job of rebalancing but just think of a case where you have
close to few hundred GBs of data per shard which will move
around the cluster even though the new node takes only few
minutes to come back up. Hence, looking to avoid unnecessary
network i/O.
If you were referring to /planned/ node outages, then I agree. I
thought you were trying to reinvent schemes for dealing with the
unpredictable. Apologies for misinterpreting!
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.