Я использую Cassandra весной MVC. Как я могу отменить транзакцию Cassandra в Гекторе, если возникнет какое-либо исключение. например, если я вставляю данные в два семейства столбцов, а один из них дает сбой, он должен удалить данные, вставленные в другой CF.
Cassandra: отменить транзакцию в cassandra
Ответы (1)
Похоже, вам нужна атомарная партия , который доступен с использованием CQL начиная с версии 1.2. Имейте в виду, что в этом есть некоторые накладные расходы. Если вы используете атомарные пакеты, нет ручной фиксации или отката, поскольку Cassandra обрабатывает это неявно.
person
rs_atl
schedule
16.10.2013
Как это возможно без CQL
- person Manish Kumar; 17.10.2013
atomic_batch_mutate
на основе Thrift поддерживается, однако не отображается поддерживаться в Гекторе. Если ваша транзакция обновляет несколько столбцов в одной строке, стандартный batch_mutate
выполнит эту работу. Но из вашего вопроса я понимаю, что это не так.
- person rs_atl; 17.10.2013
Привет @rs_atl, я знаю, что это старый ответ, но он все еще кажется мне очень полезным. Я думаю, что под накладными расходами на пакетную операцию вы имеете в виду нагрузку на узел координатора, когда тонны таких пакетных операций выполняются параллельно. Здесь один вопрос — можно ли не использовать асинхронное выполнение? Есть ли способ настроить атомарность на заказ? Может быть в блоке исключений откат совершенных транзакций?
- person user1401472; 21.02.2020