O gerenciador de pacotes Zypper, do openSUSE, acaba de ganhar uma funcionalidade há muito esperada: o suporte a downloads paralelos. Após anos de pedidos da comunidade e discussões técnicas, esse recurso promete melhorar a experiência de atualização e instalação de pacotes no sistema. E nós estamos aqui para contar todos os detalhes!
O que são downloads paralelos e por que isso é importante?
Downloads paralelos são exatamente o que o nome sugere: a capacidade de baixar vários pacotes ao mesmo tempo, em vez de fazer isso um por um. Imagine que você está atualizando seu sistema e precisa baixar 200 pacotes. Com o método tradicional, o Zypper baixa cada pacote sequencialmente, o que pode levar bastante tempo, especialmente se a conexão com o servidor não for das mais rápidas.
Com os downloads paralelos, vários pacotes são baixados simultaneamente, aproveitando ao máximo a largura de banda disponível. Considerando que, ao menos em nossa experiência, o download de pacotes do openSUSE está longe de ser o mais rápido, essa adição pode fazer a diferença no dia a dia.
A necessidade de downloads paralelos foi discutida oficialmente pela primeira vez em 2016, em uma issue no GitHub que reuniu desenvolvedores e usuários do openSUSE. Na época, a ideia era simples: acelerar o processo de atualização, especialmente para usuários do Tumbleweed, a versão rolling release do openSUSE, que frequentemente exige o download de centenas de pacotes.
Um dos principais problemas apontados era a latência das conexões HTTP, que fazia com que cada pacote levasse pelo menos alguns segundos para começar a ser baixado, independentemente do tamanho do arquivo. Com downloads paralelos, essa latência é minimizada, pois vários pacotes são baixados ao mesmo tempo, reduzindo significativamente o tempo total de atualização.
Desafios técnicos
Implementar downloads paralelos não foi uma tarefa simples. Como explicado pelos desenvolvedores, o Zypper e a biblioteca libzypp não foram originalmente projetados para lidar com múltiplas solicitações de download simultâneas. Além disso, era necessário garantir que a interface do usuário (tanto no terminal quanto no YaST) pudesse exibir o progresso de vários downloads ao mesmo tempo, sem causar confusão.
A solução veio com a introdução de um pré-carregador de pacotes, que gerencia as solicitações de download em paralelo antes de iniciar a instalação propriamente dita. Essa abordagem permite que o Zypper baixe vários pacotes ao mesmo tempo, enquanto mantém a estabilidade e a confiabilidade do sistema.
Nesta altura, o recurso de downloads paralelos já foi implementado e está disponível no repositório de desenvolvimento do Zypper. A expectativa é que a funcionalidade seja incluída em uma das próximas versões estáveis do openSUSE, assim como para alguma futura atualização do Tumbleweed.
Enquanto isso, usuários mais experientes podem testar a nova feature compilando o Zypper a partir do código-fonte disponível no GitHub.
Fique por dentro das principais notícias da semana sobre tecnologia e Linux: assine nossa newsletter!