BookinglyTech News
Infraestructura

Perplexity sustituye DynamoDB por CobbleDB y corta la latencia de consultas cinco veces

La startup migró su capa de búsqueda a un almacén clave‑valor propio escrito en Rust, logrando una reducción de latencia de 5× y un ahorro del 20 % en costos de almacenamiento.

2 min de lecturaInfoQ0 vistas

Perplexity ha dejado de usar Amazon DynamoDB en su capa de búsqueda y ha puesto en producción CobbleDB, un almacén clave‑valor distribuido desarrollado internamente en Rust. La migración responde a latencias y facturas de almacenamiento que se volvieron insostenibles al servir lotes de documentos de varios kilobytes a modelos de lenguaje bajo más de 200 000 solicitudes por segundo.

Cada consulta genera entre 100 y 120 claves de página y la capa de recuperación las agrupa en lotes de 10‑20 claves. A diferencia de los buscadores tradicionales, la respuesta a un modelo LLM necesita el fragmento completo y su vector denso, lo que eleva el tamaño medio del registro a unos 50 KB. Con DynamoDB, el coste por byte transferido y la falta de visibilidad sobre la ubicación de particiones provocaban picos de latencia y contención entre lecturas calientes y escrituras de re‑procesamiento.

Para romper ese cuello de botella, Perplexity dividió su arquitectura en tres sistemas: Pillar (gestión duradera sobre YTsaurus), Lorry (agregación por lotes en S3) y CobbleDB (servicio de baja latencia). CobbleDB se apoya en RocksDB como motor embebido, usando discos NVMe y caché mapeada en memoria. Un router sin estado asigna la clave hash a una partición y dirige la petición al replicado más cercano dentro de la zona de disponibilidad; si la latencia supera un umbral, el router lanza una lectura especulativa a otro nodo.

El código del motor incluye una API Rust que aprovecha el método batched_multi_get de RocksDB, reduciendo la sobrecarga de round‑trip. En producción, la latencia mediana de lecturas por lote pasó de 31,4 ms a 5,60 ms, el percentil 90 cayó de 56,7 ms a 9,77 ms y el percentil 99 de 123 ms a 24,2 ms. Los benchmarks sintéticos mostraron hasta 500 000 req/s con cargas de 100 KB.

El cambio implica que Perplexity asume ahora la gestión de ciclo de vida de los nodos, copias de seguridad y re‑balanceo de particiones, y debe vivir con consistencia eventual, ya que los réplicas aplican actualizaciones de forma asíncrona. El CEO Aravind Srinivas señaló que los 40 000 líneas de Rust fueron escritas en dos meses por dos ingenieros asistidos por agentes de IA para pruebas e infraestructura. La empresa planea publicar el código de CobbleDB como open source en una próxima versión.

Esta movida muestra cómo una solución a medida puede superar los límites de los servicios gestionados cuando el patrón de acceso es altamente especializado. Queda pendiente observar cómo evoluciona la operatividad interna y si otras compañías adoptan arquitecturas similares para sus pipelines de IA.