Funktionsweise unklar

Keine Scheu, hier darf alles gefragt und diskutiert werden. Das ist das Forum für YaCy-Anfänger. Hier kann man 'wo muss man klicken' fragen und sich über Grundlagen zur Suchmaschinentechnik unterhalten.
Forumsregeln
Hier werden Fragen beantwortet und wir versuchen die Probleme von YaCy-Newbies zu klären. Bitte beantwortete Fragen im YaCy-Wiki http://wiki.yacy.de dokumentieren!

Funktionsweise unklar

Beitragvon Erik_S » So Aug 31, 2014 11:25 am

Hallo,

ich habe gestern einfach mal yacy installiert und nun einige Fragen zur Funktionsweise:

Gibt es eine Möglichkeit den auf meinem Peer vorgehaltenen Index von bestimmten Domains zu bereinigen?
Ich möchte das z.B. Warez-Seiten oder Schmuddelkram nicht in dem Index auf meiner Festplatte enthalten sind und auch das mein Peer nicht im Auftrag anderer Peers solche Seiten indexiert (also aufruft).
Kann man dazu externe Black-Lists einbinden? z.B. von http://urlblacklist.com/

Wie sieht es mit Support für IPv6 aus?
Mein Peer ist von Außen nicht per IPv6 erreichbar obwohl ich eine anständige Dual-Stack-Verbindung zum Internet habe.
In einigen Konfigurationsmasken wo man IP-Adressbereiche einschränken kann sind keine lokalen IPv6-Bereiche (wie FC00::/7 und FE80::/10) enthalten, wie ändere ich das?
Generell ist die Syntax für die Eingabe von IP-Adressen irgendwie unerklärlich, das sieht so aus als würde das auf einen ineffizienten String-Vergleich hinauslaufen, wäre es nicht besser die IP-Adressen als Binärwert mit Anzahl an signifikanten Bits (der Zahl hinter dem '/') zu vergleichen?
Kann der Crawler auch IPv6-only-Seiten erreichen?

Dann scheint yacy einen Proxy anzubieten.
Was für eine Art Proxy ist das? Etwa ein simpler HTTP-Proxy?
Welchem Zweck dient dieser Proxy?
Ist dieser Proxy von Außen (anderen PCs in meinem lokalem Netzwerk oder gar dem öffentlichen Internet) nutzbar?
Falls ich diesen Proxy nicht selber benutzen möchte, kann ich den komplett abschalten?

Über den einen Standard-Port (8090 als Default) ist allem Anschein nach die gesamte Funktionalität von yacy erreichbar inklusive administrativen Dingen.
Wie wird sichergestellt das kein externer Zugriff an meine Einstellungen ran kommt? Weder Lesend noch Schreibend!
Funktioniert das auch mit IPv6?
Wäre es nicht eventuell besser mehrere Ports zu benutzen? Also zwischen Peer-to-Peer, Suchmaske, Proxy und Administration/Überwachen zu unterscheiden.
Wie verhält es sich hierbei mit dem zusätzlichen SSL-Port? Was läuft über diesen bzw. was soll über diesen laufen?
Ist es möglich auch die Peer-to-Peer Kommunikation grundsätzlich immer zu verschlüsseln? So wegen der generellen NSA-Paranoia.

Der "externe Proxy" scheint der Proxy zu sein den man bei einem geschützten lokalem Netzwerk benutzen muss um ins öffentliche Internet zu kommen. Mein Netzwerk ist durch einen leistungsfähigen SOCKS5-Proxy geschützt aber yacy scheint damit nicht umgehen zu können so das ich mit dem PC auf dem ich yacy probeweise installiert habe eine direkte Internetverbindung aufbauen musste um yacy überhaupt ausprobieren zu können. Das kann natürlich kein Dauerzustand bleiben.
Wie konfiguriere ich yacy damit es den SOCKS5-Proxy, der in meinem lokalem IPv6-only-Netzwerk problemlos per http://de.wikipedia.org/wiki/Web_Proxy_ ... y_Protocol findbar ist, auch benutzt?
Sollte die Java-VM nicht eigentlich die System-Einstellungen für den Internetzugriff berücksichtigen können?

