2010-01-27 7 views
0

lecture du CouchDB book, je suis tombé sur la déclaration,commande d'écriture dans CouchDB

« Rédige sont sérialisés, ce qui permet une seule opération d'écriture à tout moment, pour une base de données unique »

ce Est-ce que ça veut dire? comment contrôle-t-il les conflits d'écriture sans verrous? C'est probablement une question mieux adaptée à la liste de diffusion de couchdb, mais je voulais une explication plus scientifique de l'informatique qu'une explication de 'produit'.

merci

Répondre

2

Une fois qu'une écriture est effectuée, le numéro de révision de ce document est modifié. Si une écriture arrive avec un numéro de révision plus ancien, elle est renvoyée avec une erreur indiquant à l'application/à l'utilisateur d'examiner ses modifications par rapport au document le plus récent en question avant de renvoyer sa nouvelle version.

Maintenant, quand vous avez affaire à plusieurs nœuds, il y a une certaine gestion des conflits qui devront se produire sur le document CouchDB, reportez-vous à ce chapitre pour une explication de ce processus: http://books.couchdb.org/relax/reference/conflict-management

+0

Juste pour ajouter peu. CouchDB utilise MVCC (Contrôle de simultanéité multi-version) afin qu'un seul élément sur plusieurs nœuds puisse être modifié, puis synchronisé de manière peer-to-peer pendant la réplication. Ils se réfèrent à ce modèle comme «Cohérence éventuelle» signifiant la cohérence entre les nœuds, un seul nœud est toujours cohérent. – mikeal