Что будет стратегия уплотнения для выполнения лучшего в диапазонах на кластерных колоннах

StackOverflow https://stackoverflow.com//questions/25058693

  •  21-12-2019
  •  | 
  •  

Вопрос

У меня есть таблица кассандра

CREATE TABLE schema1 (
  key bigint,
  lowerbound bigint,
 upperbound bigint,
 data blob,
  PRIMARY KEY (key, lowerbound,upperbound)
) WITH COMPACT STORAGE ;
.

Я хочу выполнить запрос диапазона, используя CQL

Select lowerbound, upperbound from schema1 where key=(some key) and  lowerbound<=123 order by lowerbound desc limit 1 allow filtering; 
.

Любой очко, пожалуйста, относительно стратегии уплотнения


Примечание Мое чтение: запись на запись 1: 1

Это было полезно?

Решение

Выровненное уплотнение будет означать меньшее количество Sstable для ваших запросов на ключ, но требует дополнительных IO.Кроме того, во время уплотнения он использует на 10% больше диска, чем данные, в то время как для размера многоуровневого уплотнения вам нужно двойное.Что лучше зависит от вашей установки, запросов и т. Д. Вы испытываете проблемы с производительностью?Если нет, и если бы я мог справиться с Extra IO, я мог бы выбрать выровненные, так как это означает, что мне не нужно поддерживать 50 +% заседаний в плане дискового пространства для уплотнения.Но опять же, нет «одного правильного пути».

Возможно прочитать это: http://www.datastax.com/dev/blog/leveled-Compaction-In-Apache-Cassandra

Другие советы

Размерное уплотнение - это по умолчанию, и должно соответствовать большинству случаев использования. В 2012 году DataStax опубликовал статью под названием « При использовании выровненного уплотнения , в котором указано три (основные) условия, для которых выровненное уплотнение было хорошей идеей:

  1. Высокая чувствительность к задержке для чтения (ваши запросы должны встретить задержку SLA в 99-м процентиле).
  2. высокое соотношение чтения / записи
  3. строки часто обновляются
  4. Это также идентифицирует три сценария, когда выровненное уплотнение не является хорошей идеей:

    1. Ваши диски не могут обрабатывать уплотнение I / O
    2. тяжелые нагрузки на запись
    3. строки - однажды запись - однажды
    4. Обратите внимание, как ни один из шести сценариев, которые я не упомянул выше, не специфичен для цепных запросов.

      Мой вопрос будет "какую проблему вы пытаетесь исправить?" Вы упомянули «Выполнение лучше», но я обнаружил, что проблемы производительности запросов, как правило, более привязаны к дизайну модели данных. Переключение стратегии уплотнения не собирается много помогать, если вы работаете с неэффективной стратегией первичной ключей. В силу того факта, что ваш запрос требует ALLOW FILTERING, я бы сказал, что изменяющаяся стратегия уплотнения не собирается много помогать.

      Документы DataStax содержат раздел на Щетка Над строки разделов , который, кажется, несколько похож на ваш запрос. Дайте взгляду и посмотрим, поможет ли это.

Когда строки часто обновляются
От статьи DataSatx Если вы имеете дело с узкими рядами, где столбцы часто перезаписываются (например, «последний доступ» отметку «Последний доступ» в семействе столбцов пользователей) или широкие строки, когда новые столбцы постоянно добавляются, когда вы обновляете строку с уставкой Size Systems, он будетбыть распространенным через несколько Sstable.Выровненное уплотнение, с другой стороны, сохраняет количество Sstackable, которые строка распространяется по очень низкой, даже при частом обновлении строки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top