Ja, das sind einige Fragen und ich hoffe auf möglichst umfangreiche Antworten. :D
Ich würde gerne meinen Beitrag zu einem besseren Internet leisten aber "die Katze im Sack" ist aus meiner Sicht nicht gut.
Falls einige Fragen von oben abschlägig beantwortet werden müssen würde ich mich eventuell auch an der Weiterentwicklung von yacy beteiligen, meine letzten Kontakte mit Java sind zwar bereits über 6 Jahre her aber ich bin ein einigermaßen guter C/C++ Programmierer und mein SOCKS5-Proxy stammt komplett von mir (ich hab also von Themen aus dem Bereich IP-Kommunikation einigermaßen Ahnung).

Grüße
Erik
Erik_S
 
Beiträge: 185
Registriert: Sa Aug 30, 2014 11:13 am

Re: Funktionsweise unklar

Beitragvon flegno » So Aug 31, 2014 2:12 pm

Hallo Erik,

willkommen im Forum,
Erik_S hat geschrieben:Hallo,

ich habe gestern einfach mal yacy installiert und nun einige Fragen zur Funktionsweise:

Gibt es eine Möglichkeit den auf meinem Peer vorgehaltenen Index von bestimmten Domains zu bereinigen?
Ich möchte das z.B. Warez-Seiten oder Schmuddelkram nicht in dem Index auf meiner Festplatte enthalten sind und auch das mein Peer nicht im Auftrag anderer Peers solche Seiten indexiert (also aufruft).
Kann man dazu externe Black-Lists einbinden? z.B. von http://urlblacklist.com/

lch mache erst seit genau zwei Wochen meine Bekanntschaft mit YaCy. Und die Pornoseiten waren auch bei mir die, die mir in der Log-Datei (unangenehm) aufgefallen sind. Es gibt eine Menge Quellen, wo du Antworten auf die meisten deiner Fragen finden kannst - falls dir die richtige Suchbegriffe einfallen ;) . Ich benutze dafür die Forum-Suche - Beispiel blacklist+pornoseiten - und auch http://domengo.de, die auf YaCy gebaut ist und YaCy-Freeworld-Indexe für die Trefferlisten verwendet.

Obwohl ich ziemlich sicher bin, dass jede(r) einzelner YaCy'aner und das YaCy-Projekt als Ganzes spürbar davon profitieren würden, wenn die YaCy-Community es schaffen würde, regelmäßig sich zumindest in Telefonkonferenzen zu treffen - Stichwort Mumble. Erfahrungen austauschen, sich gegenseitig helfen, Aktivitäten koordinieren. Schließlich hat YaCy an sich eine sehr soziale Ader und das Miteinander ist genetisch bedingt :?.

Ich bin auch daran interessiert, wenn jemand Interesse hat bspw. zu zweit in Skype zu plaudern. Unendlich Texte schreiben ist zeitraubend, kontraproduktiv - mMn.

Meines Wissens ist es nicht möglich nach dem Crawlen die Datenbanken zu bereinigen, zu zensieren. Blacklists sind fürs Crawlen gedacht. Der Index ist ja auf alle Peers verteilt, wie sorgst du für eine flächendeckende Bereinigung? Vorausgesetzter besteht überhaupt eine Chance, dass man sich einigt, was zu eliminieren ist 8-).

Was machbar ist, an den Filterkriterien deines Peers zu drehen
Ich habe auch für Testzwecke zwei größere Websites golem.de und gimpforum.de indexiert. Und jetzt muß ich zusehen, wie ich die Dubletten in den Trefferlisten eliminiere. Aber es klappt schon irgendwie :P.
Zuletzt geändert von flegno am So Sep 28, 2014 9:02 am, insgesamt 1-mal geändert.
flegno
 
Beiträge: 232
Registriert: So Aug 17, 2014 4:23 pm

Re: Funktionsweise unklar

Beitragvon sixcooler » So Aug 31, 2014 4:18 pm

Hallo,

das mit den Blacklists ist schon mal ein Anfang - hat nur den Nachteil das man 'nur' auf Worte der URL filtern kann.
Wer es tiefgreifender möchte kann z.B. ein Löschen über ein Query nutzen um auch Worte in den Texten für einen Rauswurf zu nutzen.

