Pergunta

Temos um repositório SVN bastante grande (50 GB, mais de 100.000 revisões). Trabalhar com ele é bem lento e meu palpite é que a razão para isso é a estrutura de diretório plana em db/rotações e db/revprops (onde cada revisão é um arquivo).

Usamos o formato FSFS com SVN 1.5 (em um servidor Linux), mas o repositório foi criado com uma versão SVN mais antiga. Agora eu li que o SVN 1.5 suporta "sharding" e entendi que esse recurso distribui as revisões em vários diretórios, para que um único diretório não contenha tantos arquivos. Isso parece bastante útil, mas infelizmente parece que esse recurso é usado apenas com repositórios que são criados recentemente com o SVN 1.5.

Como posso converter um grande repositório linear existente em um repositório sharded? O manual menciona a ferramenta "fsfs-shard.py", mas esse script diz "esse script está inacabado e não está pronto para ser usado em dados ao vivo. Confie em nós". Então, eu definitivamente não quero usar isso. Existe uma alternativa?

Foi útil?

Solução

A melhor maneira é como mencionado o cilindro de despejo/carga. Mas você pode tentar o melhoria.

svnadmin upgrade

Faça uma cópia do seu repositório primeiro tente a atualização e teste -a ... (não perca fazer um backup).

Outras dicas

Vai um svnadmin dump e svnadmin load Faça o truque? http://subversion.apache.org/faq.html#dumpload

Como o processo de despejo/restauração requer muito espaço em disco e tempo de processamento, publiquei (em 2010) uma versão aprimorada de fsfs-reshard.py que inclui suporte para subversão 1.6 Formato FSFS 5:https://github.com/ymartin59/svn-fsfs-seshard

Ele suporta alternar entre layouts lineares e sharded, desempacotando fragmentos quando necessário. Graças à computação do Shard Statistics, você pode antecipar tamanhos de revisão embalados selecionando o tamanho apropriado do Shard.

Claro que deve ser usado com cuidado:

  • Primeiro procedimento de teste em uma cópia do repositório, se possível
  • Prepare -se para ser restaurado
  • Evite o acesso ao repositório ao processamento
  • Corre svnadmin verify Antes de colocar ao vivo
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top