Я использую экспресс-кассандру с узлом и кафкой для получения данных о моих событиях.После первой вставки в мою таблицу событий я использую директиву 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 сообщает о неупорядоченных данных, поэтому поиск будет означать неупорядоченные данные.
Пожалуйста, помогите мне с любыми соображениями, комментариями.Я был бы чрезвычайно благодарен;