Auf /IndexDeletion_p.html kann man unten ein Query wie text_t:porno probieren.
Wenn man dort einmal wie gewünscht nach Query Seiten aus dem Index entfernt hat, kann man diese Anweisung in /Table_API_p.html regelmässig ausführen lassen.

Bzgl. der Treffen: in Berlin haben wir jeden 1. Di im Monat einen Stammtisch zu dem jeder eingeladen ist.
Ich hatte gehört das es noch weitere Stammtische / Treffen gibt.
Wenn keiner in der Nähe ist: gründet einen!

Cu, sixcooler.
sixcooler
 
Beiträge: 494
Registriert: Do Aug 14, 2008 5:22 pm

Re: Funktionsweise unklar

Beitragvon Erik_S » So Aug 31, 2014 5:54 pm

Hallo,

sixcooler hat geschrieben:das mit den Blacklists ist schon mal ein Anfang - hat nur den Nachteil das man 'nur' auf Worte der URL filtern kann.
Äh, was genau meinst Du damit? Auf welche meiner vielen Fragen bezieht sich das?

sixcooler hat geschrieben:Wer es tiefgreifender möchte kann z.B. ein Löschen über ein Query nutzen um auch Worte in den Texten für einen Rauswurf zu nutzen.
Ich möchte nicht das "Worte" (ich nehme mal an das die Index-Datenbank nach den möglichen Suchbegriffen also den Worten auf den einzelnen (html-)Seiten aufgeschlüsselt ist) aus dem Index entfernt werden, weder bei mir lokal und erst recht nicht global. Ich möchte das in dem auf meiner Festplatte vorgehaltenen Index keine Links auf bestimmte Domains enthalten sind. Wenn mein Peer also z.B. eine Anfrage nach irgendwelchen primären Geschlechtsmerkmalen erhält (von einem anderen Peer auf dem gerade eine entsprechende Suchanfrage initiiert wurde) darf und soll mein Peer gerne z.B. mit Links auf Wikipedia antworten aber eben nicht mit Links auf die Domains die ich für meinen Peer verboten habe. Ich gehe einfach mal davon aus das der anfragende Peer (von dem die Suche kommt) verschiedene Peers befragt (nebst seinem lokal vorgehaltenem Index) und die verschiedenen Antworten zusammenverodert um daraus ein Ergebnis für den User zu generieren so das unvollständige Antworten einzelner Peers kein Problem darstellen.

