Сканирование надгробий в system.log

У меня есть кластер cassandra с меньшим количеством вариантов использования. Я нашел в своем системном журнале «Прочитать 10 живых и 5645464 ячеек надгробий в keyspace.table». Что это значит? пожалуйста помогите понять.

Спасибо.

Установка Apache Cassandra на Mac OS
Установка Apache Cassandra на Mac OS
Это краткое руководство по установке Apache Cassandra.
0
0
97
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Для Кассандры вся записанная информация неизменяема. Это означает, что когда у вас есть операция удаления (явная с оператором удаления или с предложением Time To Live [TTL]), база данных добавит еще одну запись со специальным флагом с именем tombstone. Все эти записи останутся в базе данных, пока не истечет gc_grace_seconds периодов; по умолчанию 10 дней.

В вашем случае движок обнаружил, что большинство полученных записей были удалены, но они все еще ждут прохождения gc_grace_seconds, чтобы позволить сжатию вернуть пространство. Один из возможных вариантов решения проблемы — уменьшить gc_grace_seconds для этой таблицы.

Для получения дополнительной информации см. эта статья из Last Pickle.

Да, но что значит "10 живых 5745464 надгробий"?

LetsNoSQL 29.05.2019 03:51

это означает, что из 5745474 извлеченных записей 10 оказались полезными, а 5745464 помечены для удаления. Такое количество надгробий будет иметь серьезные негативные последствия при чтении.

Carlos Monroy Nieblas 29.05.2019 06:05

10 не надгробные данные? только 5745464

LetsNoSQL 29.05.2019 06:24

правильно, эти 10 записей действительно пригодны для чтения данных. Остальные 5,7 миллиона записей были извлечены, но найдены помеченными как удаленные, поэтому их нельзя использовать; этот флаг надгробие

Carlos Monroy Nieblas 29.05.2019 06:32
Ответ принят как подходящий

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

Когда вы вставляете значение null в атрибут при выполнении вставки, Cassandra внутренне помечает этот атрибут/ячейку как надгробную плиту. Таким образом, даже если у вас не происходит большого количества удалений, вы можете получить огромное количество надгробий. Легкое и простое решение — не вставлять значения null для атрибута при вставке.

Согласно этому утверждению Read 10 live and 5645464 tombstones cells in keyspace.table, может быть сканирование таблицы для запроса, который сканирует 10 ячеек и 5645464 количество надгробий (ячеек со значением null), при этом я предполагаю, что это так. Необходимо понять, какие типы запросов выполняются, чтобы лучше понять это.

что значит 10 живых? а 5645464?

LetsNoSQL 29.05.2019 06:15

Чтобы это звучало просто, если у вас есть запрос типа select * from keyspace.table where id = 'abc' and cluster_key_with_int_value > 10 limit 10, то cassandra просканирует диапазон вашей таблицы и зарегистрирует приведенное выше утверждение. Где 10 — допустимое количество строк, а 5645464 — количество надгробий, обнаруженных при сборе ваших 10 строк.

Wizard 29.05.2019 06:51

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