Как я могу понять, почему мой кластер Riak не выполняет этап сжатия на компьютерах, когда я ожидаю?

У меня есть кластер машин Riak (V1.2.0), каждый из которых имеет около 50 ГБ пространства на жестком диске. У нас есть хранилище bitcask, настроенное следующим образом:

%% Bitcask Config
{bitcask, [
         {data_root, "/var/lib/riak/bitcask"},
         {frag_merge_trigger, 40}, %% trigger merge if framentation is > 40% default is 60%
         {dead_bytes_merge_trigger, 67108864}, %% trigger if dead bytes for keys > 64MB default is 512MB
         {frag_threshold, 20}, %% framentation >= 20% default is 40
         {dead_bytes_threshold, 67108864} %% trigger if dead bytes for data > 64MB default is 128MB
       ]},

Наше программное обеспечение имеет шаблон, где значения часто перезаписываются одними и теми же ключами. То есть набор ключей остается относительно стабильным, а значения меняются не реже одного раза в день.

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

Что-то не так с моим конфигом? Я не совсем уверен, как настроить его так, чтобы он занимал пространство "автоматически" настолько, чтобы у меня не было свободного места на диске в течение недели.

Как я могу проверить?

  • Когда алгоритм сжатия определяет, запускать или нет, и что он решает на основании каких критериев?
  • Как на самом деле выполнялось уплотнение
  • Сколько места было освоено

1 ответ

Добавьте одну строку в вашу конфигурацию bitcask

{log_needs_merge, true}

Всякий раз, когда происходит слияние, в файле console.log будет запись, которая показывает, какие файлы встретились, какие триггеры

Другие вопросы по тегам