[WLANnews] dezentrale Suche in der Freifunk Wolke.

Ruben Kelevra cyrond at gmail.com
Di Apr 2 21:16:41 CEST 2013


Hallo smilebef,

ich sehe kein Problem darin in einem Router eine Suchmaschine unter zu
bringen.

Das Problem würde die "Festplatte" sein, aber du kannst ja per USB nen
Speicherkartenleser oder nen Stick dran klemmen, dann hast du Speicher
genug.

Broadcast bzw. eigentlich besser dafür geeignet wäre Multicast ist leider
im Moment eine ziehmlich dumme Idee. Batman-adb behandelt Multicast wie
broadcasts und die Unterteilung in Subnetze ermöglicht nur die Suche im
eigenen Subnetz.

Selbst wenn das ganze lokale Netzwerk einen Switch darstellt dürfte es
einfach zu viel Traffic werden, da jeder Node diese Multicast-Nachricht an
jeden Client raus sendet, und im Normalfall dies auch noch mit 1 Mbit/s. In
Lübeck wechselt man gerade auf 12 Mbit/s, was bedeutet das die Nachrichten
immerhin mit einer 6 Mbit/s rausgesendet werden können. Sinnvoll ist das
aber immer noch nicht, da es unglaublich schlecht skaliert.

Sinnvoller fände ich folgendes:

-Man installiert im Netzwerk Supernodes.
-Die Supernodes machen sich untereinander bekannt.
-Die Supernodes machen untereinander eine Reihenfolge aus.
-Jeder Supernode schickt einen Broadcast pro Stunde raus mit seinem Public
Key.

-In den Routern wird eine Public-Keys-Liste konfiguriert, eine IP-Adresse
ist im eigenen Subnetz optional.
-Die Router indizieren die eigenen Dokumente.
-Die Router melden sich bei zwei der gültigen Supernodes und hinterlegt
dort seinen Public-Key und IP.
-Die Router aktualisieren ihren Eintrag beim Wechsel der IP, signiert mit
ihrem Schlüssel.
-Die Router melden sich nach 60 Minuten ohne Traffic zwischen Ihnen und den
beiden verwendeten Supernodes um zu bestätigen das sie noch aktiv sind.
  + Fällt dabei auf das einer der Supernodes nicht mehr zu erreichen ist
werden neue Verbindungen aufgebaut.
-Suchanfragen leiten die Router im Wechsel zu einem der beiden Supernodes.
  + Fällt dabei auf das einer der Supernodes nicht mehr zu erreichen ist
werden neue Verbindungen aufgebaut.
-Die Supernodes melden die Anfrage und eine Cachezeit (bis 24h) per
Flutungsalgorithmus an alle Supernodes bis sie das Handle auf die Anfrage
haben, dann:
  + Gilt dieser Supernode als Cache für diese Anfrage.
  + Fragt dieser Supernode die Clients lokal, sendet seine Liste mit
Clients an den Supernode mit der niedrigsten Nummer, dieser:
     - Sendet die Anfrage an seine Clients und erweitert die Liste und
sendet diese an den nächsten Supernode.
       +Der Supernode mit dem Handle wird dabei übersprungen.
       +Der letzte Supernode sendet die Daten zurück.
       +Alle Clientantworten werden direkt an den fragenden Supernode
gesendet.
       +Supernode die keine Clients hinzufügen senden nichts an den
fragenden Supernode.
       +Der erste Supernode gibt die Daten an den Client aus.
-Fällt bei der Suche auf das ein Supernode fehlt wird dieser übersprungen
und die Info per Flutungsalgorithmus bekannt gemacht. Hierbei überprüfen
alle angesprochenden Supernodes bevor sie diese Information bestätigen dass
das aus ihrer Sicht auch so ist.


LG Ruben




Am 2. April 2013 01:04 schrieb <smilebef at gmail.com>:

