Cómo viaja una petición

El recorrido de una lectura o una escritura desde el driver hasta el disco.

Una petición de tu driver puede llegar a cualquier nodo. Desde ahí viaja hasta el rango que guarda los datos y vuelve con la respuesta.

Cómo funciona

driver ──▶ cualquier nodo ──▶ router: ¿qué rango y qué líder?
                                   │
                                   ▼
                      líder del rango ──▶ log de Raft ──▶ mayoría en disco
                                   │
                                   ▼
                           aplicar y responder

El nodo que recibe la petición la pasa a su router, que busca en el catálogo qué rango guarda cada documento y quién es su líder, y si ese líder vive en otro nodo le reenvía la operación por la red interna del clúster sin que el driver se entere. El líder la evalúa y, si escribe, la propone en el log de Raft del rango. Cuando la mayoría la tiene en disco, se aplica y la respuesta vuelve al driver.

Una consulta que toca varios rangos se reparte entre ellos. El router junta después los resultados. Una transacción que toca varios rangos se coordina con un registro de transacción.

Qué implica para tu aplicación

Tu aplicación puede poner cualquier nodo en la cadena de conexión. Un nodo que cae solo corta las peticiones que tenía en curso. El driver las reintenta en otro nodo.

Límites

Cada salto entre nodos añade la latencia de la red, que apenas se nota dentro de un mismo centro de datos y crece cuando las réplicas de un rango viven en regiones distintas. Una consulta que toca muchos rangos espera al más lento.

Más información