Es geht mir bei meinem Wunsch nach "Blacklisting" primär darum das solche Links einfach nicht auf meiner Festplatte vorhanden sind, man weiß schließlich nie ob der eigene PC eventuell mal von irgendwelchen Behörden beschlagnahmt wird o.ä. und da will ich einfach nichts auf meiner Festplatte haben was auch nur ansatzweise "problematisch" sein könnte. Ich weiß das Suchmaschinen vom deutschen Gesetzgeber unter gewissen Extraschutz gestellt wurden aber ob das die jeweiligen Beamten auch wissen und verstehen ist leider eher fraglich. Das bezieht sich vor allem auch auf Links auf Warez-Seiten, ich möchte nicht das meine Festplatte Links auf "illegale" Downloads enthält.
Und ich möchte erst recht nicht das meine IP-Adresse in den Logs solcher Server auftauchen nur weil mein yacy-Peer einen derartigen Indexierungsjob bekommen hat. Aber das könnte ich zuverlässig vermeiden wenn ich wüsste wie ich yacy dazu bringe meinen Proxy zum Zugriff auf das Internet zu verwenden da mein Proxy das meiste davon eh verweigern kann (http://urlblacklist.com/ ist dort eingebunden und ich könnte yacy einen Proxy-User-Account zuweisen in dem alle möglichen Filterkategorien aktiv sind).
Dazu kommen auch Domains wie google-analytics.com und all solcher Kram der meiner persönlichen Meinung nach einfach nicht in einen Suchmaschinenindex gehört.

flegno hat geschrieben:Es gibt eine Menge Quellen, wo du Antworten auf die meisten deiner Fragen finden kannst - falls dir die richtige Suchbegriffe einfallen.
Offensichtlich fallen mir nicht die richtigen Suchbegriffe ein. Gerade zu dem Thema IPv6 hab ich eher nichts gefunden. Z.B. keine Antwort darauf warum yacy den Server-Port nicht an beide IP-Versionen bindet obwohl das meines Wissens nach das Default-Verhalten von Java sein sollte.

Also meiner persönlichen Meinung nach ist ein Forum sehr gut geeignet um Meinungen und Ansichten auszutauschen. Gerade weil man auch mal Zeit hat über ein Thema etwas gründlicher nachzudenken bevor man eine Antwort schreibt, nebst dessen das die Schriftform immer auch irgendwie etwas verbindlicher und dauerhafter ist als das gesprochene Wort welches sich sofort verflüchtigt.

Ich hab noch ein paar Fragen:
Wie viel RAM sollte yacy für eine möglichst optimale Funktion zugewiesen werden?
Ich hab es erst mit 2GB probiert aber gesehen dass das immer ziemlich komplett ausgereizt wurde und dann auf 6GB umgestellt aber soviel scheint yacy wohl auch nicht zu wollen. Gibt es irgendwelche Erfahrungswerte wie viel RAM wirklich benötigt wird bzw. sinnvoll ist damit yacy optimal läuft? Hängt das von der Größe des Index ab?
Ich betreibe yacy derzeit auf einem 64Bit-System mit 32GB RAM aber eigentlich soll yacy auf einem dedizierten NAS-Server laufen (mein PC läuft normalerweise nicht im 24/7-Betrieb) und da ist RAM etwas knapper bemessen und soll auch primär anderen Zwecken dienen. Des weiteren würde mir noch ein dedizierter vServer zur Verfügung stehen aber da sind insgesamt nur 0,5GB RAM vorhanden (als 32Bit-System, und dieser vServer ist IPv6-only), ist das zu wenig wenn yacy da einfach nur den Index vorhalten und verteilen soll (also keine Crawling-Jobs o.ä.)? Wie viel RAM benötigt yacy mindestens?

Welchem Zweck dient die Top-Level-Domain .yacy und wie kann ich auf diese zugreifen? Im offiziellem DNS-System ist die Top-Level-Domain .yacy nicht enthalten und somit für meinen Browser auch nicht erreichbar.

Grüße
Erik
Erik_S
 
Beiträge: 185
Registriert: Sa Aug 30, 2014 11:13 am

Re: 1)domain yacy 2)Wie viel RAM sollte yacy zugewiesen wer

Beitragvon flegno » So Aug 31, 2014 8:50 pm

Erik_S hat geschrieben:Welchem Zweck dient die Top-Level-Domain .yacy und wie kann ich auf diese zugreifen? Im offiziellem DNS-System ist die Top-Level-Domain .yacy nicht enthalten und somit für meinen Browser auch nicht erreichbar.
Datenbank scheinbar kaputt, kann ich sie reparieren? hat geschrieben:Das hier ist ein Fehler innerhalb von Solr wo ich auch ratlos bin. Hinweise finden sich unter http://wiki.apache.org/solr/SolrPerform ... #Java_Heap aber da steht auch nur dass man Xmx hoch setzen soll. Meine Erfahrung mit Solr ist eher so, dass es wieder zu Problemen kommt wenn man das Xmx so weit hoch setzt, dass das OS dann nicht mehr viel RAM hat. Probiere das so zu setzen, dass das OS mindestens 1/3 des Gesamtspeichers übrig hat.
flegno
 
Beiträge: 232
Registriert: So Aug 17, 2014 4:23 pm

Re: Funktionsweise unklar

Beitragvon sixcooler » Mo Sep 01, 2014 12:07 am

Hallo,

um alle Seiten einer Domain nicht in den Index aufzunehmen trage die Domain in Deine Blacklist ein.
Für alle Seiten die evtl schon im Index sind, weil die Blacklist die Domain noch nicht enthalten hat als die Daten dazu in den Index kamen gibt es eine Löschfunktion für domains in /IndexDeletion_p.html.

Nun kann man ja aber kaum alle Domains kennen, die z.b. porno enthalten - daher kann man zusätzlich auch das Löschen über ein Query wie oben beschrieben machen. Der Vorteil ist einfach das man dabei so flexibel wie in der Suche ist: alles was man suchen kann, kann man auch löschen.
Sind die Einträge aus deinem Index - wüsste ich auch nicht mehr was noch zu löschen sein sollte um Deinen Wünschen gerecht zu werden.

