Кассандра - Восстановление удаленного столбца

Я просто запускал несколько простых тестов (вставки и удаления) для семейства столбцов, которое я создал. Я заметил, что в то время как новые столбцы вставляются против ключа строки, но столбец, который был недавно удален, не вставляется.

Например:

rowkey1:: name1-val1
name2-val2

После удаления name1, если я пытаюсь вставить его снова, я все равно получаю

rowkey1:: name2-val2 и не возвращается обратно к name1-val1, name2-val2.

Проблема возникает, когда я пытаюсь вставить ее через мой код (используя клиент Pelops Java). Ниже приведен фрагмент кода, который я использую для вставки:

            Mutator mutator = Pelops.createMutator("poolname");
            Column column = new Column(bufcolname);
            column.setValue(bufcolval);
            column.setTimestamp(new Date().getTime());
            mutator.writeColumn("MyColumnFamily",userId, column);
            mutator.execute(ConsistencyLevel.ONE);

Спасибо

1 ответ

Скорее всего, это проблема с отметкой времени.

Если пишет конфликт, Кассандра использует временные метки, чтобы определить победителя. В приведенном выше коде вы устанавливаете временную метку в миллисекундах, но по соглашению cassandra использует временные метки в микросекундах.

Временные метки могут быть любыми, но микросекунды с 1970 года - это соглашение.

Таким образом, при удалении, вероятно, используется отметка времени в микросекундах, которая> отметки времени мс для вашего добавления, следовательно, добавление всегда будет затенено удалением.

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