Build a vector search engine
Build a vector index with exact search, filters, and a simplified HNSW graph.
TypeScript · Python · Go
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.
«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.
14 stages across 4 phases. Every stage comes with its guide and its tests: you move on when they pass.
API en memoria, write-ahead log y recuperación reproduciendo el log al arrancar.
Memtable, volcado a ficheros ordenados inmutables y lectura combinada.
Índice disperso, filtros de Bloom y escaneos por rango.
Compactación por niveles, borrados con tombstones y medición del coste.
Build a vector index with exact search, filters, and a simplified HNSW graph.
TypeScript · Python · Go
Implement the RESP protocol, an event loop and key expiry. A real server that talks to redis-cli.
Go · Rust · Python
Open a real .db, walk its B-trees and run SELECTs. Reverse engineering of a documented binary format.
Go · Python · Java