Argonalyst

Sistemas Imperfeitos e Eficiência no Bluesky

Argonalyst
20 February 2025

Sistemas Imperfeitos Podem Ser Benéficos: As Linhas do Tempo Perdas do Bluesky

No design de sistemas, muitas vezes buscamos a perfeição em aspectos como consistência de dados, disponibilidade e latência. Contudo, alcançar um sistema ideal que possua perfeita consistência, disponibilidade máxima e latência mínima é uma tarefa extremamente desafiadora, quando não impossível.

Recentemente, fiz grandes concessões no design do Feed/Timeline do Bluesky, priorizando a performance das gravações e reduzindo a consistência sem impactar negativamente a experiência do usuário. Essa abordagem resultou em uma diminuição de mais de 96% nos tempos de latência P99.

O processo de "Fanout" no Bluesky consiste em indexar uma postagem e distribuí-la entre os seguidores do usuário. Quando alguém faz uma postagem, ela é registrada em um banco de dados e referenciada nos Timelines dos seguidores. Esse processo exige que olhemos para cada seguidor e insiramos a referência da postagem em suas tabelas de Timeline.

Com cerca de 32 milhões de usuários, o banco de dados de Timelines do Bluesky é dividido em centenas de shards. Essa estrutura permite que cada usuário tenha sua própria partição de Timeline, mas, em situações de carga elevada, a atividade de certos usuários pode sobrecarregar os shards, criando o que chamamos de "Hot Shard".

Quando um usuário segue um número excessivo de outros, sua Timeline se torna hiperativa, o que pode prejudicar o desempenho das operações. Por exemplo, se um usuário é seguido por 2.000.000 de pessoas, um único post pode levar até 5 minutos para ser completamente distribuído devido a latências.

Para resolver esse problema, introduzimos as Linhas do Tempo Perdas. Essa metodologia aplica um fator de perda, que limita a quantidade de gravações que um usuário pode realizar em sua Timeline, baseado no número de seguidores. Assim, se um usuário estiver além de um limite razoável de seguidores, as gravações em sua Timeline são probabilisticamente descartadas.

Além disso, implementamos um sistema de cache que armazena contas com muitos seguidores, permitindo que as consultas sejam feitas de maneira eficiente sem sobrecarregar o banco de dados. Essa abordagem possibilitou que, durante os períodos de maior atividade, realizássemos mais de um milhão de gravações por segundo.

Os resultados foram impressionantes. Após a implementação das Linhas do Tempo Perdas, não há mais "hot shards" nos clusters de Timelines e o tempo de duração de um trabalho completo de Fanout foi reduzido em mais de 96%. Jobs que anteriormente levavam de 5 a 10 minutos agora são concluídos em menos de 10 segundos.

Entender onde é aceitável ser imperfeito permite que troquemos consistência por outros aspectos desejáveis, escalando nossos sistemas para níveis mais altos. O Bluesky continua a explorar melhorias em sua arquitetura de Timelines, mas este foi um grande avanço em direção à eficiência e escalabilidade.

Últimos vídeos

Confira os últimos vídeos publicados no canal

Argonalyst

O plano SECRETO das Big Techs para cobrar MUITO mais pela IA

Argonalyst

BOLHA da IA ou NOVA era de crescimento EXPONENCIAL? O mercado está dividido

Argonalyst

Nova IA da OpenAI traduz em TEMPO REAL e pode mudar o mundo dos negócios

Argonalyst

Spec Driven Development (SDD): a habilidade que vai separar quem SOBREVIVE à IA

Argonalyst

DeepSeek V4: o Open Source que está AMEAÇANDO GPT 5.5 e Opus 4.7

Argonalyst

Prometeram Renda Universal… mas só veio desemprego?

Argonalyst

Mythos Preview: o começo da AGI ou só mais hype?

Argonalyst

Ele automatizou TUDO com IA… e pode virar bilionário sozinho

Argonalyst

Programadores foram só o começo… agora a IA quer o topo

Argonalyst

Multi-agentes, memória e IA eterna: o vazamento que mudou tudo

Argonalyst

VIBE CODING vai acabar… e o que vem agora é muito mais SINISTRO

Argonalyst

IA na Guerra: estamos criando algo mais PERIGOSO que a Bomba Atômica?

Argonalyst

O dinheiro vai desaparecer? A era da IA pode mudar tudo

Argonalyst

O Apocalipse do SaaS: Como a IA pode DESTRUIR o modelo bilionário do software

Argonalyst

Bitcoin é software… e o software está morrendo (isso explica a queda?)