tutorial que español couchdb bigcouch

español - couchdb que es



Tratar con los conflictos causados por la replicación en BigCouch (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 );

La página wiki de CouchDB Replication and Conflicts sugiere utilizar _bulk_docs con all_or_nothing=true para escribir forzosamente nuevas versiones de documentos incluso si eso introduce conflictos en la escritura, pero luego se resuelve poco después en lecturas posteriores. He implementado esto y conceptualmente parece funcionar bien.

Pero BigCouch no admite la semántica all_or_nothing por lo que las escrituras en documentos masivos 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 mirar la resolución de conflictos en el tiempo de escritura?