2012-07-01 1 views
47
.

. Страница Wiki для CouchDB Replication and Conflicts предлагает использовать _bulk_docs с all_or_nothing=true, чтобы принудительно записывать новые версии документов, даже если это вводит конфликты при записи, но затем разрешается вскоре после последующих чтений. Я реализовал это и, по-видимому, работает нормально.Работа с конфликтами, вызванными репликацией в BigCouch.

Но BigCouch не поддерживает all_or_nothing семантика, поэтому записи на объемные документы могут возвращать 409 результатов конфликта. Какова наилучшая практика для реализации аналогичного разрешения конфликтов на уровне приложений для конфликтов, возникающих при репликации в BigCouch? Должен ли я смотреть на разрешение конфликтов времени записи?

+0

**** сверчков **** –

+0

К сожалению, я задал вопрос, который не был о C#. – akent

+0

Это может быть проблемой. Если вы хотите, мы могли бы быстро пообщаться в чате chat.SO [CouchDB и Couchbase] (http://chat.stackoverflow.com/rooms/11630/couchdb-and-couchbase). –

ответ

1

Получить номер редакции документа, который будет обновляться, если есть конфликт во время прикрепления и рекурсивный вызов в-случае конфликта,

$url = "http://couchdb/DATABASE/DOCID/ATTACHMENTNAME?rev=$rev"; 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_PUT, true); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_exec($ch); 
+0

Я не уверен, какие привязанности к этому относятся. Это не похоже на решение для меня. – akent

Смежные вопросы