Was den Speicherbedarf angeht hängt das stark von der Indexgröße ab - je größer der Index und die Menge an RWIs - desto mehr specher braucht YaCy.
Hat man weniger Speicher auf der Maschine, crawlt man halt nicht so fett.

Cu, sixcooler.
sixcooler
 
Beiträge: 494
Registriert: Do Aug 14, 2008 5:22 pm

Re: Funktionsweise unklar

Beitragvon Erik_S » Mo Sep 01, 2014 9:06 am

Hallo,

sixcooler hat geschrieben:um alle Seiten einer Domain nicht in den Index aufzunehmen trage die Domain in Deine Blacklist ein.
Okay, da ich nicht alle potentiellen Domains von Hand eintragen möchte bedeutet das vermutlich ich muss eine vorhandene Blacklist nehmen und diese in das Format von yacy umwandeln und dann in yacy einbinden.
Kommt yacy auch mit großen Blacklists (mehr als 10'000'000 Einträge) zurecht? Kann man eine neue Blacklist auch unterschieben ohne yacy beenden/neustarten zu müssen?

sixcooler hat geschrieben:Für alle Seiten die evtl schon im Index sind, weil die Blacklist die Domain noch nicht enthalten hat als die Daten dazu in den Index kamen gibt es eine Löschfunktion für domains in /IndexDeletion_p.html.
Ich gehe mal davon aus das mir auch hier ein Script helfen kann.
Wie sieht es mit dem Moment aus an dem der Index-Eintrag per DHT-Tansfer zu meinem Peer übertragen wird, wirkt da eine vorhandene Blacklist? Oder können Index-Einträge die von anderen Peers kommen nur nachträglich auf meiner Platte gelöscht werden?
Wirkt eine vorhandene Blacklist auch auf von anderen Peers kommende Crawl-Aufträge?

sixcooler hat geschrieben:Was den Speicherbedarf angeht hängt das stark von der Indexgröße ab - je größer der Index und die Menge an RWIs - desto mehr specher braucht YaCy.
Hat man weniger Speicher auf der Maschine, crawlt man halt nicht so fett.
Das bedeutet dann also das man mit wenig Speicher auch keinen Peer nur als Mirror für den Index betreiben kann, also einen Peer der nicht selber crawlt und keinen Proxy anbietet sondern einfach nur den Index vorhält und auf Suchanfragen reagiert, schade.

flegno hat geschrieben:
Erik_S hat geschrieben:Welchem Zweck dient die Top-Level-Domain .yacy und wie kann ich auf diese zugreifen? Im offiziellem DNS-System ist die Top-Level-Domain .yacy nicht enthalten und somit für meinen Browser auch nicht erreichbar.
S. im Thread domain yacy
Okay, das erklärt zwar immer noch nicht den Zweck dieser Domain aber ich denke ich hab verstanden was gemeint ist.


Gibt es den keine Infos zum Stand der IPv6-Unterstützung oder warum yacy meinen SOCKS-Proxy nicht benutzen will? Das Wiki schweigt sich hierzu leider komplett aus.
Wenn ich yacy auf einen Server im Internet installiere möchte ich das der in yacy eingebaute Proxy mit absoluter Sicherheit deaktiviert ist, ich will nicht das mit meiner IP irgendwelcher Unsinn gemacht wird, wie stelle ich das Sicher?

Grüße
Erik
Erik_S
 
Beiträge: 185
Registriert: Sa Aug 30, 2014 11:13 am

Re: Funktionsweise unklar

Beitragvon flegno » Mo Sep 01, 2014 11:45 am

Erik_S hat geschrieben:
sixcooler hat geschrieben:um alle Seiten einer Domain nicht in den Index aufzunehmen trage die Domain in Deine Blacklist ein.
Okay, da ich nicht alle potentiellen Domains von Hand eintragen möchte bedeutet das vermutlich ich muss eine vorhandene Blacklist nehmen und diese in das Format von yacy umwandeln und dann in yacy einbinden.
Kommt yacy auch mit großen Blacklists (mehr als 10'000'000 Einträge) zurecht? Kann man eine neue Blacklist auch unterschieben ohne yacy beenden/neustarten zu müssen?

