Как мы можем обновлять документы транзакционно в couchbase?

У меня есть вариант использования, в котором есть три документа, и я хочу обновить их транзакционно, т.е. если какой-либо из них не работает, другие тоже не должны обновляться в базе данных. Искал вариант, но в JavaSDK не нашел. Итак, есть ли способ, которым я могу выполнить эту операцию транзакционно. Я использую значение CAS для обработки параллелизма. Пожалуйста, дайте мне способ выполнить эту операцию одновременно.

Версия Couchbase: 4.0 Java SDK: 2.1.6

Любая помощь приветствуется.!


person Shiv4nsh    schedule 02.02.2016    source источник


Ответы (3)


Couchbase - это база данных NoSQL, в которой существует компромисс между свойствами ACID традиционной СУБД и производительностью и масштабируемостью.

Единственная атомарность, которую может обеспечить couchbase, - это уровень одного документа.

В Интернете могут быть статьи о том, как реализовать систему транзакций с помощью Couchbase, но это явно не является чем-то готовым, по задумке. Это очень сложное занятие, которое я бы не рекомендовал.

Попробуйте сначала смоделировать свои документы по-другому, чтобы мутация могла произойти в одном документе (где затем можно было бы использовать CAS).

person Simon Baslé    schedule 02.02.2016

этот документ (из couchbase) кажется актуальным: Обеспечение транзакционной логики

person FuzzyAmi    schedule 04.02.2016
comment
Да, это кажется правильным, но с этим у меня есть серьезная проблема, как и у этого парня. forum.couchbase.com/t/question-about-two- фаза-фиксация / 4424 - person Shiv4nsh; 04.02.2016

Couchbase теперь поддерживает транзакции полного распределения ACID в бета-версии Couchbase Server 6.5. См. Это сообщение в блоге для получения более подробной информации и ссылок на документацию.

person Graham Pople    schedule 10.09.2019