Lidiar con conflictos causados por la replicación en BigCouch
Frecuentes
Visto 950 equipos
48
El CouchDB Replicación y conflictos página wiki sugiere usar _bulk_docs
all_or_nothing=true
para escribir por la fuerza nuevas versiones de documentos, incluso si eso introduce conflictos en la escritura, pero luego se resuelven poco después en lecturas posteriores. He implementado esto y conceptualmente parece funcionar bien.
Pero BigCouch no admite all_or_nothing
semántica, por lo que las escrituras en documentos masivos pueden devolver resultados de Conflicto 409. ¿Cuál es la mejor práctica para implementar una resolución de conflictos a nivel de aplicación similar para los conflictos introducidos por la replicación en BigCouch? ¿Debería considerar la resolución de conflictos en tiempo de escritura en su lugar?
1 Respuestas
1
Obtenga el número de revisión del documento que se actualizará si hay un conflicto durante el archivo adjunto y llame recursivamente en caso de 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 );
Respondido el 07 de junio de 13 a las 13:06
No estoy seguro de qué tienen que ver los archivos adjuntos con esto. Esto no me parece una solución. - acido
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas couchdb bigcouch or haz tu propia pregunta.
Ups, hice una pregunta que no era sobre C#. - akent
Eso podría ser un pequeño problema. Si quieres podemos tener una charla rápida en el chat.SO CouchDB y Couchbase sala de chat. - Octavian A. Damiean
@akent si encuentra alguna solución después del chat, ¿puede publicarla como respuesta a su propia pregunta? El tema es muy interesante para mí. - Daniele B