2011-04-06 25 views
8

¿Es posible resolver conflictos causados ​​por la replicación de bases de datos completamente dentro de CouchDB? Sé que tiene su propio algoritmo interno para decidir qué revisión usar, pero ¿puede una aplicación registrar una función personalizada de JavaScript para tratar los conflictos de una manera específica de la aplicación?Resolviendo conflictos de replicación completamente dentro de CouchDB

La guía y la wiki de CouchDB parecen sugerir utilizar un código de aplicación externo para resolver conflictos.

Respuesta

3

No, no es posible resolver conflictos automáticamente (o desencadenados de alguna manera) dentro de CouchDB.

Siempre depende de los desarrolladores, para resolver conflictos, eso es cierto.

En el sistema MVCC, la resolución automática de conflictos se siente incómoda. ¿Para qué almacenamos las versiones anteriores y otorgamos acceso sin bloqueo?

(Corrígeme si estoy equivocado, por favor)

+0

Estamos de acuerdo con que es responsabilidad del desarrollador para decidir la mejor manera de resolver los conflictos de una aplicación. Mi pregunta tenía que ver con dónde se ubica esta lógica de resolución de conflictos. ¿Puede ser una función de JavaScript almacenada dentro de CouchDB? – nil

+1

+1 y actualizaré su respuesta para que el "no" sea más claro. Estoy de acuerdo con nada: el desarrollador debe resolver conflictos, no necesariamente el * usuario *. Dropbox y GMail son dos servicios que parecen resolver conflictos de forma transparente todo el tiempo. Desafortunadamente, en este momento, todo debe hacerse conectándose al sofá como un cliente normal. – JasonSmith

+1

Gracias, jhs, por aclarar. Me pregunto por qué no es posible. Ciertamente, hace que CouchApps, que se sirven directamente desde CouchDB, sea menos autosuficiente. – nil