A Perplexity migrou sua infraestrutura de busca do Amazon DynamoDB para CobbleDB, um banco de dados distribuído chave-valor desenvolvido internamente em Rust. A migração abordou gargalos severos de latência e custo que surgiram ao servir lotes de documentos de múltiplos kilobytes para modelos de linguagem grandes sob altos volumes de consultas. Ao desacoplar o armazenamento durável de documentos da recuperação de tier quente, o time de engenharia alcançou uma redução de cinco vezes na latência de leitura em lote, enquanto reduzia as despesas gerais de armazenamento em pelo menos vinte por cento.
Padrões de Leitura Únicos em IA
Os motores de resposta de inteligência artificial impõem padrões de leitura distintos da busca de documentos convencional. Cada consulta despachada para a Perplexity gera entre 100 e 120 chaves de página alvo, que o serviço de recuperação divide em lotes paralelos de 10 a 20 chaves. Diferentemente dos mecanismos de busca tradicionais que retornam breves trechos de metadados, a recuperação para modelos de linguagem exige extrair passagens completas divididas em chunks e incorporações de vetores densos, gerando payloads de registros médios de aproximadamente 50 kilobytes.
Em escalas de tráfego de produção ultrapassando 200.000 requisições por segundo, o modelo de precificação baseado em uso do DynamoDB se tornou financeiramente insustentável porque a AWS cobra por cada byte transferido. Além disso, DynamoDB funciona como uma caixa-preta que oculta a colocação interna de partições, políticas de cache de memória e roteamento de réplicas. Os engenheiros não conseguiam evitar picos de latência cauda causados por leituras não em cache, saltos de rede entre zonas ou réplicas atrasadas. Trabalhos de reprocessamento acionados por algoritmos de chunking atualizados ou modelos de embedding mais recentes também empurravam escritas de alto volume diretamente para DynamoDB, criando contenção de vizinhos barulhentos contra requisições de usuários ao vivo.
Arquitetura de Três Camadas
Para resolver essas limitações, a Perplexity dividiu sua arquitetura de armazenamento em três sistemas especializados: Pillar para gerenciamento de estado durável, Lorry para agregação em lote e CobbleDB para serving de baixa latência.
Pillar é executado sobre YTsaurus em unidades de armazenamento mecânico de alta capacidade, mantendo famílias de tabelas versionadas para metadados de página web, passagens e representações de vetores. Transações atômicas de YTsaurus garantem que atualizações de rastreamento, mutações de estado e filas de exportação sejam confirmadas juntas. Lorry atua como um consumidor de fila sem estado que agrupa exportações de Pillar em arquivos alinhados a partições, armazenando os payloads no Amazon S3 enquanto publica notificações de metadados para CobbleDB. Os nós workers de CobbleDB puxam e ingerem esses lotes S3 independentemente, isolando completamente os nós de serving quentes do pipeline de rastreamento intenso em escrita.










