Serverfarmen lernen von Honigbienen

January 15, 2008

Ein interessanter dezentraler Ansatz zur Loadbalance wurde vom Georgia Tech Institute vorgestellt. Analog zum Bienentanz werden Anfragen an Server auf einer virtuallen ‘Tanzfläche’ dargestellt. Die Bienenstrategy zur Allokation begrenzter Ressourcen (Honig-sammelnde Bienen) in einem unvorhersagbaren und ständig veränderbarem Umfeld (Wetter, Blütezeiten) wurde auf Server angewendet. Hier sind die Ressourcen die Serverressourcen in unterschiedlichen Kontexten (Benutzeranfragen).

Der Bienentanz läuft folgendermassen ab: Scouts fliegen herum auf der Suche nach Nektar. Wenn sie etwas finden, fliegen sie zum Nest zurück und führen den Bienentanz auf (enthält Informationen über die Futterquelle). Die Honigbienen fliegen nun zur Futterquelle und ernten den Nektar. Solange Nektar dieser Futterquelle existiert, wird der Tanz weitergetanzt oder andere Bienen führen einen Tanz auf, der mehr Nektar verspricht. Dann folgen die neu herausfliegenden Bienen natürlich die reichere Futterquelle. Damit können Bienen optimal die unvorhersehbare Nektarwelt ernten. Es erlaubt das nahtlose Umschalten zwischen den Futterquellen aufgrund von Nektarschwankungen.

Übertragen auf Webserver bedeutet das eine virtuelle Tanzfläche, auf welcher eine zeitlang eine Anzeige erscheint (abhängig von Last auf dem Webserver, und der Bezahlung, die ein User hinterlassen könnte). Diese Anzeige lockt nun andere Webserver an, um diese Webseiten auszuliefern und wiederum die Anzeige aufrecht zu erhalten. Es folgt also, je attraktiver eine Anzeige ist, umso mehr Webserver liefern Seiten dieser Anzeige aus und verteilen dadurch die Last. Auf der anderen Seite wiederum wird die Anzeige schnell an Popularität verlieren, wenn keine User die Webseiten anschauen. Dieser Ansatz verbessert den Service um 4-25 Prozent.

http://www.gatech.edu/news-room/release.php?id=1605
http://www.heise.de/netze/news/meldung/99218

Kritik:
Die Tanzfläche ist zentral gesteuert. Hier ist die Frage, ob das einen Unterschied macht oder nicht.