Ich bin an der 10'000'000 Einträge Blacklist interessiert. Kann ich von der 10'000'000 Liste und der Lösung für die Einbindung in YaCy später auch ggf. profitieren?

Erik_S hat geschrieben:Gibt es den keine Infos zum Stand der IPv6-Unterstützung oder warum yacy meinen SOCKS-Proxy nicht benutzen will? Das Wiki schweigt sich hierzu leider komplett aus.
Wenn ich yacy auf einen Server im Internet installiere möchte ich das der in yacy eingebaute Proxy mit absoluter Sicherheit deaktiviert ist, ich will nicht das mit meiner IP irgendwelcher Unsinn gemacht wird, wie stelle ich das Sicher?
Orbiter im Januar 2014 im Thread IPv6 hat geschrieben:eieiei das hier ist ja nun schon ein sehr alter Thread. Trotzdem will ich ihn mal aufwärmen um alle zu fragen wie es bei euch mit der Verfügbarkeit von IPv6 aussieht?
Ich habe im letzten halben Jahr immer wieder mal geguckt ob es speziellen, IPv6-verhindernden Code gibt und den raus gemacht. Könnt ihr da verstäkt drauf gucken bitte?

Ich interpretiere die Aussage von Orbiter so, dass die Entwickler davon ausgehen, dass sie einen IPv6-kompatiblen Code produzieren. Die logische Konsequenz daraus - wer ein YaCy-Verhalten registriert, das diese Annahme widerlegt, tut was Gutes, wenn er/sie in einem Ticket präzise schildert, wie so ein fehlerhaftes Verhalten sich auswirkt.
flegno
 
Beiträge: 232
Registriert: So Aug 17, 2014 4:23 pm

Re: Funktionsweise unklar

Beitragvon Orbiter » Mo Sep 01, 2014 3:59 pm

flegno hat geschrieben:
Orbiter im Januar 2014 im Thread IPv6 hat geschrieben:eieiei das hier ist ja nun schon ein sehr alter Thread. Trotzdem will ich ihn mal aufwärmen um alle zu fragen wie es bei euch mit der Verfügbarkeit von IPv6 aussieht?
Ich habe im letzten halben Jahr immer wieder mal geguckt ob es speziellen, IPv6-verhindernden Code gibt und den raus gemacht. Könnt ihr da verstäkt drauf gucken bitte?

Ich interpretiere die Aussage von Orbiter so, dass die Entwickler davon ausgehen, dass sie einen IPv6-kompatiblen Code produzieren. Die logische Konsequenz daraus - wer ein YaCy-Verhalten registriert, das diese Annahme widerlegt, tut was Gutes, wenn er/sie in einem Ticket präzise schildert, wie so ein fehlerhaftes Verhalten sich auswirkt.

ja, hab immer noch keine ipv6 Entwicklungsumgebung. Das tückische ist, dass ich hier nur 'blind' fixen kann, d.h. ich nach weder den Fehler nachstellen noch einen Fix testen. Es geht nur, wenn die Beschreibung des Fehlers so genau ist, dass sich dadurch eine Codestelle finden läßt bei der es plausibel ist dass sie so bei ipv6 nicht gehen kann.
Orbiter
 
Beiträge: 5798
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Funktionsweise unklar

Beitragvon Erik_S » Mo Sep 01, 2014 11:20 pm

Hallo,

Orbiter hat geschrieben:ja, hab immer noch keine ipv6 Entwicklungsumgebung....
Da kann ich gerne aushelfen falls das was hilft. Meine letzten Programmier-Kontakte mit Java sind zwar schon einige Jahre her aber ich hoffe mal das man sowas nicht zu schnell verlernt. Ich hab eine anständige Dual-Stack-Anbindung und auch einiges an Erfahrung mit IP. Nur leider hab ich mir meinen PC heute zerschossen und werde mich erst morgen ran machen das wieder zu fixen.

Wie umfangreich ist den IPv6 im Konzept von yacy überhaupt (theoretisch) vorgesehen? Bei IPv6 sind doch ein paar Dinge etwas anders als bei IPv4.
Ist meine Vermutung das Ihr IP-Adressen per Sting-Vergleich (als Text) vergleicht richtig?

