structured snippets sitio rich paginas marcado google estructurados detectamos datos data con codigo web couchdb distributed-computing eventual-consistency nosql

web - sitio - rich snippets google



¿Deben los usuarios ser dirigidos a nodos de datos específicos cuando usan un almacén de datos consistente al final? (1)

De acuerdo con el Teorema CAP , los sistemas distribuidos pueden tener una consistencia completa (todos los nodos ven los mismos datos al mismo tiempo) o disponibilidad (cada solicitud recibe una respuesta). Tendrá que intercambiar uno por el otro durante una falla en la instancia de la partición o almacén de datos.

¿Debo garantizar que un usuario determinado siempre se dirija a la misma instancia del almacén de datos?

Idealmente, ¡no deberías! ¿Qué harás cuando la instancia determinada falle? Una característica importante de un almacén de datos distribuido debe estar disponible a pesar de fallas de red o instancia.

Si un usuario de una sesión determinada siempre se dirige al mismo nodo de sofá, ¿no se verán los problemas de coherencia en torno a los datos de usuario "compartidos" y, por lo tanto, se simplificarán enormemente?

Tienes razón, la arquitectura sería mucho más simple de esa manera, pero de nuevo, ¿qué harías si esa instancia falla? Se han invertido muchos esfuerzos de ingeniería en sistemas distribuidos para permitir que varias instancias respondan a una consulta. No estoy seguro acerca de CouchDB, pero Cassandra le permite elegir su modelo de consistencia, tendrá que intercambiar la disponibilidad para un mayor grado de consistencia. El cliente está configurado para solicitar servidores por turnos de forma predeterminada, que distribuye la carga.

Yo recomendaría que leyeras el periódico Dynamo . Los autores describen una gran cantidad de detalles de ingeniería detrás de una base de datos distribuida.

Cuando ejecuto una aplicación web en una granja de servidores que utiliza un almacén de datos distribuido que finalmente es consistente (CouchDB en mi caso), ¿debería garantizar que un usuario determinado siempre se dirija a la misma instancia del almacén de datos?

Me parece que el enfoque alternativo, donde cualquier solicitud web puede usar cualquier almacén de datos, agrega complejidad significativa para tratar problemas de coherencia (reintentos, revisiones, etc.). Por otro lado, si un usuario en una sesión determinada siempre se dirige al mismo nodo de sofá, ¿no se verán mis problemas de consistencia girando principalmente en torno a datos de usuario "compartidos" y, por lo tanto, se simplificarán enormemente?

También me interesan las estrategias para dirigir a los usuarios, pero tal vez lo tenga para otra pregunta (comentarios bienvenidos).