Обновление Cassandra $ add для заказа - PullRequest
0 голосов
/ 13 февраля 2019

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

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

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

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

столбец 1 AD

столбец 2 BE

столбец 3 CF

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

столбец 1 AD

столбец 2 EB

столбец 3 CF

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...