Каково точное значение compaction_throughput_mb_per_sec?

Согласно ссылке документации DataStax Cassandra yaml https://docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html


compaction_throughput_mb_per_sec
(по умолчанию: 16) Ограничивает сжатие до указанной общей пропускной способности во всей системе. Чем быстрее вы вставляете данные, тем быстрее вам нужно сжимать их, чтобы уменьшить счетчик SSTable. Рекомендуемое значение в 16–32 раза превышает скорость записи (в МБ/с). Установка значения 0 отключает регулирование сжатия.

Моя дословная интерпретация вышеприведенного текста такова: если вы наблюдаете дисковый ввод-вывод (МБ/с), скажем, 38 МБ/с, пока учитывайте только нагрузку записи на узлах Cassandra, тогда для compaction_throughput_mb_per_sec должно быть установлено значение 38 * 16 = 608. или 38 * 32 = 1216, и это не зависит от стратегии уплотнения.

Если приведенная выше интерпретация верна, пожалуйста, помогите мне понять фактическое значение значения 608 или 1216 в контексте регулирования сжатия и общей пропускной способности системы для стратегии уплотнения по уровням размера (по умолчанию), например, путем расширения упомянутого ниже.


Сюжет:

Согласно документации значение min_threshold для SizeTieredCompactionStrategy равно 6. В нашем случае оно не изменилось. В среднем дисковый ввод-вывод на узел составляет около 38 МБ/с (только запись, без операций чтения). Значение compaction_throughput_mb_per_sec равно 16.

Каким будет рабочий процесс уплотнения со значением 16? Если мы изменим его на 608, то что именно изменится, на что это повлияет и как?


person Aniket Dumbare    schedule 18.01.2016    source источник


Ответы (1)


Давайте еще раз посмотрим на значение уплотнения.

процесс уплотнения объединяет ключи, объединяет столбцы, удаляет надгробия, объединяет таблицы SST и создает новый индекс в объединенной таблице SST.

...

Параметр compaction_throughput_mb_per_sec предназначен для использования с большими разделами, поскольку сжатие ограничивается указанной общей пропускной способностью во всей системе.

См.: Настройка уплотнения

Чтобы сохранить производительность чтения при смешанной рабочей нагрузке чтения-записи, необходимо смягчить тенденцию к накоплению небольших таблиц SSTable во время одного длительного сжатия.

См.: concurrent_compactors

Поэтому при обновлении compaction_throughput_mb_per_sec вы обновляете скорость, с которой записываются новые консолидированные SSTables; и поворот поможет вам смягчить тенденцию небольших SSTables накапливаться во время уплотнения.

Короче говоря, когда вы увеличиваете значение compaction_throughput_mb_per_sec с 16 до 608, вы увеличиваете пропускную способность записи, необходимую для записи SSTables, что, в свою очередь, снижает вероятность создания небольших SSTables и, наконец, повышаете производительность чтения.

person Manojkumar Khotele    schedule 28.11.2017