[VIROR][ULI] [Institut für Informatik] [Fakultät für Angewandte Wissenschaften] [Universität Freiburg]

[Home]  [Ebene höher]  [Seitenende]  [Suchen]  [Kontakt]

Hanke, S.: "The Performance of Concurrent Red-Black Tree Algorithms"

Hanke, S., Ottmann, Th., Soisalon-Soininen, E.: Relaxed Balanced Red-Black Trees

Hanke, S., Soisalon-Soininen, E.: Group Updates for Red-Black Trees

K.Larsen, T.Ottmann, E.Soisalon-Soininen: "Relaxed Balance for Search Trees with Local Rebalancing."

Die Relaxed Balance Homepage von Kim Larsen

AOF-Vortrag: Relaxed Balancing (Th. Ottmann)

Relaxed-Balancing Animationen

Bericht Nr.115: S. Hanke, "The Performance of Concurrent Red-Black Tree Algorithms"

Bericht Nr.50: Eckerle, Nurmi, "Concurrent Perfect Balancing of Binary Search Trees"

Bericht Nr.71: Ottmann, Soisalon-Soininen, "Relaxed Balancing Made Simple"

Bericht Nr.90: Sabine Hanke, "Chromatic Search Trees Revisited"  

Relaxed Balancing


Standard Implementationen von Wörterbüchern sind balancierte Bäume, wie z.B. Rot-Schwarz-Bäume oder AVL-Bäume, die die Ausführung von Such- und Updateoperationen in O(log n) Zeit erlauben, falls n die Anzahl der im Baum gespeicherten Schlüssel ist. Um die logarithmische Laufzeit zu gewährleisten, wird sofort nach jedem Update eine Folge von Rebalancierungsschritten ausgeführt, die die entsprechende Balancebedingung wiederherstellt. Die Rebalancierung ist derjenige Teil einer Updateoperation, der die meiste Zeit benötigt.

In stark dynamischen Anwendungen kann es nun passieren, daß Update-Anfragen derart gehäuft auftreten, daß der Suchbaum möglicherweise nicht in der Lage ist, die Anfragen so schnell wie benötigt zu bearbeiten.

Falls ein Wörterbuch auf einer Shared-Memory Architektur verwendet wird, muß man dafür sorgen, daß ein gleichzeitiges Lesen und Schreiben derselben Teile der Datenstruktur verhindert wird. Eine gängige Methode für Concurrency-Control ist, die kritischen Teile durch Locks zu schützen, so daß andere Prozesse keinen oder nur eingeschränkten Zugriff auf diese Datensätze haben. Für die Effizienz ist wichtig, daß dabei jeweils nur kleine Bereiche des Suchbaumes gleichzeitig gesperrt werden. Implementiert man jedoch die Standardalgorithmen für balancierte Suchbäume in einer parallelen Umgebung, so wird es notwendig, den gesamten Suchpfad von der Wurzel bis zu einem Blatt zu sperren, an dem ein Update durchgeführt werden soll.

Dies führt zu der Idee, die Rebalancierung von der eigentlichen Updateoperation abzukoppeln. Anstatt zu verlangen, daß die Balancebedingung sofort nach jeder Updateoperation wiederhergestellt wird, kann die Rebalancierung beliebig lange hinausgezögert und von weiteren Such- und Updateoperationen unterbrochen werden. Diese Art von Rebalancierung nennt man Relaxed Balancing.


[Seitenanfang]