Arquitectura
Cómo está construido TeselaDB: nodos iguales, rangos replicados y un hilo por núcleo.
Esta página cuenta lo que pasa por dentro. No necesitas saberlo para usar TeselaDB, pero ayuda a entender sus garantías y a operarlo. Hay una versión con diagramas en Arquitectura.
Las piezas
| Pieza | Qué hace |
|---|---|
| Nodo | Un proceso por máquina. Todos ejecutan el mismo binario y cualquiera recibe peticiones de los drivers. |
| Núcleo | Cada nodo tiene un hilo por núcleo de CPU, dueño de sus rangos, su log y su almacenamiento. |
| Rango | Un intervalo de claves de una colección, con su propio grupo Raft. |
| Réplica | Una copia de un rango en un nodo. Una de ellas es la líder. |
| Group 0 | El grupo Raft de metadatos: nodos, catálogo, descriptores de rango y configuración. |
El camino de una petición
- Tu driver manda la petición a cualquier nodo.
- El router de ese nodo busca qué rango guarda cada documento y quién es su líder.
- El líder evalúa la operación y la propone en el log de Raft del rango.
- Cuando la mayoría de las réplicas la tienen en disco, se aplica y el nodo responde.
Almacenamiento
Cada núcleo tiene un LSM con memtable, ficheros SST y compactación, y guarda varias versiones de cada documento (MVCC). El log de Raft del núcleo hace también de log de escritura del LSM, así que cada escritura llega al disco una sola vez.
Repartirse sola
Un rango se divide al superar 64 MiB de datos vivos o cuando recibe más operaciones de las que admite su umbral. El equilibrador reparte réplicas por número, carga y espacio libre, y líderes entre nodos. Dos rangos vecinos pequeños y fríos se fusionan.
Sigue con Rangos y réplicas.