> Hallo Frank,
>
> Die Variante, eine Suchmaschine auf einem Router mit 150mA laufen zu
> lassen ist natürlich nicht für große Datenmengen gedacht.
> Aber Hardware ist skalierbar.
>
> Was ist aber das eigentliche Problem einer dezentralen Suche sie mir
> vorschwebt?
>
> Angenommen ich habe index++ auf OpenWRT portiert und ein Index erzeugt
> Zusätzlich existieren noch viele andere Server, auf denen vielleicht
> nativ ein Debian mit swish-e läuft.
> Ein User zuhause gibt einen Suchbefehl ein.
> Dann ist doch die eigentliche Problematik, daß es wirklich
> einen Broadcast geben muss.
> Der Suchbefehl muss zu allen möglichen Ziel-Computern gelangen (notfalls
> zu allen Computern im Netzwerk) und dort eine Suche im Index auslösen.
> Zurück werden nur die Treffer gesendet. Der Rückweg ist also kein
> Broadcast aber enthält mehr Daten.
> Es ist also zu erkennen dass hier gigantische Datenmengen anfallen können.
> Dieser Menge Herr zu werden ist das eigentliche Problem.
>
> Lösungsvorschlag 1:
> Der Treffer-Report eines Rechners ist bei Broadcast vereinfacht.
> Computer www.farnell.de hat 234 Dateien mit dem Such-Begriff gefunden.
>
> Lösungsvorschlag 2:
> Es könnte auch verschiedene Such-Level geben.
> Broadcast-Anfrage und Einzelrechner Suche mit IP.- oder Pfadangabe.
>
> Lösungsvorschlag 3:
> Es könnte verschiedene Server geben, welche
> diese Index-Dateien einsammeln und dann einen schnelleren Zugriff auf
> die Daten liefern.
>
> Lösungsvorschlag 4:
> Vielleicht könnten die Webserver eine Änderung ihrer Index-Datei
> selbstständig zu Suchmaschinen senden. Ein Abo-Service.
>
> Lösungsvorschlag 5:
> Die Broadcast Suche ist grundsätzlich zu implementieren um die
> Abhängigkeit von Suchmaschinen auszuhebeln. Auch Suchmaschinen könnten
> die Broadcast-Suche nutzen. Der User sollte es sich aussuchen können,
> welche Methode er
> für seine Suche für angemessen hält.
>
> Lösungsvorschlag 6:
> Broadcast-Suche muss mit einer niedrigen Priorität abgeschwächt werden.
>
>
> Mir ist klar, das das bis jetzt eine Vision ist. :)
> Was brauchen wir denn für diese Vision?
>
> 1. Wir müssen sicherstellen, dass Freifunkrouter in der Lage sind mit
> einem Broadcast umzugehen. (Kein mehrfaches Senden gleicher
> Such-Anfragen)
> 2. Es muß ein Plugin geben, welches auf solche Fragen antwortet.
> 3. Die ganzen Daten müssen zu einer Antwortseite zusammengefügt werden.
>
>
> Zu Punkt 1 ist klar, olsr und Batman müssen das können, Prioritäten
> sind einzuführen wenn es sie noch nicht gibt.
>
> Zu Punkt 2:
> Das Plugin muß also gezielt Informationen in mehreren Weisen anbieten
> können. Ich spinne mal:
> "Broadcast-Suche" liefert: URL,Standort,Titel,Beschreibung
> des Servers, Trefferanzahl.
> "Pfad-Suche mit Option x und y" liefert: die erste Zeile
> der x-ten von y Dateien, welche das Suchwort enthält.
> Als nächste Stufe wäre auch möglich sich die ersten x Seiten zeigen zu
> lassen (oder den Inhalt).
>
> Zu Punkt 3:
> Was wird denn passieren, wenn ich eine Broadcast-Suche absende?
> Der nächstgelegene Rechner wird seine Antwort am schnellsten abliefern.
> Wie können all die vielen Antworten zu einem Dokument zusammengefügt
> werden?
> An einer Stelle, an der wegen Br.-Cast der Pfad aufgesplittet wurde
> werden höchst wahrscheinlich auch die Daten aus unterschiedlichen
> Richtungen zurückkommen. Es muss also jeder Knoten diese Daten
> zusammenführen.
> Google macht es doch ähnlich. Es liefert einfach kein EOF und hält so
> die Verbindung offen. Auf diese Weise kann Google, jede Bewegung mit
> der Maus und jeden Tastaturanschlag analysieren.
> Jetzt könnte eine Einschränkung vorgenommen werden nach Planquadraht,
> nach Knotenanzahl und nach Zeit.
>
>
> Hoffe ich habe euch nicht erschlagen.
> siehe Kommentare weiter unten.
>
> LG
>
>
>
>
> Am Mon, 01 Apr 2013 17:55:07 +0200
> schrieb Frank Rühlemann <ruehlema at informatik.uni-luebeck.de>:
>
> > Mit Yacy hab ich recht schlechte Erfahrungen gemacht.
> >
> > Obwohl es anfangs ganz gut funktionierte, als ich es erstmal dazu
> > gebracht hatte, dass es auch mit privaten Adressen umgehen kann, lief
> > es später einfach immer schlechter und dann gar nicht mehr.
> > Leider fand ich zu Yacy nur sehr wenig Dokumentation, selbst auf der
> > offiziellen Seite. Daher blieb dann oft nur das Rumspielen mit den
> > wenig sagenden Parametern übrig. Irgendwann bekam ich es in einen
> > Zustand, wo zwar der Crawler eindeutig Traffic verursachte, sich aber
> > der Index nicht mehr veränderte.
>
> Cleverer Junge (:
>
> > Zu dem Zeitpunkt habe ich es abgeschaltet.
> > An sich versuche ich grad noch selbst nebenbei eine Suchmaschine auf
> > Basis von Lucene & Nutch zusammen zu klöppeln, aber dafür bleibt
> > gerade nur wenig Zeit über.
> >
>
> Muss ich mir mal ansehen. (:
>
> > Aber zurück zur eigentlichen Frage:
> > Das Problem ist gar nicht so trivial, wie es scheint. Du musst da mit
> > sehr großen Datenmengen hantieren und dafür sind diese kleinen
> > Plastikkisten nicht gemacht. Das betrifft sowohl die
> > Speicherkapazität, als auch die Rechenleistung, die neben dem anderen
> > Kram noch übrig sein müsste.
> > Das müsste also eher auf Servern laufen. Das könnte günstigerweise
> > auch ein angeschlossener Raspberry Pi sein! Der hat deutlich mehr
> > Rechenleistung, wenn er nur dafür abgestellt wird.
> >
> > Das Suchen nach Geo-Koordinaten bedingt aber auch wieder, dass diese
>
> Ich wollte nur sagen, was alles möglich wäre, wenn der Rest erst mal
> läuft. (:
>
> > mit den Informationen verknüpft werden. Das ist nicht zwingend
> > möglich oder gewollt. Für die Suche nach lokalen Geschäften bietet
> > sich eher OSM an. Das muss man nicht noch mit aufnehmen.
>
> Muss ich recherchieren.
>
> > Die Suche in internen Dokumenten ist erstmal Aufwand genug. (^_~)
>
> Nö, schau dir mal swish-e an. Für HTML oder XML ist das kein Hit.
> Für PDF und Bilder oder Videos wird es schon schwieriger.
> Aber ein einfacher Friseursalon oder ein Werkzeugmacher hat meist nur
> HTML-Seiten.
>
> >
> > Ich selbst sehe auch die Notwendigkeit einer internen Suchmaschine,
> > aber nur, wenn sie auch sinnvoll läuft. Auch diese braucht einen
> > gewissen Wartungsaufwand, damit sie gut läuft. :)
>
> Wie schon gesagt, der Indizierer muss nur einmal, nämlich bei einer
> Änderung des Datei-Baumes das Verzeichnis durchforsten. Das halte ich
> für angemessen.
>
> >
> > Gruß
> >     Frank
> >
> > Am 01.04.2013 03:30, schrieb Mario Behling:
> > > Hallo,
> > >
> > > versuch mal Yacy. Hat ganz gut funktioniert im Netz in Berlin vor
> > > einer Weile. Der Entwickler ist auch fuer Ideen offen falls wir
> > > weitere Features fuer das Freifunk- Netz brauchen.
> > >
> > > LG,
> > >
> > > Mario
> > >
> > >
> > > 2013/4/1 <smilebef at gmail.com>
> > >
> > >> Hallo Leute,
> > >>
> > >> wie ihr sicherlich schon mitbekommen habt, suche ich nach einer
> > >> Lösung für eine dezentralen Suchfunktion in der Freifunk-Wolke.
> > >>
> > >> Das das nicht so einfach ist, hatte ich mir ja schon gedacht, aber
> > >> ich gehe davon aus, dass sich irgendwann in meinem Kopf ein Bild
> > >> ergibt, was die Sache greifbarer macht.
> > >> Ich weiss ja im Grunde was ich will, und überlege mir wie dies
> > >> aussehen könnte. Ich möchte Schritt für Schritt an diese
> > >> Geschichte herangehen und erst einmal die Bausteine dazu zusammen
> > >> suchen, welche mich einen Schritt weiter bringen.
> > >>
> > >> Nun habe ich im Netz einen interessanten Artikel über
> > >> swish-e/swish++ gefunden. Dieses Programm generiert ein Index-file
> > >> aus dem Inhalt von Dateien.
> > >>
> > >> Die Ausgabe sieht wie folgt aus.
> > >>
> > >> user:~$ swish-e -f .swish_index/howto-html.index  -w Antenne
> > >> # SWISH format: 2.4.7
> > >> # Search words: Antenne
> > >> # Removed stopwords:
> > >> # Number of hits: 3
> > >> # Search time: 0,000 seconds
> > >> # Run time: 0,007 seconds
> > >> 1000 ../Daten/Nachschlagewerke/Antennen/Wlan/biquad.html "Biquad
> > >> WLAN Selbstbau 10 dB" 7478
> > >> 588 ../Daten/Linkbudget/Linkbudget.html  "Linkbudget.html" 21324
> > >> 226 ../Daten/Nachschlagewerke/Antennen/Wlan/omni_mario.html "Omni
> > >> Mario" 935
> > >>
> > >>
> > >> Warum soll man solch ein Programm nicht für eine dezentrale Suche
> > >> benutzen können? Im Grunde braucht man nur noch die URL des
> > >> Ziel-Rechners vorne ran basteln und erhält einen Link.
> > >> Es ist auch noch ein olsr/batman-Plugin zu schreiben, welches das
> > >> größere Problem darstellen dürfte.
> > >> Einmal nach einer Änderung des Dateisystems muß das Index-file
> > >> erneuert werden.
> > >> Letztlich könnte man das Netz durch solch eine Suche-Funktion
> > >> extrem attraktiv machen.
> > >> Ich fände es sehr interessant, wenn man die Suchfunktion in einem
> > >> selbst bestimmten Umkreis zur Ausführung bringen könnte.
> > >> Zum Beispiel könnte man eine Region auf der Karte markieren und
> > >> eine lokale Suche nach Friseur oder Psychiatrie absenden.
> > >> Oder ich sage, suche nur in den nächsten 10 Knoten.
> > >> Ein Kunststück dürfte dann noch die Zusammenführung der Ergebnisse
> > >> auf einer Webseite sein. Aber das müsste es dann auch gewesen sein.
> > >> Oder ist jemand anderer Meinung, damit wette ich doch mal. (:
> > >>
> > >> Gibt es jemanden, den ich mit diesem Gedanken überzeugen könnte?
> > >> Ich schaffe das definitiv nicht alleine.
> > >>
> > >>
> > >> LG
> > >
> > >
> > > _______________________________________________
> > > WLANnews mailing list
> > > WLANnews at freifunk.net
> > > Abonnement abbestellen? ->
> > > http://lists.freifunk.net/mailman/listinfo/wlannews-freifunk.net
> > >
> > > Weitere Infos zu den freifunk.net Mailinglisten und zur An- und
> > > Abmeldung unter http://freifunk.net/mailinglisten
> >
>
> _______________________________________________
> WLANnews mailing list
> WLANnews at freifunk.net
> Abonnement abbestellen? ->
> http://lists.freifunk.net/mailman/listinfo/wlannews-freifunk.net
>
> Weitere Infos zu den freifunk.net Mailinglisten und zur An- und Abmeldung
> unter http://freifunk.net/mailinglisten
>
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.freifunk.net/pipermail/wlannews-freifunk.net/attachments/20130402/78e9fd14/attachment-0001.html>


Mehr Informationen über die Mailingliste WLANnews