Sobre el proyecto
Kahuna es un clúster de servidores diseñado para resolver problemas comunes de sistemas distribuidos: bloqueo distribuido, almacenamiento de clave/valor consistente y secuencias de identificadores ordenadas e idempotentes. Ofrece a los desarrolladores primitivas listas para usar para construir aplicaciones distribuidas fiables y escalables.
Capacidades clave:
- Bloqueo distribuido: sincroniza el acceso a recursos compartidos entre nodos para evitar condiciones de carrera y mantener la consistencia de los datos.
- Almacén de clave/valor: almacena y recupera datos estructurados en todo el clúster con tolerancia a fallos y alto rendimiento, adecuado para metadatos, cachés o estado de aplicaciones.
- Secuenciador distribuido: genera identificadores ordenados globalmente útiles para bases de datos, colas de mensajes y sistemas basados en eventos.
Arquitectura:
Kahuna combina un motor de almacenamiento escalable con consenso basado en Raft. Los datos se organizan en particiones gestionadas de forma independiente. Utiliza el control de concurrencia multiversión (MVCC) para el aislamiento de instantáneas, eliminando los conflictos entre lecturas y escrituras. Cada partición ejecuta su propio grupo Raft para la replicación y la coordinación de escrituras basada en líder.
Las transacciones utilizan una confirmación en dos fases (2PC) con MVCC, compatible con modos de control de concurrencia optimista y pesimista. El sistema escala horizontalmente mediante división y redistribución dinámica de particiones, y mantiene la disponibilidad a través de la replicación Raft y la recuperación automática.
Detalles técnicos:
- Desarrollado con .NET; disponible como herramienta global (`Kahuna.Server` y `Kahuna.Control`).
- Puertos: 2070 (HTTP/gRPC), 2071 (HTTPS), 2072 (gRPC en texto plano).
- Rutas de almacenamiento: Linux/macOS `~/.local/share/kahuna`, Windows `%LOCALAPPDATA%\kahuna`.
- Compatible con HTTPS mediante certificado y TLS mutuo para la autenticación de nodos.
- Operador de Kubernetes (versión alfa) disponible para la gestión automatizada de clústeres.
- Probado con Jepsen para verificar su corrección en condiciones de particiones de red, fallos y desviación de reloj.
- Panel web incluido.
Licencia: MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.