В настоящее время мы работаем над решением для электронной коммерции, мы используем Elasticsearch 6.x для включения полнотекстового поиска по продуктам.
У нас есть 88 индексов, каждый из которых имеет размер primary.store.size около 50 МБ.У нас есть одна реплика для каждого основного.Мы часто восстанавливаем эти индексы путем массовой индексации с фиксированным _id.Из-за этого транслог растет.
Каждый из моих индексов очень похож на эти данные, представленные через _cat / indices:
index pri rep docs.count docs.deleted store.size pri.store.size
myindex_1 1 1 105533 0 79.4mb 39.7mb
Для того же индекса вот _cat / recovery data:
index shard time type stage snapshot files files_recovered files_percent files_total bytes bytes_recovered bytes_percent bytes_total translog_ops translog_ops_recovered translog_ops_percent
myindex_1 0 14ms empty_store done n/a 0 0 0.0% 0 0 0 0.0% 0 0 0 100.0%
myindex_1 0 22ms peer done n/a 1 1 100.0% 1 233 233 100.0% 233 0 0 100.0%
Для того же индекса вот данные _cat / shards:
index shard prirep state docs store
myindex_1 0 p STARTED 105533 39.7mb
myindex_1 0 r STARTED 105533 39.7mb
В конфигурации по умолчанию размер хранения транслога составляет 512 МБ, а срок хранения - 12 ч.Согласно документации, translog теперь хранится в течение более длительного времени, чтобы обеспечить более быстрый механизм восстановления осколков.
Учитывая размер наших индексов, который довольно мал по сравнению с размером транслога, можно ли безопасно настроить срок хранения транслогаили размер удержания?Или я бы лучше увеличил объем памяти, чтобы учесть стандартные свойства журнала?