2011-04-06 4 views
8

Est-il possible de résoudre entièrement les conflits causés par la réplication de base de données dans CouchDB? Je sais qu'il a son propre algorithme interne pour décider quelle révision utiliser, mais une application peut-elle enregistrer une fonction javascript personnalisée pour gérer les conflits d'une manière spécifique à l'application?Résolution complète des conflits de réplication dans CouchDB

Le guide CouchDB et le wiki semblent tous les deux suggérer d'utiliser un code d'application externe pour résoudre les conflits.

Répondre

3

Non, il n'est pas possible de résoudre les conflits automatiquement (ou d'une manière ou d'une autre) dans CouchDB.

Il incombe toujours aux développeurs, pour résoudre les conflits, c'est vrai.

Dans le système MVCC, la résolution automatique des conflits est gênante. Que devons-nous stocker les versions précédentes et accorder un accès sans verrouillage?

(corrigez-moi si je me trompe, s'il vous plaît)

+0

Nous sommes d'accord là-dessus étant au développeur de décider de la meilleure façon de résoudre les conflits dans une application. Ma question visait à savoir où cette logique de résolution des conflits est placée. Peut-il s'agir d'une fonction javascript stockée dans CouchDB? – nil

+1

+1 et je mettrai à jour votre réponse pour rendre "non" plus clair. Je suis d'accord avec zéro: le développeur doit résoudre les conflits, pas nécessairement le * utilisateur *. Dropbox et GMail sont deux services qui semblent résoudre les conflits de manière transparente tout le temps. Malheureusement, en ce moment, tout doit être fait en se connectant à un canapé en tant que client normal. – JasonSmith

+1

Merci, jhs, pour avoir clarifié. Je me demande pourquoi ce n'est pas possible. Cela rend certainement les CouchApps, qui sont servis directement à partir de CouchDB, moins autosuffisants. – nil

Questions connexes