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.
TypeScript · Python · Go
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.
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.
14 etapas repartidas en 4 fases. Cada etapa trae su guía y sus tests: avanzas cuando pasan.
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.
Construye un buscador vectorial desde cero. Crea un índice con búsqueda exacta, filtros y un grafo HNSW simplificado para búsqueda aproximada.
TypeScript · Python · Go
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.
Go · Rust · Python
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.
Go · Python · Java