Effizientes Routing in verteilten skalierbaren Datenstrukturen Otto-von-Guericke – Universität Magdeburg Arbeitsgruppe Data and Knowledge Engineering Institut für Technische und Betriebliche Informationssysteme Effizientes Routing in verteilten skalierbaren Datenstrukturen Leipzig, 27.02.2003 Erik Buchmann, Klemens Böhm {buchmann|kboehm}@iti.cs.uni-magdeburg.de
Merkmale von Peer-to-Peer Systemen alle Knoten gleichberechtigt, keine Trennung Client - Server dynamisch skalierbar auf sehr viele, unabhängige Rechner jeder neue Teilnehmer bringt neue Ressourcen ein wirtschaftlicher Betrieb, keine Rechenleistung auf Vorrat
Peer-to-Peer Datenstrukturen Zahlreiche Anwendungen, z.B.: Index- oder Speicherstruktur bei DBMS Object Lookup in sehr großen Datenbeständen / sehr vielen Rechnern Auslieferung von Webseiten Operationen: put(Key,Value), get(Key) Selbstorganisation, selbständige Entscheidungen über Replikation, Lastausgleich, Datenverteilung Varianten: CAN, Chord, Pastry, P-Grid etc.
Content-Adressable Networks Jeder Knoten hat eigenen, n-dimensionalen Schlüsselbereich (Torus) kennt alle Nachbarn seines Schlüsselbereichs leitet Messages an Nachbarn in Richtung des Ziels weiter 13 4 5 3 1 12 2 9 8 10 7 6 11
Routing im CAN Operationen: put(Key,Value), get(Key) 13 4 5 3 1 12 2 9 8 10 7 6 11 get(k) Operationen: put(Key,Value), get(Key) Transformation der Anwendungs- schlüssel in CAN-Schlüssel: (Schlüssel) → {k0,k1,...,kn} "www.erikbuchmann.de" → {81256,12445} Nachrichten an den Knoten weitergeben, dessen Schlüsselraum den geringsten Abstand zum Zielpunkt aufweist Kritische Größe: Message Hops pro Operation
Vorschlag 1: Kontaktdaten-Cache zusätzlich zu den Nachbarn weitere Knoten in der Kontaktliste halten veraltete / unvoll- ständige Infor- mationen möglich Informationsbe- schaffung ohne zusätzliche Messages
Fragen im Zusammenhang mit dem Kontaktdaten-Cache Wahl der richtigen Größe des Cache zu klein: ineffektiv zu groß: veraltete Einträge, hoher Ressourcenverbrauch Wahl der optimalen Ersetzungsstrategie wenig veraltete Einträge, kurze Wege zu häufig nachgefragten Datenobjekten Nutzen bei realen Daten unser Szenario: Einsatz bei einem Web-Service
Durchführung der Experimente Simulationsumgebung PC-Cluster aus 32 Rechnern 2GHz-P4, 2 GB RAM, 100 MBit-Ethernet CAN-Prototyp 100.000 Knoten 1.000.000 Abfragen 2D-Schlüsselraum Experimente sowohl mit künstlich generierten als auch mit echten Testdaten
Experiment 1: Cache-Größe bereits geringe Cache-Größe verringert Messages um 2/3
Vorschlag 2: Lokalitätserhaltende Schlüsselabbildung Eingriff bei der Abbildung von Anwendungsschlüsseln auf CAN-Schlüssel Klassisch: Gleichverteilung der Schlüsselwerte z.B. Hash-Funktion soll gleichmäßige Auslastung sicherstellen keine Berücksichtigung der Abfragelokalität Lokalitätserhaltende Schlüsselabbildung Abruf benachbarter Objekte zu konstanten Kosten
Realisierung lokalitätserhaltender Schlüsselabbildung Beispiel: URLs Schlüsselraum des CAN: Schlüsselwerte: /iti_dke/ /iti_dke/lehre/ /iti_dke/lehre/ecommerce.html /~buchmann/index.htm /~buchmann/styles.css /~buchmann/back.jpg /~buchmann/empty.gif /~buchmann/logo.jpg /~buchmann/progrs.htm /~buchmann/arrowleft.gif /~buchmann/main.gif /~buchmann/arrowright.gif
Experiment 2: Schlüsselabbildung Gleichverteilung (Zufallsgenerator) Mittlere Anfragelokalität (Künstliche Websurfer) Hohe Anfragelokalität (Webserver-Log) Zahl der Messages konnte nahezu halbiert werden!
Vorschlag 3: Caching-Strategie Optimierung des Kontaktdaten-Cache durch Wahl einer Verdrängungsstrategie Experimente: Random, LRU, LRD, LFU, ISD ISD: Inverse Square Distribution für P2P-Datenstrukturen entwickelt Wahrscheinlichkeit für ein Node im Cache umgekehrt proportional zum Quadrat der überbrückten Distanz Aber: Ersetzungsstrategie hat keinen großen Einfluß
Zusammenfassung und Ausblick wir haben: ein prototypisches, flexibel anpassbares Content- Adressable Network einen Cluster, auf dem auch 500.000 parallel arbeitende Peers möglich sind erste Anwendungen und realistische Testszenarien erste Erfolge: winziger Cache für Kontaktdaten beschleunigt Routing die lokalitätserhaltende Abbildung der Anwendungs- schlüssel steigert die Routing-Performanz weiter zukünftige Vorhaben: Entwicklung von Anwendungen, Replikation, Lastausgleich