flegno hat geschrieben:Ich bin an der 10'000'000 Einträge Blacklist interessiert.
Die Liste ansich ist nicht das Problem, die Quelle hatte ich ja schon genannt, über das Einbinden berichte ich wenn es mir gelungen ist aber vorerst habe ich andere Prioritäten in Bezug auf yacy.

Grüße
Erik
Erik_S
 
Beiträge: 185
Registriert: Sa Aug 30, 2014 11:13 am

Re: Funktionsweise unklar

Beitragvon Low012 » Di Sep 02, 2014 8:25 am

Erik_S hat geschrieben:Kommt yacy auch mit großen Blacklists (mehr als 10'000'000 Einträge) zurecht?


YaCy lädt beim Start die Blacklists in eine interne Datenstruktur, um die Daten dann bei Bedarf (wenn URLs gecheckt werden) schnell zur Verfügung zu haben. Ob diese Datenstruktur für so große Listen wie von die Nachgefragt skaliert, weiß ich nicht. Ich sehe da zwei mögliche Probleme:

  • Da alle Daten im RAM gehalten werden, muss man YaCy (bzw. der Java Virtual Machine) auch entsprechend viel Speicher zuweisen. Das ist halt eine Sache der Maschine, auf der YaCy läuft, ob da genug Speicher vorhanden ist oder eben nicht.
  • Bei der Datenstruktur handelt es sich, wenn ich das richtig in Erinnerung habe, um eine Map, bei der der Domain-Teil der URLs der Key ist und die Pfade die Values. Mir fallen für die Betrachtung der Performance drei Klassen ein:
    • Alle Einträge in der Blacklist haben unterschiedlich Domain-Teile. Dann muss im schlimmsten Fall bei der Überprüfung einmal über die gesamte Key-Menge iteriert werden.
    • Es gibt nur einen Domain-Teil, aber sehr viele Pfad-Teile. Dann muss im schlimmsten Fall über alle Values iteriert werden, aber nur, wenn der Domain-Teil auch mit dem der zu überprüfenden URLs übereinstimmt.
    • Alles zwischen diesen beiden Extremen.
    Sollte sich herausstellen, dass die derzeitige Datenstruktur für so große Listen nicht geeignet ist, solche Listen aber tatsächlich benutzt werden, sollte es mit vertretbarem Aufwand möglich sein, die Datenstruktur zu tauschen. Ich glaube, es gibt da ein vernünftiges Interface, das halt neu implementiert werden müsste. Ich befürchte aber, dass eine für die Performance günstigere Implementierung dazu führt, dass mehr RAM benötigt wird.

Erik_S hat geschrieben:Kann man eine neue Blacklist auch unterschieben ohne yacy beenden/neustarten zu müssen?


Man müsste die Daten in ein für YaCy lesbares Format umwandeln und könnte sie dann über http://localhost:8090/BlacklistImpExp_p.html importieren. Das ursprüngliche Format sind reine Textdateien mit einem Eintrag pro Zeile, so wie sie auch im DATA/LOG-Verzeichnis liegen. Ich habe mir irgendwann mal ein XML-Format ausgedacht, das ich nirgends richtig dokumentiert habe, das aber rechte einfach gehalten ist. Es enthält noch ein paar Informationen mehr als das reine Textdokument. Wenn du auf der o.g. Seite eine Blacklist nach XML exportierst, müsste da eigentlich alles zu sehen sein, was das Format hergibt.

Wenn du Daten per Skript hinzufügen willst, kannst du das über eine REST-Schnittstelle machen, die ich kürzlich eingebaut habe. Die Schnittstelle ist im Wiki noch nicht richtig dokumentiert, aber hier im Forum ist das Wichtigste zu finden: viewtopic.php?f=8&t=5131#p29967

edit: Ich habe eben gesehen, dass der Export in eine Textdatei (bei mir) teilweise nicht mehr funktioniert. Ich habe ein Ticket im Bugtracker aufgemacht.
Low012
 
Beiträge: 2214
Registriert: Mi Jun 27, 2007 12:11 pm

Re: Funktionsweise unklar

Beitragvon Erik_S » Di Sep 02, 2014 10:15 pm

Hallo,

