Недавно я обновил свой кластер Cassandra от 2.1.12
до 3.9
. И потребовалось 10-12 часов для каждого, чтобы обновить SStables. Общий размер данных составлял ~ 100 ГБ на каждом узле. Morever, compaction_throughput_mb_per_sec
в моем кластере: 16 as default value
. Каковы способы, с помощью которых это время можно было бы сократить?Как уменьшить время обновления SSTable в cassandra
1
A
ответ
1
Вы используете SSD? Если у вас есть дополнительная пропускная способность IO, увеличение пропускной способности (compaction_throughput_mb_per_sec
) является самым простым. Вы также можете увеличить concurrent_compactors
в своем cassandra.yaml, но в конечном счете вы будете ограничены процессором и диском io.
Можно также отключить gossip/cql с помощью nodetool на одном узле за раз, чтобы предотвратить его воздействие на ваше приложение, а затем полностью отключить пропускную способность уплотнения. Просто убедитесь, что узел удален из кластера более 20 минут (30 минут - это окно Hinted Handoff по умолчанию).