Skip to content
Back to the catalog
Project key-value-dbDatabasesAdvancedBeta

Base de datos clave-valor

Un motor de almacenamiento con WAL, índices y compactación. Entiende cómo y cuándo persisten tus datos.

Build it in your language

The tester treats your program as a black box: any language works. These are just the most convenient ones for this project.

Guide language

The stage guides read in this language. Only languages this project is fully translated into show up here; the interface language does not change.

What this project is about

«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.

Roadmap

14 stages across 4 phases. Every stage comes with its guide and its tests: you move on when they pass.

  1. Phase 14 stages

    Guardar y recuperar

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

    1. 01Almacén en memoria
    2. 02Protocolo de comandos
    3. 03Write-ahead log
    4. 04Recuperación del WAL
  2. Phase 24 stages

    Bajar a disco

    Memtable, volcado a ficheros ordenados inmutables y lectura combinada.

    1. 01Memtable ordenada
    2. 02Escribir SSTables
    3. 03Leer SSTables
    4. 04Lectura entre niveles
  3. Phase 33 stages

    Leer rápido

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

    1. 01Índice disperso
    2. 02Filtro de Bloom
    3. 03Escaneos por rango
  4. Phase 43 stages

    No crecer para siempre

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

    1. 01Borrados persistentes
    2. 02Compactación por niveles
    3. 03Medir el costo

Before you start

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
    Beta

    Build a vector search engine

    Build a vector index with exact search, filters, and a simplified HNSW graph.

    Advanced5 stages~18 hDatabases
    vectoresbusqueda aproximadahnsw+1

    TypeScript · Python · Go

  • redis
    Beta

    Build your own Redis

    Implement the RESP protocol, an event loop and key expiry. A real server that talks to redis-cli.

    Intermediate10 stages~14 hDatabases
    resptcpeventos+1

    Go · Rust · Python

  • sqlite-reader
    Beta

    Read a SQLite file

    Open a real .db, walk its B-trees and run SELECTs. Reverse engineering of a documented binary format.

    Advanced10 stages~15 hDatabases
    formato binariobtreesql

    Go · Python · Java