Saltar al contenido
Volver al catálogo
Proyecto key-value-dbBases de datosAvanzadoPróximamente

Construye tu propia base de datos clave-valor

Construye una base de datos clave-valor desde cero. Implementa un motor con WAL, índices y compactación para entender cómo persisten tus datos.

Constrúyelo en tu lenguaje

El tester trata tu programa como una caja negra: sirve cualquier lenguaje. Estos son los más cómodos para este proyecto.

Idioma del temario

Las guías de las etapas se leen en este idioma. Solo aparecen los idiomas en los que este proyecto ya está traducido completo; el idioma de la interfaz no cambia.

De qué trata este proyecto

Proyecto en preparación: estamos completando y verificando el recorrido de implementación y sus pruebas. Las capacidades descritas son el objetivo del proyecto; todavía no está habilitado para comenzar.

«La base de datos lo guarda» es una de esas frases que damos por hechas. Este reto la desmonta: verás exactamente en qué momento un dato deja de estar solo en memoria y sobrevive a un corte de luz.

Construirás un motor de almacenamiento estilo LSM: escrituras al log, memtable en memoria, volcado a ficheros ordenados, índices para leer rápido y compactación para que el disco no crezca sin control. Y lo someterás a cortes brutales para comprobar que recupera.

Hoja de ruta

14 etapas repartidas en 4 fases. Cada etapa trae su guía y sus tests: avanzas cuando pasan.

  1. Fase 14 etapas

    Guardar y recuperar

    API en memoria, write-ahead log y recuperación reproduciendo el log al arrancar.

  2. Fase 24 etapas

    Bajar a disco

    Memtable, volcado a ficheros ordenados inmutables y lectura combinada.

  3. Fase 33 etapas

    Leer rápido

    Índice disperso, filtros de Bloom y escaneos por rango.

  4. Fase 43 etapas

    No crecer para siempre

    Compactación por niveles, borrados con tombstones y medición del coste.

Antes de empezar

Un motor de almacenamiento clave-valor embebido con API get/put/delete/scan: write-ahead log para durabilidad, memtable ordenada, ficheros inmutables en disco con índice disperso, filtros de Bloom para descartar lecturas y compactación en segundo plano.

  • vector-search-engine
    Próximamente

    Construye tu propio buscador vectorial

    Construye un buscador vectorial desde cero. Crea un índice con búsqueda exacta, filtros y un grafo HNSW simplificado para búsqueda aproximada.

    Avanzado5 etapas~18 hBases de datos
    vectoresbúsqueda aproximadaHNSW+1

    TypeScript · Python · Go

  • redis
    Próximamente

    Construye tu propio Redis

    Construye un servidor compatible con Redis desde cero. Implementa RESP, un bucle de eventos y expiración de claves, y conéctate con redis-cli.

    Intermedio10 etapas~14 hBases de datos
    RESPTCPeventos+1

    Go · Rust · Python

  • sqlite-reader
    Próximamente

    Construye tu propio lector de SQLite

    Construye un lector de SQLite desde cero. Abre un archivo real, recorre sus B-trees y ejecuta consultas SELECT al decodificar el formato binario documentado.

    Avanzado10 etapas~15 hBases de datos
    formato binarioB-treeSQL

    Go · Python · Java