Почему надгробия влияют на производительность, а не на обновления? - PullRequest
0 голосов
/ 11 апреля 2020

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

Итак, когда чтение выполняется до того, как будет выполнено сжатие, необходимо выполнить фильтрацию, чтобы получить последнее значение, верно? Если это так, то не являются ли надгробия одинаковыми и почему они негативно влияют на производительность, а не на обновления строки?

1 Ответ

2 голосов
/ 11 апреля 2020

В Cassandra обновление - это мутация, такая как вставка и удаление, и, за исключением случая использования LWT и некоторых операций со списком, все мутации просто добавляются в журнал memtable / commit, без чтения данных на диске. , Таким образом, они очень быстрые - никакие проверки не выполняются.

Операция чтения, в отличие от этого, требует получения всех версий данных с диска / memtable, а затем создания фактической версии данных на основе временные метки. А для надгробий нам нужно хранить их в памяти, потому что мы можем прочитать некоторые данные с диска, которые могут иметь более старую временную метку, и нам нужно это обнаружить.

...