Использует ли BigTable уплотнение Tiered или Leveled LSM-tree?

Google BigTable - это система, которая использует LSM-дерево в качестве основной структуры данных для хранения. LSM-дерево может использовать разные стратегии слияния. Двумя наиболее распространенными являются (1) уровневое объединение, которое более оптимизировано для чтения, и (2) многоуровневое объединение, которое более оптимизировано для записи. Эти стратегии слияния могут быть дополнительно настроены путем настройки соотношения размеров между соседними уровнями.

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

При многоуровневом объединении уровень сборок LSM-дерева выполняется до тех пор, пока не достигнет своей емкости. Затем он объединяет эти прогоны и сбрасывает результирующий прогон на следующий больший уровень. На каждом уровне выполняется не более O(T * log_T(N)), а стоимость записи составляет O(log_T(N) / B), где N - размер данных, B - размер блока и T - размер. соотношение между уровнями.

При уровневом слиянии на каждом уровне LSM-дерева выполняется один прогон. Слияние происходит, как только новый уровень входит в уровень, и если уровень превышает емкость, результирующий цикл сбрасывается на следующий больший уровень. На каждом уровне выполняется не более O(log_T(N)), а стоимость записи составляет O((T * log_T(N)) / B).

В результате эти схемы имеют разные характеристики производительности чтения / записи. Однако мне не удалось найти источники информации о том, использует ли BigTable Google многоуровневое или многоуровневое объединение, и каково соотношение размеров по умолчанию T? Кроме того, исправлены ли эти аспекты системы или они настраиваются?

1 ответ

Решение

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

Вот несколько недавняя статья о различных подходах к объединению алгоритмов уплотнения, которые были исследованы в Bigtable:

Сжатие слияния Bigtable в Интернете https://arxiv.org/pdf/1407.3008.pdf

Мы используем ряд запатентованных подходов для динамической настройки и настройки поведения уплотнения слиянием. Если у вас есть более конкретные вопросы, связанные с использованием вами системы, или у вас возникают проблемы с поведением при уплотнении слиянием, вы, конечно, можете свободно подать заявку в службу поддержки.

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