Транзакция в Кассандре и я использую gocql
Как вы можете убедиться, что один пользовательский вкладыш не подвержен влиянию другого пользователя?
Как транзакции...
Используете ли вы пакетное задание в сочетании с IF NOT EXISTS?
BEGIN UNLOGGED BATCH
INSERT INTO atable ("user1") value (10)
INSERT INTO atable ("user2") value (-10)
APPLY BATCH
1 ответ
Cassandra представила "легковесную" транзакцию в версии 2.0, но она не полностью соответствует свойствам ACID.
Он использует Paxos, чтобы гарантировать атомарность для такого рода "легких" транзакций, но ему не хватает решений для изоляции для обработки параллельных транзакций.
Решением может быть реализация двухфазной блокировки или какого-то оптимистичного управления параллелизмом на Cassandra самостоятельно.