Peers mit mehr als 1GB Speicher (nur für YaCy)

Forum for developers

Peers mit mehr als 1GB Speicher (nur für YaCy)

Beitragvon thq » Mo Aug 18, 2008 12:28 pm

Ich finde, und meine Peers laufen schon lange damit, das der Wert maxCollectionPartition in plasmaWordIndex von 7 auf 8 erhöht werden sollte um mehr als nur ~65000(?) URL-Referenzen speichern zu können.

Dafür habe ich aber auch die Werte von "Stop Grow" auf 50 MB und von "Start Shrink" auf 25 MB erhöht.
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm

Re: Peers mit mehr als 1GB Speicher (nur für YaCy)

Beitragvon Orbiter » Mo Aug 18, 2008 11:38 pm

da muss man erst mal testen wie lange das Sortieren von 65K, bzw. bei kca-8 dann ja 260k Wörten dann dauert. Das kann man einfach so machen:
- Wort suchen das viele Referenzen hat (in der Index Admin)
- lokale Suche nach dem Wort ausführen
- Suchzeit in der Performanceseite (PerformanceSearch_p.html) angucken (normalizing und presort addieren) und auf 260k hochrechnen
- wie ist das Ergebnis bei 260k?

Hier mein Versuch:
- lokale Suche nach 'linux'
- Ergebnis sind 27400 Referenzen
- Suchzeit (normalizing+presort) ist 385 millisekunden
- Hochrechnen müsste man eigentlich mit Hilfe einer Formel für die Performance-Ordnung des Sortier-Algorithmus, aber der sollte logarithmisch sein, also
O(n) = a * log-b n
wobei a und b gemessen werden müssten. Wir nehmen hier nun mal der Einfachheit an, der Aufwand steige linear (das unterschätzt aber den Aufwand)
- Dann wäre die Suchzeit für 260k Wörter: 385/28400*260000 = 3524

Eine Suche mit so vielen Wörtern würde also dreieinhalb Sekunden plus Snippet-Fetch Zeit dauern. Gar nicht schlecht. Aber verhindert eine wirklich schnelle Suche. Wie sehen die Statistiken bei euch aus?
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Peers mit mehr als 1GB Speicher (nur für YaCy)

Beitragvon thq » Di Aug 19, 2008 1:17 am

Hier mein Ergebnis:
- lokale Suche nach 'www' (verify=false)
- Referenzen: 168853
- Suchzeit: normalizing = 765, presort = 610
- Suchzeit für 260k Wörter: 1375 / 168853 * 260000 = 2117

Ich warte lieber bis zu 30 Sekunden als das mir regelmäßig die Daten gelöscht werden, was bei 65k recht schnell gehen kann.
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm

Re: Peers mit mehr als 1GB Speicher (nur für YaCy)

Beitragvon Orbiter » Di Aug 19, 2008 8:07 am

ah, du hast schon auf 8 gestellt?
Hast du ein Einkern-System?
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Peers mit mehr als 1GB Speicher (nur für YaCy)

Beitragvon thq » Di Aug 19, 2008 8:28 am

Habe ich doch schon im ersten Beitrag geschrieben das meine Peers schon länger auf 8 laufen ;)

Das hier war mein "schneller" Peer, der hat 2 Kerne. Mein langsamer Peer dürfte eher bei 6+ Sekunden liegen, muss ich aber noch testen.
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm

Re: Peers mit mehr als 1GB Speicher (nur für YaCy)

Beitragvon Orbiter » Di Aug 19, 2008 9:26 am

das hat mich jetzt dazu gebracht nochmal über Performancesteigerungen nachzudenken. Ich hatte ja mal vor die Referenzen schon sortiert in der Collection-Struktur abzulegen, aber das geht nicht weil man ja individuelles Ranking einstellen kann. Aber nun kam ich auf die Idee, das die Normalisierung ja schon vorab gemacht werden könnte, was dann ja glatt die Hälfte der Zeit sparen würde.

Wie du ja schon im Threadtitel vorgeschlagen hast könnte man die Erweiterung auf kca-8 abhängig machen von den Leistungsdaten des Rechners. Da YaCy ja nun in vielen Algorithmen mit der Anzahl der Kerne skaliert würde ich vorschlagen das man eine Skalierung der kca in Anbhängigkeit des Speichers und der Kerne machen sollte.

Ich weiss das 65k Referenzen nicht die finale Antwort auf die Speichertechnik in YaCy sein kann, und möchte einfach vermeiden das YaCy-DAUs über schlechte Antwortzeiten meckern, daher die Begrenzung. Aufgrund eines kleinen 'Geheimplanes' (ich sehe da eine Möglichkeit, dass es im kommenden Jahr zu einem neuen potentiellen Power-User von YaCy kommen könnte, mit mehr als 100 Mio Dokumenten) hoffe ich das man die aktuellen Grenzen bei der Speicherfähigkeit der Collections sehr weit ausdehnen kann. Ggf. führt das dazu das hier wieder was ganz neues entsteht...

Wie wärs wenn man kca-8 automatisch vorgibt wenn mehr als 1GB RAM und mehr als 1 Kern da ist?
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Peers mit mehr als 1GB Speicher (nur für YaCy)

Beitragvon thq » Di Aug 19, 2008 10:28 am

