Обновление коллекции списков Кассандры создает надгробия - PullRequest
1 голос
/ 22 марта 2019

Cassandra версия 3.11.3

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

У меня сложилось впечатление, что это исправлено в этой ошибке .
Я что-то не так делаю?

Выполнение этого 10k раз не приводит к появлению надгробий: (предположим, что раздел не существует ранее)

update "Record" Set "AllSetItems" = "AllSetItems" + {'abc'} where "RecordId" = 5 and "Field" = 'xyz';
update "Record" Set "AllSetItems" = "AllSetItems" - {'abc'} where "RecordId" = 5 and "Field" = 'xyz';

Таким образом, этот запрос работает нормально:

Select * from "Record" where "RecordId" = 5 and "Field" = 'xyz';

Выполнение этого 10k раз приводит к появлению множества надгробий: (предположим, что раздел не существует ранее)

update "Record" Set "AllListItems" = "AllListItems" + ['abc'] where "RecordId" = 5 and "Field" = 'xyz';
update "Record" Set "AllListItems" = "AllListItems" - ['abc'] where "RecordId" = 5 and "Field" = 'xyz';

После обновлений этот запрос не выполняется из-за слишком большого количества надгробий:

Select * from "Record" where "RecordId" = 5 and "Field" = 'xyz';

1 Ответ

1 голос
/ 22 марта 2019

Я считаю, что это работает, как ожидалось. Прочтите эту статью (хотя она немного устарела) и посмотрите, объясняет ли она вашу ситуацию.

https://jsravn.com/2015/05/13/cassandra-tombstones-collections/#lists

...