Inhaltsverzeichnis:
  1. Aktuelle Modi von YaCy
  2. Neuer Modus: Master-Slave
  3. Was ist Master-Slave?
  4. Wie soll dies in YaCy implementiert werden?
  5. Und was für Vorteile hat der Modus?
  6. Fazit
  7. Weitere Ideen kurz gesammelt
  1. Aktuelle Modi von YaCy
    Derzeit sind die folgenden Modi unter Netzwerk-Konfiguration (*) verfügbar:
    1. Peer-To-Peer Modus - Der Standart-Modus, alle Nodes sind gleich berechtigt.
    2. Robinson Modus - Kleinere Cluster lassen sich an z.B. FreeWorld anbinden.
    Im Peer-To-Peer Modus kann DHT verteilt werden, in Robinson nicht. Damit muss eine Node im P2P-Modus alles übernehmen, was anfällt, solange diese Features eingeschaltet sind. Möchte man jedoch gute Crawls fahren, bedarf dies wegen des Index viel RAM und Festplatte, somit nur High-End-Geräte und keine "Otto-Normal-Geräte". Diese würden schlicht die Last nicht standhalten können und unerreichbar werden. Auch ist ein Nachrüsten erforderlich, da irgentwann die Festplatte bzw. der RAM voll sind.
  2. Neuer Modus: Master-Slave
    Hinzukommen soll ein weiterer Netzwerk-Modus: Master-Slave.
  3. Was ist Master-Slave?
    Ein Master-Slave-Konstrukt sieht meistens vereinfacht dargestellt wie folgt aus:
    • Es gibt einen oder zwei Master, wobei einer als "Backup-Master" dienen kann. Es geht aber auch nur mit einem Master. Der Master verwaltet nur die Slaves.
    • Es gibt mindestens einen Slave (besser mehr), die den Master-Nodes unstellt sind. Die Slaves übernehmen die eigentliche Arbeit.
  4. Wie soll dies in YaCy implementiert werden?
    Der Master soll in YaCy wie folgt implementiert werden:
    • Er übernimmt die Aufgabe als Front-End gegenüber z.B. Freeworld.
    • Er nimmt daher Remote-Crawls nur an und verteilt sie an die Slaves zum Crawlen.
    • Auch eigene (lokale) Crawls werden auf ihm gestartet und an die Slaves verteilt.
    • Der Master verwaltet die DHT, die von den Slaves zusammengestellt werden.
    • Auch als Proxy fungiert der Master.
    • Er verwaltet die Blacklisten, die Slaves erhalten damit nur Seiten, die nicht gesperrt sind und brauchen sich darum nicht kümmern.
    Zur Verdeutlichung, hier ein typischer Beispielablauf:
    1. Auf dem Master wird ein lokaler Crawl gestartet z.B. durch einen Startpunkt, Surrogate, Proxy-Aufruf und so weiter.
    2. Dieser wird an die ihm bekannten Slaves verteilt, dabei achtet der Master darauf, dass keine zwei Slaves die selbe URL crawlen.
    3. Es wird dabei auch eine Crawl-Tiefe mit übergeben, damit der Master sich darum nicht kümmern muss.
    4. Die Slaves indexieren auch sofort die Seiten und erstellen den Index samt DHT.
    5. Haben die Slaves den Crawl-Auftrag erledigt, oder es ist eine Queue vollgelaufen, so wird dieser Index bei den Slaves gehostet und die DHT an den Master gesandt.
    6. Dem Master ist somit bekannt, welchen Slave er anfragen muss, damit dieser das Ergebnis über den Master an z.B. Freeworld ausliefern kann.
    7. Ein Durchreichen über den Master muss stattfinden, da die Slaves andere IDs besitzen als der Master.
    Im Admin-Interface soll unter Netzwerk-Konfiguration (*) der Master-Slave-Modus eingebaut werden und könnte wie folgt aussehen:
    • Als Master:
      • Node-Namen aller Slaves, kommaseperaiert.
      • Node-Namen anderer Master-Nodes als "Backup-Master" bei starker Last.
    • Als Slave:
      • Node-Name des Masters (= oeffentlicher Name des Master-Slave-Clusters).
      • Als Indexer, Crawler oder beides zusammen agieren; letzteres nur für leistungsstarke Systeme geeignet.
      • Remote-Crawls vom Master vermittelt annehmen: Ja/Nein.
    Die globale, maximale PPM soll dabei auf die Slaves aufgeteilt werden. Also sehr einfach gerechnet: Maximale PPM geteilt durch Anzahl konfigurierter Slaves.
  5. Und was für Vorteile hat der Modus?
    Der Master-Slave-Modus hat dabei diese Vorteile:
    1. Die einzelne Node - egal ob Master oder Slave - muss sich nicht um alles kümmern, da dies an den Master bzw. an die Slaves verteilt ist.
    2. Es können daher sehr starke Crawls (>1300 PPM sind theoretisch mit einer DSL 6.000-Leitung möglich).
    3. Auch selbst bei dieser sehr hohen Last bleibt der Master gut erreichbar, da er selber nicht crawlt.
    4. Die Master-Nodes können externe Nodes sich gegenseitig verweisen, falls diese überlastet sind.
  6. Fazit
    Das gesamt YaCy-Netz (Freeworld) wird stabiler und schnell, da die Master-Nodes schneller Anfragen annehemne können und die Slaves diese ausliefern können. Die User müssen keine High-End-Server sich kaufen, damit sie gute Crawl-Ergebnisse erhalten. Daher können selbst ältere Computer mit dem Master-Slave-Modus dennoch sich gross an Freeworld beteiligen.
    Die User können mit einfachen Schritten einen guten YaCy-Cluster errichten und brauchen nicht ewig lang ausprobieren.
  7. Weitere Ideen kurz gesammelt
    Die Slaves könnten auch selber die Ergebnisse an Freeworld ausliefern. Bei einer lokalen Suche muss der Master dies an den User schicken. Wegen der Backup-Nodes müsste vermutlich eine Unterstützung in YaCy implementiert werden. Die bereits vorhandenen Timeouts sollen weiterhin als Fallback bestehen bleiben.
(*): Damit dieser Link funktioniert, muss YaCy als Proxy konfiguriert sein!
Version: 1.2, letzte Änderung: 03.09.2009, Copyright © 2009, by Roland Häder, Link zur Original-Seite.
Creative Commons License
Dieser Text ist mit einer Creative Commons Attribution-Noncommercial-Share Alike 3.0 Germany License lizensiert.
Valid XHTML 1.0 Transitional! Valid CSS!