Reshard bestehende große SVN-Repository
-
26-09-2019 - |
Frage
Wir haben eine ziemlich große SVN-Repository (50 GB, über 100.000 Versionen). Die Arbeit mit ihr ist ziemlich langsam und meine Vermutung ist, dass der Grund dafür ist die flache Verzeichnisstruktur in db / Drehzahl und db / revprops (Wo jede Revision ist eine Datei).
Wir verwenden das FSFS Format mit SVN 1.5 (auf einem Linux-Server), aber der Repo wurde mit einer älteren SVN-Version erstellt. Nun lese ich, dass SVN 1.5 unterstützt „Sharding“ und ich verstand, dass diese Funktion die Revisionen in mehrere Verzeichnisse verteilt so ein einzelnes Verzeichnis nicht so viele Dateien enthalten. Das klingt ziemlich nützlich, aber leider sieht es aus wie diese Funktion nur mit Repositorys verwendet wird, die frisch erstellt werden, mit SVN 1.5.
Wie kann ich eine große bestehende lineare Repo zu einem sharded Repo-Format konvertieren? Das Handbuch erwähnt der „fsfs-reshard.py“, aber das Skript sagt „Dieses Skript unvollendet ist und nicht bereit, sich auf Live-Daten verwendet werden. Vertrauen Sie uns.“. Also ich möchte auf jeden Fall nicht, dass verwenden. Gibt es eine Alternative?
Lösung
Der beste Weg ist, wie erwähnt dump / Last cylcle. Aber man kann versuchen, die Upgrade .
svnadmin upgrade
Erstellen Sie eine Kopie Ihrer Repo zunächst versuchen, das Upgrade und Test it .... (verpassen Sie nicht ein Backup zu machen).
Andere Tipps
Wird ein svnadmin dump
und svnadmin load
der Trick? http://subversion.apache.org/faq.html#dumpload
Da Dump / Restore-Prozess viel Speicherplatz und Verarbeitungszeit erfordert, habe ich veröffentlicht (im Jahr 2010) eine verbesserte Version von fsfs-reshard.py
die Träger 5 für Subversion 1.6 FSFS Format enthält:
https://github.com/ymartin59/svn-fsfs-reshard
Es unterstützt Schalter zwischen linear sharded Layouts, Scherben Auspacken, wenn erforderlich. Dank Scherbe Statistiken Berechnung kann antizipieren Sie Revisions Größen Auswahl geeigneter Scherbe Größe verpackt.
Natürlich muss es sein, mit Vorsicht verwendet
- Erste Testverfahren auf einer Repository Kopie, wenn möglich
- Sie fertig, eine Sicherung wiederhergestellt werden
- Prevent Zugriff auf Repository bei der Verarbeitung
- Ausführen
svnadmin verify
bevor setzen sie leben