2012-07-01 17 views
47

La página wiki de CouchDB Replication and Conflicts sugiere usar _bulk_docs con all_or_nothing=true para escribir a la fuerza nuevas versiones de documentos incluso si eso introduce conflictos en la escritura, pero luego se resuelven poco después en lecturas posteriores. Lo he implementado y conceptualmente parece funcionar bien.Tratamiento de conflictos causados ​​por la replicación en BigCouch

Pero BigCouch no es compatible con la semántica de all_or_nothing, por lo que las escrituras en documentos a granel pueden devolver 409 resultados de conflicto. ¿Cuál es la mejor práctica para implementar una resolución de conflictos de nivel de aplicación similar para los conflictos introducidos por la replicación en BigCouch? ¿Debo considerar la resolución de conflictos de tiempo de escritura?

+0

**** **** grillos –

+0

Oops, hizo una pregunta que no era sobre C#. – akent

+0

Eso podría ser un problema. Si lo desea, podríamos tener un chat rápido en la sala de chat chat.SO [CouchDB y Couchbase] (http://chat.stackoverflow.com/rooms/11630/couchdb-and-couchbase). –

Respuesta

1

obtener el número de revisión del documento que se actualiza si hay un conflicto durante la unión y de forma recursiva de llamadas en caso de un conflicto,

$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

No estoy seguro de qué archivos adjuntos tiene que ver con esto. Esto no parece una solución para mí. – akent

Cuestiones relacionadas