Как работают служебные данные нескольких столбцов с TTL в Cassandra?

В документации по истечению срока действия данных для Cassandra (здесь) упоминается, что

У данных с истекающим сроком действия есть дополнительные 8 байтов в памяти и на диске (для записи TTL и времени истечения) по сравнению со стандартными данными.

Если установить TTL (время жизни) на уровне таблицы, означает ли это, что для каждой записи данных есть дополнительные 8 байтов в памяти и на диске, умноженные на количество столбцов, или это не зависит от Число столбцов?

Например, в документации также можно найти пример здесь для определения TTL для столбца, даже если данные вставляются более чем в 1 столбец и TTL определяется для фактической вставляемой записи данных, а не для каждого столбца.


person Filipe Freire    schedule 14.12.2017    source источник


Ответы (2)


Нет, по крайней мере, уже нет. Эта документация устарела и актуальна только до версии 3.0.

В настоящее время, если все столбцы в разделе или строка в разделе имеют одинаковый TTL, установленный при вставке, он просто устанавливается для него один раз. Если они сохраняются, они записываются дельта-кодированием из sstables minTimestamp как беззнаковая переменная int, а не 8 байт.

person Chris Lohfink    schedule 14.12.2017

Согласно документации Cassandra, при создании в разделе таблицы написано:

default_time_to_live

TTL (время жизни) в секундах, где ноль отключен. Если указано, значение устанавливается для маркера времени жизни (TTL) в каждом столбце таблицы; значение по умолчанию: 0. При превышении срока жизни таблицы таблица удаляется.

Это означает, что когда вы определяете TTL для таблицы, он действителен для каждого столбца (кроме первичного ключа).

person Hugo Madureira    schedule 14.12.2017
comment
То есть это будет означать, что для каждой строки у нас будет на 8 байт больше служебных данных, умноженных на количество столбцов? (Следуя этой линии мысли) - person Filipe Freire; 14.12.2017
comment
Да, за исключением столбцов, составляющих первичный ключ. - person Hugo Madureira; 14.12.2017