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

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

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

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

2 ответа

Решение

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

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

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

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

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

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

Другие вопросы по тегам