Следует отметить, что в пределах партии без отметки времени, указанной для каждого оператора, все операторы будут выполняться с той же меткой времени.
Это означает, что все четыре заявления вы написали
INSERT INTO users (userID, password, name) VALUES ('user2', '[email protected]', 'second user')
UPDATE users SET password = 'ps22dhds' WHERE userID = 'user2'
DELETE * FROM users WHERE userID = 'user2'
INSERT INTO users (userID, password, name) VALUES ('user2', '[email protected]', 'Andrew')
Все произойдет в то же время, в этом случае используется наибольшее значение для обычно модифицированной клетки. В то время как все четыре утверждения применяются, результат, скорее всего, не то, что вы ожидаете.
В основном C * будет видеть
INSERT ('user2', '[email protected]', 'second user')
INSERT ('user2', 'ps22dhds', 'second user')
INSERT ('user2', 'Tombstone', 'Tombstone')
INSERT ('user2', '[email protected]', 'Andrew')
В этом случае, так как все они имеют тот же временной метки C * разрешает конфликт, выбрав наибольшее значение для ячеек, и вы будете в конечном итоге с (если я не получил байт заказа неправильно здесь)
('user2', 'ps22dhds', 'second user')
Вместо для этого вида работы рассмотреть с помощью проверки и установки (CAS) операций в C *.
http://www.datastax.com/dev/blog/lightweight-transactions-in-cassandra-2-0
http://stackoverflow.com/questions/30565887/cassandra-isolation-in-same-row-key-mutation/30570036#30570036 – Jobs