2012-11-13 18 views
5

Abbiamo in programma di avere un repository mirror SVN in un altro ufficio a Sydney. Usiamo il server VisualSVN v2.5.7 in entrambe le posizioni.gestione di file di grandi dimensioni in svnsync

Ho deciso di utilizzare svnsync per farlo. All'inizio volevo sincronizzare tutti i nostri repository e quando tutti sono sincronizzati con il repository mirror, uno scheduler chiamerà svnsync ogni mezzanotte.

Potrebbe sincronizzare 167 revisioni di uno dei nostri repository. Ma alla 168a revisione abbiamo un grosso file (un file oracle zippato di circa 250 MB) che non può essere sincronizzato. Anche se ho modificato i timeout di entrambi i nostri server locali e remoti, non funziona. Si attacca a circa un'ora a un certo punto e mi dà il seguente errore:

Transmitting file data .......................svnsync: E175002: PUT of '/{some path}/{bigfile}.zip': Could not send request body: An established connection was aborted by the software in your host machine. <{target url}>

Qui ci sono le modifiche che ho fatto nel file httpd-custom.conf nel server Apache di VisualSVNs (locale, specchio):

Timeout 300000 
KeepAlive On 
MaxKeepAliveRequests 0 
KeepAliveTimeout 300000 

<IfModule dav_svn_module=""> 
    # Enable a 1 Gb Subversion data cache for both fulltext and deltas. 
    SVNInMemoryCacheSize 1048576 
    SVNCacheTextDeltas On 
    SVNCacheFullTexts On 
    #SVNCompressionLevel 9 
</IfModule> 

Ho persino aumentato il timeout a 600000 o più, ma il risultato è stato lo stesso. Ho lanciato entrambi i server in modalità http. Sulla nostra rete locale è possibile sincronizzare tutto il repository in 20 minuti.

Per quanto riguarda la velocità di caricamento della nostra connessione internet che è di circa 256 Kbs, non mi aspetto questa volta in un ambiente internet. Ma voglio che i server SVN aspettino il timeout impostato per loro, perché possiamo facilmente trasferire file di queste dimensioni in altri server SVN che utilizzano CollabNet Server. Ci vogliono solo 2 ore per essere commesso con successo. Penso che il timeout di 300000 secondi sia molto lontano da 2 ore.

+0

1. Qual è stato il comportamento precedente alla modifica di https-custom.conf con SVNInMemoryCacheSize 1048576, SVNCacheTextDeltas On, SVNCacheFullTexts On? 2. Intendi che sincronizzi i tuoi repository con una connessione da 256kb? È GPRS/3G? Mi piacerebbe riprodurre il comportamento in modo che eventuali dettagli aggiuntivi sul vostro ambiente di rete sarebbero molto apprezzati. – bahrep

+1

1. Ho controllato senza le proprietà che hai citato. Ho rimosso l'intero tag e il risultato è stato incollato solo 20 minuti prima che si verificasse lo stesso errore. –

+1

2. Risposta 1: Abbiamo un altro repository in cui impegniamo le nostre versioni di pre-produzione. Possiamo commettere file piuttosto grandi come il file dmp dmp che ho menzionato nell'argomento principale. Utilizza il server CollabNet utilizzando lo schema svn anziché http o https.Mostra che usando svnsrve è molto meglio che usare il server http Apache in connessioni lente. Risposta 2: usiamo l'ADSL, ma nel nostro paese abbiamo limitazioni sulla velocità di internet. La velocità massima di internet qui è 1024/512 Kbs (Download/Upload), che già usiamo (512/256) Kbs. –

risposta

2

Aggiorna le istanze del server VisualSVN alla versione più recente.

A partire da Subversion 1.8, serf La libreria client HTTP con prestazioni migliori viene utilizzata al posto del precedente neon. Pertanto, è possibile riscontrare meno problemi quando si utilizza svnsync su connessioni instabili con larghezza di banda ridotta.

Regarding our internet connection's uploading speed that is about 256 Kbs

A partire dalla versione 3.0 di famiglia, VisualSVN Server Enterprise Edition è una funzione speciale che dovrebbe aiutare a eliminare il collo di bottiglia della larghezza di banda bassa: Multisite Repository Replication (VDFS).

I repository di subversion basati su VisualSVN Distributed File System si replicano più di 10 volte più velocemente rispetto ai sistemi di replica basati su Write-Through Proxy (per quanto posso dire che si sta utilizzando ora il proxy write-through).

Oltre a ciò, VDFS supporta il blocco, replica le autorizzazioni di accesso degli utenti e garantisce l'esecuzione coerente degli script di hook SVN su tutti i repository replicati.

Problemi correlati