Обновление Cassandra $add для заказа

Я использую экспресс-кассандру с узлом и кафкой, чтобы использовать мои данные о событиях. После первой вставки в таблицу событий я использую директиву update with $add для обновления выбранных столбцов, которые имеют текстовый список по своей природе.

Проблема, с которой я сталкиваюсь, заключается в том, что для последующих обновлений после вставки в мою таблицу упорядочение по столбцам иногда не совпадает. То есть, скажем, мои два обновления, как показано ниже

Обновите 1 в t0 {столбец 1: $add {A}, столбец 2: $add {B}, столбец 3: $add {C}} обновите 2 в t1 {столбец 1: $add {D}, столбец 2: $add {E}, столбец 3: $add {F}}

В действительности ожидаемое поведение таково

столбец 1 н.э.

колонка 2 BE

колонка 3 CF

Это на самом деле происходит, если есть некоторая разница во времени между t1 и t0, но когда эта разница во времени очень мала, порядок сортировки не соответствует, как, например,

столбец 1 н.э.

колонка 2 ЭБ

колонка 3 CF

Я в порядке, когда ABC <-> обменивается с CDE, но я ожидаю атомарного обновления стилей для всех списков за один раз

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

Когда я продолжил диагностировать эту проблему внутри моего sstable промывки через промывку nodetool, я вижу, что временные метки данных в SStable на самом деле правильные и поддерживают намеченный порядок, просто то, что cqlsh сообщает о неупорядоченных данных, таким образом, поиск будет означать неупорядоченные данные.

Пожалуйста, помогите мне с любыми соображениями, комментариями. Я был бы чрезвычайно благодарен;

0 ответов

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