We are having trouble with flushing our translog now that we are on version 6.x. We are using default settings, other than our index has refresh_interval set to 60s.
Indices often have huge translogs (1GB) at the end of the hour. It seems the default translog settings in 6.3 would cause a flush to occur automatically.
In previous versions, we'd do a _flush after the indexing was complete for an index, to ensure the translog was processed and removed. The _flush API does not appear to work now.
In Elasticsearch 6.x recovery can be made based on translog, which can be much more efficient than copying full indices, so it is kept around a bit longer than before to facilitate this. This can however be tuned using index settings. This blog post provides some additional background.
In that blog post you referred, it talks about sequence IDs and the default settings translog.retention.size and translog.retention.age. The defaults (512m and 12h) respectively seems to be exceeded. I have indices that are more than 12 hours old, but which still have large translogs.
And second, when I issue /index/_flush, why does that not flush? Shouldn't I still be able to force a flush?
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.