Wir verwenden SVN für unsere Quellcode-Versionskontrolle und experimentieren mit diesem Programm für Nicht-Quellcode-Dateien.Skalierbares (halbe Millionen Dateien) Versionskontrollsystem
Wir arbeiten mit einem großen Satz (300-500k) kurzer (1-4kB) Textdateien, die regelmäßig aktualisiert werden und eine Versionskontrolle benötigen. Wir haben versucht, SVN im Flat-File-Modus zu verwenden, und es hat Schwierigkeiten, den ersten Commit (500k Dateien eingecheckt) zu bewältigen, der ungefähr 36 Stunden dauert.
Auf einer täglichen Basis benötigen wir das System in der Lage, 10k modifizierte Dateien pro Commit-Transaktion in kurzer Zeit (< 5 min) zu behandeln.
Meine Fragen:
- Ist SVN die richtige Lösung für meine Zwecke. Die Anfangsgeschwindigkeit scheint für den praktischen Gebrauch zu langsam zu sein.
- Wenn ja, gibt es eine bestimmte SVN-Server-Implementierung, die schnell ist? (Wir sind derzeit mit dem GNU/Linux-Standard-SVN-Server und Kommandozeilen-Client.)
- Falls nein, was sind die besten f/oss/kommerziellen Alternativen
Dank
bearbeiten 1: Ich brauche eine Versionskontrolle, weil mehrere Personen gleichzeitig die gleichen Dateien modifizieren und manuelle Diff/Merge/Resolve-Konflikte auf die gleiche Weise wie Programmierer Quellcode bearbeiten werden. Daher brauche ich ein zentrales Repository, in das die Leute ihre Arbeit einchecken und die Arbeit anderer überprüfen können. Der Arbeitsablauf ist praktisch identisch mit einem Programmier-Workflow, außer dass die Benutzer keine Programmierer sind und der Dateiinhalt kein Quellcode ist.
Update 1: Es stellt sich heraus, dass das primäre Problem eher ein Dateisystem Problem als ein SVN Problem. Für SVN wurde die Übertragung eines einzelnen Verzeichnisses mit einer halben Million neuen Dateien auch nach 24 Stunden nicht beendet. Die Aufteilung auf 500 Ordner in einem 1x5x10x10-Baum mit 1000 Dateien pro Ordner führte zu einer Commit-Zeit von 70 Minuten. Die Commit-Geschwindigkeit sinkt im Laufe der Zeit für einzelne Ordner mit einer großen Anzahl von Dateien erheblich. Git scheint viel schneller. Wird mit den Zeiten aktualisiert.
Wenn Sie tun, was ich denke, tun Sie, würde ich in eine Art CMS suchen. – erikkallen
Wie andere darauf hingewiesen haben: Es könnte sich lohnen zu erklären, was Sie im Allgemeinen zu lösen versuchen, da ein Versionskontrollsystem * möglicherweise die falsche (zumindest nicht die effizienteste) Lösung für Ihr Problem sein könnte. – paprika
Entweder was erikkallen oben gesagt hat, oder ein Dateisystem mit eingebauter Snapshot-Unterstützung. Weitere Details zu dem Problem wären gut, um festzustellen, ob die Versionskontrolle die richtige Lösung für das Problem ist. – Juliano