Esa es la cuestión.
Esto es desde el punto de vista de un cliente ausente de una partición y / o conmutación por error.
MongoDB
¿Son coherentes los datos de MongoDB?
MongoDB ejecuta operaciones de lectura y escritura en el nodo primario, y los datos son coherentes. Sin embargo, el rendimiento es limitado porque los clientes no aprovechan los nodos secundarios. La primera alternativa es ejecutar operaciones de lectura en todos los nodos, primarios y secundarios. El rendimiento de lectura es mejor, pero los datos dejan de ser coherentes porque la replicación es asíncrona por defecto. La segunda alternativa es la replicación síncrona. Los datos son consistentes, pero el rendimiento de escritura es peor.
- Principal
- Rendimiento de lectura medio, rendimiento de escritura medio
- Datos coherentes
- Primario + Secundario (asíncrono)
- Alto rendimiento de lectura, rendimiento medio de escritura
- Datos finalmente coherentes
- Primario + Secundario (sincrónico)
- Alto rendimiento de lectura, bajo rendimiento de escritura
- Datos coherentes
Los datos pueden ser coherentes o no.

Servidor Couchbase
¿Son coherentes los datos de Couchbase Server?
Couchbase Server ejecuta todas las operaciones de lectura y escritura en el nodo primario, y los datos son consistentes. El rendimiento es alto porque los clientes aprovechan todos los nodos. Eso es porque cada nodo es un nodo primario.
- Por defecto
- Alto rendimiento de lectura, alto rendimiento de escritura
- Datos coherentes
Los datos son coherentes.

Particionado frente a replicado
Tanto Couchbase Server como MongoDB implementan particionamiento y replicación. Sin embargo, las implementaciones son diferentes.
En MongoDB, una partición se almacena dentro de un conjunto de réplicas. Un conjunto de réplicas consiste en un nodo primario y múltiples nodos secundarios. Si hubiera nueve nodos, habría tres conjuntos de réplica con operaciones de escritura distribuidas a los tres nodos primarios. En Couchbase Server, cada nodo es tanto un nodo primario activo como un nodo secundario pasivo. Si hubiera nueve nodos, habría nueve nodos primarios con operaciones de escritura distribuidas a todos ellos (9). Esta es una descripción de alto nivel de cómo se particionan y replican los datos dentro de Couchbase Server. Una descripción de bajo nivel está disponible en la documentación sobre vBuckets (enlace).
Si los datos se replican, MongoDB necesitaría veintisiete nodos para distribuir las operaciones de escritura a nueve nodos.
Nota
MongoDB se basa en un único bloqueo por base de datos y nodo (enlace & enlace). Couchbase Server se basa en bloqueos de documentos (más). Couchbase Server no sólo aprovecha más nodos para ejecutar escrituras, sino que ejecuta más escrituras por nodo.