Завершается ли добавление столбца в таблицу кассандры мгновенно? - PullRequest
3 голосов
/ 28 апреля 2020

Мы планируем добавить столбец списка типов в существующую таблицу cassandra, размер файла данных которой составляет около 350 ГБ. Мы можем временно прекратить все чтение / запись на несколько минут при применении изменения схемы.

Мы понимаем, что cassandra не блокирует таблицу при применении изменений схемы, но чтобы наш администратор БД захотел выполнить Эксперимент на таблице с файлом данных размером 25 ГБ. Тем не менее, потребуется 3-4 недели, чтобы вырасти в таком размере на небольшом сервере, на котором работает непроизводственный сервер cassandra (наличие большего числа одновременных вставок приводит к проблемам с истечением времени ожидания).

Кто-нибудь знает, что добавление столбец существующей таблицы cassandra возвращается незамедлительно независимо от размера файла данных?

Спасибо

1 Ответ

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

Добавление столбца в Cassandra - это просто добавление метаинформации столбца во внутреннюю таблицу, в которой хранится информация о схеме. Когда это изменение не произойдет, никаких изменений существующих данных не произойдет - Cassandra просто поместит нулевое значение вместо значения столбца, если для него нет данных для диска (для любого столбца, а не только для того, что было добавлено) - это происходит, когда данные возвращается вызывающей стороне, а не путем добавления значения NULL к файлам.

Аналогичным образом, удаление столбца не изменяет существующие данные - вместо этого в таблицу system_schema.dropped_columns добавляется новая запись, и соответствующие данные отфильтровываются. после чтения с диска.

...