Как мы можем оперативно обновлять документы в 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. Пожалуйста, прочтите это сообщение в блоге для получения дополнительных сведений и ссылок на документацию.