Is there any way of changing the merge settings of a live index without
downtime in ES versions prior to 1.4 (I'm on 1.1.1)?
After toying with some of the settings for quite a while (such as
index.merge.policy.expunge_deletes_allowed and
index.merge.policy.max_merge_at_once_explicit) I had come to the conclusion
that they were NOT updating dynamically. A dive into the code, which also
led to this issue https://github.com/elasticsearch/elasticsearch/issues/7699, seems to
indicate that prior to 1.4 merge settings are not really dynamically
updateable, and instead would require restarting, closing/reopening an
index, or perhaps relocating shards (the updated values are stored, but
never seem to be applied). I'm looking in TieredMergePolicyProvider to get
this information.
I'm planning on trying to update our cluster to 1.4 once it's stable, but
until then it would be helpful to be able to tweak these settings as part
of my battle against deleted document creep. So, am I missing something
here, or is simply not possible right now?
You could try switching merge policies and then switching back. I never
tried that but I think it might work.
Nik
On Oct 10, 2014 12:33 AM, "Jonathan Foy" thefoy@gmail.com wrote:
Hello
Is there any way of changing the merge settings of a live index without
downtime in ES versions prior to 1.4 (I'm on 1.1.1)?
After toying with some of the settings for quite a while (such as
index.merge.policy.expunge_deletes_allowed and
index.merge.policy.max_merge_at_once_explicit) I had come to the
conclusion that they were NOT updating dynamically. A dive into the code,
which also led to this issue https://github.com/elasticsearch/elasticsearch/issues/7699, seems to
indicate that prior to 1.4 merge settings are not really dynamically
updateable, and instead would require restarting, closing/reopening an
index, or perhaps relocating shards (the updated values are stored, but
never seem to be applied). I'm looking in TieredMergePolicyProvider to get
this information.
I'm planning on trying to update our cluster to 1.4 once it's stable, but
until then it would be helpful to be able to tweak these settings as part
of my battle against deleted document creep. So, am I missing something
here, or is simply not possible right now?
I went ahead and tested it via the index _settings API:
curl -XPUT localhost:9200/my_index/_settings -d '{
"index": {
"merge.policy.type": "log_doc"
}
}'
{"error":"ElasticsearchIllegalArgumentException[Can't update non dynamic
settings[[index.merge.policy.type]] for open
indices[[my_index_20140709]]]","status":400}
Am I missing something?
On Friday, October 10, 2014 7:18:40 AM UTC-4, Nikolas Everett wrote:
You could try switching merge policies and then switching back. I never
tried that but I think it might work.
Nik
On Oct 10, 2014 12:33 AM, "Jonathan Foy" <the...@gmail.com <javascript:>>
wrote:
Hello
Is there any way of changing the merge settings of a live index without
downtime in ES versions prior to 1.4 (I'm on 1.1.1)?
After toying with some of the settings for quite a while (such as
index.merge.policy.expunge_deletes_allowed and
index.merge.policy.max_merge_at_once_explicit) I had come to the
conclusion that they were NOT updating dynamically. A dive into the code,
which also led to this issue https://github.com/elasticsearch/elasticsearch/issues/7699, seems to
indicate that prior to 1.4 merge settings are not really dynamically
updateable, and instead would require restarting, closing/reopening an
index, or perhaps relocating shards (the updated values are stored, but
never seem to be applied). I'm looking in TieredMergePolicyProvider to get
this information.
I'm planning on trying to update our cluster to 1.4 once it's stable, but
until then it would be helpful to be able to tweak these settings as part
of my battle against deleted document creep. So, am I missing something
here, or is simply not possible right now?
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.