Open Source im professionellen Einsatz

Git 2.11 verbessert Performance und den Umgang mit SHA-1-Hashes

30.11.2016

Unterstützt von rund 70 Entwicklern ist Git 2.11 erschienen. Das kürzt nun SHA-1-Hashes intelligenter ab und optimiert den Zugriff auf so genannte Delta Chains.

381

Für Objekte nutzt Git üblicherweise SHA-1-Hashes, die sehr lang werden können. Der Vorteil ist: Kollisionen treten dabei so gut wie nicht auf. Der Nachteil: Im täglichen Umgang sind die Hashes nicht sehr praktikabel. Also haben die Entwickler sie aus Gründen der Handhabbarkeit verkürzt. Neues Problem: Kollisionen bei verkürzten Hashes treten wesentlich häufiger auf. Daher checkt Git stellenweise Ähnlichkeiten der Hashes, bis es auf Unterschiede trifft.

Wachsen die Projekte allerdings, kommt es vor, dass die verkürzten Hashes doppelt auftreten. Und ein stark wachsendes Projekt ist der Linux-Kernel, für den Git erfunden wurde. Git 2.11 will auf solche Konflikte reagieren, indem es mitwachsende Abkürzungen für Commits und Bug Reports wählt, die länger werden, wenn das Repository wächst. Stößt Git doch mal auf doppelte Hashes, zeigt es nun beide an und der User darf sich für eines davon entscheiden. Oder Git erkennt von allein, welches Objekt der User meint, dank der etwa in "git log" eingebauten Intelligenz.

Auch an der Performance haben die Entwickler geschraubt, was Git Performance-Gewinne im Umgang mit Delta Chains beschert. Den Hintergrund erklärt das ausführliche Changelog sehr schön. Die kurze Version: Um Platz zu sparen, speichert Git Inhalte in Form von Objekten, die den Namen von Hashes tragen. Identische Inhalte muss die Software so nur ein Mal speichern. Bei nur leichten Abweichungen heißt das abweichende Objekt Delta. Sein Inhalt besteht aus einem Verweis auf das ähnliche Objekt und einer Auflistung der dazu bestehenden Abweichungen (etwa "remove Bytes 50-100"). Ändern sich Inhalte, entstehen Ketten solcher Verweise mit bis zu 50 Objekten, die Delta Chains.

Diese Chains reduziert Git bei einem aggressiven Repack vom aktuellen Default-Wert 250 auf 50, was die CPU besser verträgt. Zudem wurde der "deltaBaseCache", der diese Deltas puffert, überarbeitet was Operationen in Repositories teils deutlich beschleunigt.

Auch einen Cache für die Suche nach Objekten über Packfiles haben die Entwickler eingerichtet, der das Repacking messbar schneller macht. Git prozessiert zudem Patch IDs, die wichtig für "git rebase" sind, schneller. Ein neues Protokoll beschleunigt Checkouts, indem Git Overhead beim Kommunizieren mit den Filterprogrammen einspart. Das komplette Changelog findet sich in einem Blogeintrag auf Github, wo auch die neue Version zu finden ist.

Ähnliche Artikel

  • Außen RPM, innen Delta

    Es ist ärgerlich, wegen eines kleinen Bugfix ein 50 MByte großes Paket neu herunterladen zu müssen. Abhilfe schafft der Delta-RPM-Mechanismus von Suse. Delta-RPMs enthalten neben einem vollständigen Header ein binäres Diff des Hauptinhalts. Seit neuestem stellen die Tools auch Deltas von ISO-Images her.

  • IV. Symphonie von Reiser

    Das neu entwickelte Reiser 4 steht kurz vor seiner Premiere im Kernel 2.6. Es verspricht atomare Transaktionen, schreibt und liest flotter als sein Vorgänger ReiserFS, nutzt die Platte besser und ist durch Plugins erweiterbar. Dancing Trees dirigieren dieses File-Orchester.

  • LDAP-Replikation

    Replikation stellt sicher, dass der Verzeichnisdienst LDAP verfügbar ist. Seit Version 2.4 funktioniert sie auch dann, wenn ein Master ausfällt. Das Zauberwort heißt Multimaster-Replikation.

  • Linus Torvalds zu SHA-1 und Git

    Nachdem Google am 23. Februar eine Technik vorstellte, um SHA-1-Kollisionen künstlich hervorzurufen, stellt sich auch die Frage nach der SHA-1-Nutzung von Git. Linus Torvalds gibt sich dennoch entspannt.

  • Kurvendiskussion

    Zahlenreihen taugen vielleicht für gelangweilte Buchhalter, nicht aber für Programmierer. Die bevorzugen Grafiken, besonders wenn sie den Wertverlauf ihres Aktienportfolios beschreiben. Das vorgestellte Perl-Skript zeichnet Turmdiagramme und hilft die Performance im Auge zu behalten.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.