Estructura de Datos Concurrente para Cache de Catálogo en Marketplace Bogotano
Visión general
De qué trata este proyecto.
Implementa en Rust dos variantes: una con std::sync::RwLock<HashMap> y otra con DashMap. Soporta operaciones get, insert, invalidate y bulk_invalidate por prefijo. Diseña tests con loom para verificar la corrección bajo interleavings adversariales, y benchmarks con criterion para medir lecturas y escrituras concurrentes. Compara contra el Mutex<HashMap> baseline en 4 y 16 threads. Discute trade-offs (RwLock puede sufrir writer starvation; DashMap tiene overhead por bucket). Entrega ambas variantes, los tests loom, el reporte criterion y un memo de 4 páginas con recomendación.
El Briefing
Lo que harás y lo que demostrarás.
Reemplazar un cache de catálogo Mutex<HashMap> por una estructura concurrente correcta y demostrar mejora con tests deterministas y benchmarks responsables.
Earning criteria — what you'll demonstrate
- Aplicar RwLock y DashMap correctamente en Rust
- Verificar corrección de estructuras concurrentes con loom
- Medir mejoras con criterion de forma reproducible
- Razonar sobre trade-offs (writer starvation, overhead por bucket)
Encaje académico
Dónde encaja esto en tus estudios.
Afina las mismas habilidades que tu titulación espera de ti.
Habilidades
Habilidades que demostrarás.
Cada una aparece en tu credencial verificada.
Carreras
Roles para los que esto te prepara.
Títulos reales. Puentes de habilidades reales. Elige el que más se acerque a tu trayectoria.
Trayectorias profesionales que esto construye
Roles canónicosIngeniero de Software
Diseñar estructuras concurrentes en Rust con verificación loom es habilidad rara y muy demandada en empresas con sistemas críticos.
Este proyecto afina
- concurrent-data-structures
- rust-concurrency
- rwlock-dashmap
Ingeniero de Backend
Backend engineers que aplican Rust con corrección concurrente probada construyen servicios que sobreviven al siguiente pico de tráfico.
Este proyecto afina
- rust-concurrency
- concurrent-data-structures
- benchmarking