Univention Bugzilla – Bug 21010
Geschwindigkeit Synchronisation Gruppenmitglieder
Last modified: 2011-12-13 15:50:03 CET
Die Funktionen für den Abgleich von Gruppenmitgliedschaften benötigen für große Gruppen relativ lange, da einige Iterationen über die Mitglieder für den Abgleich gemacht werden. Ich sehe hier folgende Verbesserungsoptionen: - Optimieren des Codes: * verringern der Anzahl der for-Schleifen * verringern der Anzahl der Mappings von Mitglieder-DNs - Optimieren des Verfahrens: Man könnte die zu synchronisierenden Gruppen in eine Liste schreiben, die am Ende eines Sync-Laufs (AD -> UCS oder UCS -> AD) abgearbeitet wird. Wenn mehrere User synchronisiert werden ist vor allem bei großen Gruppen mit erheblichen Verbesserungen zu rechnen, da sie sowohl oft vorkommen als auch hohen Sync-Aufwand generieren.
Es hat jetzt einige Anpassungen für diese Richtung gegeben, siehe auch Bug #23734: - Implementierung von Page Results. Dadurch wird das AD in der Initialisierungsphase nicht mehr in 1000er Schritten durchlaufen, sondern es wird das gesamte AD auf einmal abgefragt. Gerade sehr "alte" ADs haben eine hohe Nummer, weshalb die Iterationen häufig sehr lange gedauert haben. - In der Intialisierungsphase wurden mit jedem Schritt die erzeugten und die geänderten Objekte gesucht. Da jedes geänderte Objekt auch einmal erzeugt wurde, wurden am Anfang alle Objekte doppelt synchronisiert. Das wurde angepasst. - Sobald das AD gepollt wird, werden die neuen Objekte und die geänderten Objekte gesucht. Der Code wurde so ergänzt, dass doppelte Objekte nur einmal synchronisiert werden. - Im Gruppensync wird jetzt ein Cache aufgebaut, so dass jedes Gruppenmitglied im Gruppensync nicht zweimal, sondern nur einmal abgefragt wird. - Es wird bei einigen Suchen jetzt explizit nur nach der DN gesucht. Das ist vor allem bei der Suche nach Benutzer / Gruppen relevant, da AD über eine Art Overlay Module noch einige Zusatzabfragen generiert, IMHO für memberOf. - Das UDM Modul für die Gruppe wurde beim Modifizieren zweimal geöffnet. Das wurde abgestellt.
siehe Bug #23734, changelog Eintrag vorhanden.
UCS 3.0-0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"