SOFTWARE

Como o Cursor está a puxar o Git para lá do limite

A SpaceX pegou no Git, encostou-o ao S3 e mudou a forma como escala. Em vez de mais réplicas NVMe, um motor novo trata da dor de cabeça da sincronização.

Como o Cursor está a puxar o Git para lá do limite

GitHub passou o verão a explicar quedas de serviço, e o Cursor aproveitou para mostrar outra forma de escalar Git. Em vez de multiplicar réplicas NVMe até rebentar, a subsidiária da SpaceX encostou o controlo de versões a armazenamento de objectos, com S3 como fonte de verdade. O resultado é Origin, um serviço Git próprio, alimentado por um motor interno chamado Continuity, já em beta para clientes pagantes.

Vicent Martí, principal systems engineer no Cursor e ex-GitHub, detalhou a abordagem num extenso post técnico. Parte da credibilidade vem daqui: esteve anos a viver por dentro a arquitectura que hoje domina o mercado. Git foi desenhado por Linus Torvalds como um content-addressable store, com tudo indexado por hashes SHA-1, e vê cada repositório como um grafo acíclico dirigido. Isto é elegante, mas obriga o servidor a percorrer o grafo quando não conhece um SHA à partida. Escala mal quando tens centenas de milhões de repositórios e agentes a martelar a API.

GitHub respondeu a este problema com Spokes, uma arquitectura que mantém pelo menos três cópias sincronizadas de cada repo em SSD NVMe rápidos. Funciona, até deixar de funcionar: quanto mais réplicas, mais cara e lenta fica a sincronização. E Git não lida bem com consistência eventual, por isso não há muito espaço para “logo converge”. Quando adicionas agentes de IA a abrir e largar milhares de repositórios quase descartáveis, como lembra Martí, a pressão sobe mais um nível. Há semanas, essa pressão traduziu-se em falhas prolongadas no GitHub.

O Cursor partiu de outro ponto: se a dor é manter réplicas sincronizadas, então tira o centro de gravidade dessas réplicas. Em Origin, os pushes entram numa write-ahead log (WAL) em S3, gravados como objectos imutáveis. S3 passa a ser a fonte de verdade, com resiliência e escala praticamente infinitas, enquanto o trabalho de baixa latência vive em caches locais em NVMe. Sempre que possível, as alterações são agrupadas para maximizar débito e reduzir o churning constante de pequenos writes.

Na prática, o que o Continuity faz é usar o armazenamento de objectos, que já alimenta bases de dados, registos de containers e brokers de mensagens, como camada de persistência primária para Git. O repositório deixa de ser uma árvore de ficheiros replicada entre máquinas e passa a ser um conjunto de objectos referenciados, com a camada de execução local a servir clones, fetches e listagens recentes sem ter de percorrer o grafo completo em cada pedido. NVMe continua crítico, mas como cache quente, não como cofre de longa duração.

Para equipas em Portugal, isto não é só curiosidade de infra de um unicórnio de IA. Se Origin cumprir o que promete, pode tornar-se alternativa séria a um GitHub cada vez mais pesado e central, sobretudo para empresas com muitos microserviços gerados ou mantidos por agentes. O Cursor já tinha tentado capitalizar o mau momento recente do GitHub com o lançamento do Origin, como contámos em análise anterior. Agora mostra que não está apenas a vender interface com IA por cima de Git alheio, está a mexer na própria fundação. Git continua o mesmo, mas a forma como o escoramos para a próxima década pode estar a mudar aqui.

Fonte: The Register

Newsletter

Os artigos que importam, duas vezes por semana.

Terça e sexta, cinco minutos de leitura. Sem spam, cancelas quando quiseres.

Comentários · 0