Low012 hat geschrieben:Da alle Daten im RAM gehalten werden, muss man YaCy (bzw. der Java Virtual Machine) auch entsprechend viel Speicher zuweisen. Das ist halt eine Sache der Maschine, auf der YaCy läuft, ob da genug Speicher vorhanden ist oder eben nicht.
Okay, das ist logisch. Alternativ könnte man per externen Script regelmässig den lokalen Index bereinigen aber das dürfte wohl auch ziemlich aufwendig sein da für jede zu entfernende Domain vermutlich immer der komplette Index iteriert werden muss.
Auf der anderen Seite denke ich mal das pro empfangenen DHT-Datensatz immer nur eine begrenzte Anzahl an Domains vertreten sind die man als kleine Datenstruktur vielleicht doch auf einmal im RAM halten kann (man müsste dann aber im RAM positiv und negativ cachen) und ansonsten die komplette Blacklist auf der Platte liegt.

Low012 hat geschrieben:Mir fallen für die Betrachtung der Performance drei Klassen ein: Alle Einträge in der Blacklist haben unterschiedlich Domain-Teile.
Genau das ist der Fall, zumindest bei der Blacklist die ich gerne benutzen würde. Die besteht nur aus zusammenhanglosen Domain-Namen und IP-Adressen und sonst nichts, auch keinen URL-Teil o.ä.

In meinen Proxy benutze ich diese Blacklist folgendermassen:
Nach dem regelmässigem Download wird die Blacklist in die von mir benutzen Teil-Listen (Warez/Porn/Spam/...) umsortiert, getrennt nach Domain-Namen und IP-Adressen, und dann werden für jede Teil-Liste ein Patricia-Tree für die Domain-Namen und zwei B-Bäume für die IP-Adressen (IPv6 und IPv4 getrennt) erstellt. Wenn dann mein Proxy einen Verbindungs-Request bekommt wird bei Domain-Namen zuerst geprüft ob dieser in der Blacklist (nur die Teil-Listen die für den entsprechenden Proxy-User aktiviert wurden) enthalten ist und bei "nicht vorhanden" wird die DNS-Abfrage durchgeführt und anschliessend die so gewonnene IP-Adresse ebenfalls geprüft, falls kein Treffer in der Blacklist vorkam wird die Verbindung zum gewünschten Host aufgebaut. Wenn der Verbindungs-Request direkt eine IP-Adresse enthält wird nur die passende IP-Blacklist abgefragt und dann gegebenenfalls die Verbindung zum gewünschten Host aufgebaut.
Mein Proxy hat 2 GB RAM (es läuft kein anderes Programm und es ist nichtmal ein Betriebssystem vorhanden so das mein Proxy-Programm die gesamten 2 GB voll ausschöpfen kann) womit die Blacklist bequem im RAM vorgehalten werden kann. Die Patricia-Trees und die B-Trees sind einzig und allein für die Performance, ich müsste mal prüfen wie groß eigentlich der RAM-Bedarf genau ist und das mit dem Umfang der Blacklist im nackten Textformat vergleichen. Der Patricia-Tree dürfte aber schon einiges an RAM sparen da z.B. die überwiegende Mehrheit aller Domains unterhalb von '.com' liegen (die Urban-Legend das mindestens ein Drittel aller .com-Domains sich um Sex im weitesten Sinne drehen scheint wohl zu stimmen :D).

Mit dem Thema einer umfangreichen Blacklist in YaCy werde ich mich aber erst später beschäftigen, momentan hab ich dringendere Sorgen (z.B. das mein Test-PC seit gestern nicht mehr läuft weil ich versucht habe Wireshark flott zu machen um YaCy genau beobachten zu können) und als erstes würde ich gerne das Thema IPv6 angehen. Ich habe zwei Computer mit vollwertiger Dual-Stack-Internet-Anbindung, meinen Test-PC (wenn er den wieder tut) und einen Root-Server im Internet. Der Root-Server hat feste IP-Adressen (bei IPv6 und IPv4) und sollte sich deswegen besonders gut eignen, aber er hat nur 512 MB RAM (ist eben nur ein virtueller Server). Beide Computer nutzen das aktuelle (K)Ubuntu 14.04 als OS.

Grüße
Erik
Erik_S
 
Beiträge: 185
Registriert: Sa Aug 30, 2014 11:13 am


Zurück zu Hilfe für Einsteiger und Anwender

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron