Como você mencionou o programa diff
, posso supor com segurança que você está falando sobre arquivos de texto ...
Como você mencionou 10 GB em 200 milhões de linhas, este parece ser um único arquivo com um comprimento médio de linha de 50, o que parece OK.
- Em tal situação, um sistema de controle de versão é o caminho certo a seguir.
Você precisa encontrar o sistema de controle de versão correto para o seu problema. Deixe-me, assim, supor sua informação:
- Uma nova versão de arquivo todos os dias e 1% do conteúdo muda de um dia para o outro.
Dado que git
não mantém deltas de arquivo, mas sim armazena arquivos compactados gzip -4, espero que depois de aprox. 2-3 semanas, o git consome mais espaço em disco do que o esperado. Então git não é a ferramenta certa para o seu caso.
Existem outros sistemas de controle de versão que usam diferenças para o método de tratamento de histórico.
-
O RCS armazena diffs invertidos e pode ser uma solução, mas o RCS é lento para arquivos > 256KBytes e RCS levam mais tempo se você não precisar da versão mais recente, mas algo mais antigo.
-
O SCCS é baseado em diffs, mas o formato de armazenamento é o chamado weave format
que efetivamente armazena todas as versões ao mesmo tempo e permite que você recupere qualquer versão no mesmo tempo fixo.
O SCCS criará um arquivo de histórico inicial de 10GB e esse arquivo de histórico aumentará em 1% para cada nova versão do seu caso, então espero que o arquivo de histórico use aprox. 36,5 GB após um ano. Para o GIT, espero um requisito de espaço em disco de 100 a 400 GB após um ano.
O SCCS é OpenSource e pode ser recuperado de:
link
O SCCS é mantido desde 1972 (43 anos) e, portanto, pode ser visto como maduro ;-)
e BTW: não conheço sistema de controle de versão mais rápido.