Was mir jetzt auffällt ist der viel zu große Sprung von 65k auf 260k. Können die kca Dateien nicht feiner unterteilt werden ? Ich denke da an 1, 10, 100, 1000, 5000, 10000, 20000, 30000, 40000 ..., das steigt dann solange an bis zu den Maximum (einstellbar) oder bis die Suchzeit zu groß wird.

Vielleicht sollte wir ein Funktion schreiben die Zufalls Daten erzeugt mit der man das Maximum für den jeweiligen Peer feststellen kann, wenn es auf Zeit ankommt. Dieser Wert sollte dann auch verteilt werden damit man das beim DHT berücksichtigen kann.

Das ist zumindest das was ich für mich immer mal umsetzen wollte aber bis jetzt nicht dazu kam, ein konvertieren der kca Dateien sollte ja kein Problem sein und dürfte sogar die ein oder andere DB reparieren was die doppelten Einträge betrifft.

Automatisch würde ich das nicht machen, aber jeder sollte die Möglichkeit habe es einzustellen.
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm

Re: Peers mit mehr als 1GB Speicher (nur für YaCy)

Beitragvon Orbiter » Di Aug 19, 2008 12:15 pm

thq hat geschrieben:Was mir jetzt auffällt ist der viel zu große Sprung von 65k auf 260k. Können die kca Dateien nicht feiner unterteilt werden ? Ich denke da an 1, 10, 100, 1000, 5000, 10000, 20000, 30000, 40000 ..., das steigt dann solange an bis zu den Maximum (einstellbar) oder bis die Suchzeit zu groß wird.

die Kapazität steigt immer um den Faktor 4
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Peers mit mehr als 1GB Speicher (nur für YaCy)

Beitragvon thq » Di Aug 19, 2008 12:35 pm

Ich weiß, habe ja geschrieben das es mir die Sprünge zu groß sind, spätestens ab 16k. Deswegen würde ich ja meine Variante vorziehen. Das Lokal umzusetzen lohnt sich aber nicht weil es sonst wieder Probleme beim updaten gibt.
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm

Re: Peers mit mehr als 1GB Speicher (nur für YaCy)

Beitragvon Orbiter » Di Aug 19, 2008 2:11 pm

wir haben es typischerweise mit exponentiell wachsenden Datenmengen (-> Mooresches Gesetz), Rechenkapazitäten und Anforderungen zu tun. Wenn die Speichertechnik entsprechend nicht exponentiell skaliert, wird der Aufwand (= Anzahl des Umkopierens) statt dessen exponentiell steigen. Deswegen ist es so wie es momentan organisiert ist auch richtig.
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Peers mit mehr als 1GB Speicher (nur für YaCy)

Beitragvon thq » Mi Aug 20, 2008 8:29 am

Hier noch das Ergebnis von D201GLY2-2048-1200MB:

- lokale Suche nach 'linux' (verify=false)
- Referenzen: 62800
- Suchzeit: normalizing = 728, presort = 70
- Suchzeit für 260k Wörter: 798 / 62800 * 260000 = 3304
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm

Re: Peers mit mehr als 1GB Speicher (nur für YaCy)

Beitragvon Lotus » Mi Aug 20, 2008 9:27 am

Auf meinem Peer am physikalischen Limit.
P3 1GHz und Auslastung 50% iowait bei der Suche, 16Mio Links, 5Mio. Wörter. Die CPU-Last schwankt im Normalbetrieb stark.

Linux hat bei mir keine Treffer erzielt.

- lokale Suche nach 'windows'
- Referenzen: 62039
- Suchzeit: normalizing = 8096, presort = 1428
- Suchzeit für 260k Wörter: 9524 / 62039 * 260000 = 39914

Windows erzielt bald auch keine Treffer mehr.

Fazit: wir brauchen irgendwo Kapazität für mehr Referenzen.
Lotus
 
Beiträge: 1699
Registriert: Mi Jun 27, 2007 3:33 pm
Wohnort: Hamburg

Re: Peers mit mehr als 1GB Speicher (nur für YaCy)

Beitragvon Orbiter » Mi Aug 20, 2008 11:41 am

ich ziehe hier erst mal nur das Fazit, das die Normalisierung zu viel Zeit frisst. Das läßt sich aber in die Indexierungsphase verschieben, so dass es bei der Suche nicht mehr gemacht werden muss. Dadurch würde diese Komponente bei der Suche wegfallen. Das würde dann auch Zeit frei geben, um größere Collections nutzen zu können.
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Peers mit mehr als 1GB Speicher (nur für YaCy)

Beitragvon thq » Mi Aug 20, 2008 2:53 pm

Was genau ist eigentlich mit "Normalisierung" gemeint ?
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm

Re: Peers mit mehr als 1GB Speicher (nur für YaCy)

Beitragvon Lotus » Mo Sep 08, 2008 9:26 pm

Ich habe gerade noch eine Idee gehabt wie das selbe Wort auf mehrere Peers verteilt werden kann.
Wenn zu viele Referenzen auf ein Wort vorhanden sind, wird es einfach mit einer Konstanten z.B. 2 multipliziert und findet so den Weg über DHT zu einem anderen Peer. Über dividieren kann es dann wieder abgerufen werden. In der Praxis wären die Grenzen in denen sich das Wort befindet der niedrigste und der höchste auffindbare Wert.
Vielleicht bringt dieser Gedanke ja neue Ideen.
Lotus
 
Beiträge: 1699
Registriert: Mi Jun 27, 2007 3:33 pm
Wohnort: Hamburg


Zurück zu YaCy Coding & Architecture

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron