Cassandra: отменить транзакцию в cassandra

Я использую Cassandra весной MVC. Как я могу отменить транзакцию Cassandra в Гекторе, если возникнет какое-либо исключение. например, если я вставляю данные в два семейства столбцов, а один из них дает сбой, он должен удалить данные, вставленные в другой CF.


person Manish Kumar    schedule 16.10.2013    source источник


Ответы (1)


Похоже, вам нужна атомарная партия , который доступен с использованием CQL начиная с версии 1.2. Имейте в виду, что в этом есть некоторые накладные расходы. Если вы используете атомарные пакеты, нет ручной фиксации или отката, поскольку Cassandra обрабатывает это неявно.

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