Blob Merging bei voller Platte und Yacy Startup....

Hier finden YaCy User Hilfe wenn was nicht funktioniert oder anders funktioniert als man dachte. Bei offensichtlichen Fehlern diese bitte gleich in die Bugs (http://bugs.yacy.net) eintragen.
Forumsregeln
In diesem Forum geht es um Benutzungsprobleme und Anfragen für Hilfe. Wird dabei ein Bug identifiziert, wird der thread zur Bearbeitung in die Bug-Sektion verschoben. Wer hier also einen Thread eingestellt hat und ihn vermisst, wird ihn sicherlich in der Bug-Sektion wiederfinden.

Blob Merging bei voller Platte und Yacy Startup....

Beitragvon Vega » So Mai 02, 2010 1:05 pm

Hallo, nachdem ich gestern meinen Peer neu gestartet habe, ist mir im Log folgendes aufgefallen:

Code: Alles auswählen
I 2010/05/01 09:10:24 LOCAL_SEARCH EXIT WORD SEARCH: ringelnatter - 9 links found, 210 ms
E 2010/05/01 09:10:24 ArrayStack cannot writing or close writing merge, newFile = /yacydata/yacy/DATA/INDEX/freeworld/SEGMENTS/default/text.index.20100501070503967.blob, tmpFile = /yacydata/yacy/DATA/INDEX/freeworld/SEGMENTS/default/text.index.20100501070503967.blob.prt: No space left on device
java.io.IOException: No space left on device
   at java.io.FileOutputStream.writeBytes(Native Method)
   at java.io.FileOutputStream.write(FileOutputStream.java:260)
   at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
   at java.io.BufferedOutputStream.write(BufferedOutputStream.java:109)
   at java.io.DataOutputStream.write(DataOutputStream.java:90)
   at java.io.FilterOutputStream.write(FilterOutputStream.java:80)
   at net.yacy.kelondro.blob.HeapWriter.add(HeapWriter.java:108)
   at net.yacy.kelondro.blob.ArrayStack.merge(ArrayStack.java:924)
   at net.yacy.kelondro.blob.ArrayStack.mergeWorker(ArrayStack.java:829)
   at net.yacy.kelondro.blob.ArrayStack.mergeMount(ArrayStack.java:776)
   at net.yacy.kelondro.rwi.IODispatcher$MergeJob.merge(IODispatcher.java:266)
   at net.yacy.kelondro.rwi.IODispatcher$MergeJob.access$300(IODispatcher.java:235)
   at net.yacy.kelondro.rwi.IODispatcher.run(IODispatcher.java:176)
W 2010/05/01 09:10:24 BLOBArray merge of files /yacydata/yacy/DATA/INDEX/freeworld/SEGMENTS/default/text.index.20100329005919333.blob, /yacydata/yacy/DATA/INDEX/freeworld/SEGMENTS/default/text.index.20100405125649642.blob returned null. newFile = /yacydata/yacy/DATA/INDEX/freeworld/SEGMENTS/default/text.index.20100501070503967.blob
I 2010/05/01 09:10:24 BLOBArray rewrite of text.index.20100313130416505.blob
E 2010/05/01 09:10:25 ArrayStack cannot writing or close writing rewrite, newFile = /yacydata/yacy/DATA/INDEX/freeworld/SEGMENTS/default/text.index.20100501070846320.blob, tmpFile = /yacydata/yacy/DATA/INDEX/freeworld/SEGMENTS/default/text.index.20100501070846320.blob.prt: No space left on device
java.io.IOException: No space left on device
   at java.io.FileOutputStream.writeBytes(Native Method)
   at java.io.FileOutputStream.write(FileOutputStream.java:260)
   at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
   at java.io.BufferedOutputStream.write(BufferedOutputStream.java:109)
   at java.io.E 2010/05/01 09:10:25 ArrayStack cannot writing or close writing rewrite, newFile = /yacydata/yacy/DATA/INDEX/freeworld/SEGMENTS/default/text.index.20100501070846320.blob, tmpFile = /yacydata/yacy/DATA/INDEX/freeworld/SEGMENTS/default/text.index.20100501070846320.blob.prt: No space left on device
java.io.IOException: No space left on device
   at java.io.FileOutputStream.writeBytes(Native Method)
   at java.io.FileOutputStream.write(FileOutputStream.java:260)
   at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
   at java.io.BufferedOutputStream.write(BufferedOutputStream.java:109)
   at java.io.DataOutputStream.write(DataOutputStream.java:90)
   at java.io.FilterOutputStream.write(FilterOutputStream.java:80)
   at net.yacy.kelondro.blob.HeapWriter.add(HeapWriter.java:108)
   at net.yacy.kelondro.blob.ArrayStack.rewrite(ArrayStack.java:983)
   at net.yacy.kelondro.blob.ArrayStack.rewriteWorker(ArrayStack.java:868)
   at net.yacy.kelondro.blob.ArrayStack.mergeMount(ArrayStack.java:761)
   at net.yacy.kelondro.rwi.IODispatcher$MergeJob.merge(IODispatcher.java:266)
   at net.yacy.kelondro.rwi.IODispatcher$MergeJob.access$300(IODispatcher.java:235)
   at net.yacy.kelondro.rwi.IODispatcher.run(IODispatcher.java:176)
W 2010/05/01 09:10:25 BLOBArray rewrite of file /yacydata/yacy/DATA/INDEX/freeworld/SEGMENTS/default/text.index.20100313130416505.blob returned null. newFile =
/yacydata/yacy/DATA/INDEX/freeworld/SEGMENTS/default/text.index.20100501070846320.blob


Die Situation ist folgende: die HD ist vol - 2,5 GB sind noch frei, die Ressourcenverwaltung funktioniert (Also kein Crawlen und DHT in mehr), beim Neustart versucht Yacy Blobs zu mergen, schreibt dabei die Platte komplett voll und wirft dann die hier gezeigten Fehlermeldungen.

Für mich stellen sich folgende Frage:
was passiert dann mit den blobs, wird das merging abgebrochen ? Können dabei Daten verloren gehen ???
Ich habe mir die Statistiken meines Peers angesehen, dabei ist mir aufgefallen das massiv Words "verlorengegangen" sind - siehe http://www.yacystats.de/peer/umEWju7oyFAA,month.html - Kann dies damit zu tun haben ?

Meiner Meinung nach wäre es sinnvoll diesen Fehler abfangen, in dem man vor dem mergen ermittelt ob genügend Festplattenspeicher frei ist, und wenn nicht - die merge-Operation gar nicht erst startet.

Zum Yacy-Startup fällt mir auch gerade noch was ein:

Ich finde es nicht gut das der Peer schon arbeitet bzw. schon erreichbar ist solange noch solche merge-Operationen stattfinden. - Mein Peer feedet Metager - in der zeit wo solche Operationen stattfinden kommt es zu Time-Outs bzw. sehr langen Antwortzeiten des Peers.
Könnte man den Start (eventuell über einen Parameter) so abändern das erst alle Operationen abgeschlossen sind, dann erst das Webinterface gestartet, der Peer von "außen" erreichbar ist und abgefragt werden kann ? Wie ist eure Meinung dazu ?

Der Start dauert mittlerweile bei mir recht lange (ca. 20 - 30 Minuten, könnte man beim Indexaufbau/Mergen eine Fortsschrittsanzeige ainbauen - in der Art: 0%.........10%..........

Plattenplatz: werden die unter DATA/RANKING/GLOBAL abgelegten Dateien verwendet ? Diese belegen bei mir immerhin knapp 900MB....wenn nicht, wo kann man das abschalten bzw. sollte dies eventuell standartmäßig abgeschaltet werden ?

Gruß,
Thomas
Vega
 
Beiträge: 824
Registriert: Mi Jun 27, 2007 3:34 pm
Wohnort: Dresden

Re: Blob Merging bei voller Platte und Yacy Startup....

Beitragvon dulcedo » Mo Mai 03, 2010 10:08 am

Vega hat geschrieben:was passiert dann mit den blobs, wird das merging abgebrochen ? Können dabei Daten verloren gehen ???

Durch den geloggten Vorgang kann nichts verloren gehen da er zuerst versucht eine temporäre Datei anzulegen und erst wenn diese komplett ist die Ursprungsdatei gelöscht wird. Diesen unvollständigen Fall hatte ich schon oft bei Hängern oder Neustarts und nie Probleme. Natürlich bekommt er irgendwann Probleme wenn er nicht mergen kann aber es darf dabei nichts verloren gehn.

Wo definitv Probleme auftreten ist der Fall bei dem eine Datrei neu geschrieben wird und deren erlaubte Dateigrösse kleiner als die Ursprungsdatei ist. Normal erwarte ich dass er dann in 2 Teile aufsplittet, tut er jedoch nicht
Das kann man einfach nachstellen indem man einen rewrite provoziert und vorher maxFilezize verringert, dann bleibt so gut wie nichts an Wortreferenzern übrig.

Ich habe mir die Statistiken meines Peers angesehen, dabei ist mir aufgefallen das massiv Words "verlorengegangen" sind - siehe http://www.yacystats.de/peer/umEWju7oyFAA,month.html - Kann dies damit zu tun haben ?

Wenn der Index nach einem Update auf eine Entwicklerversion 0.94 oder die 0.95 das erste mal neu zusammengefügt wird und vorher lange DHT verteilt wurde ist das normal. Wenn alle .blob Dateien im Dateinamen ein aktuelles Datum tragen (nicht älter als 30 Tage) ist dieser Vorgang abgeschlossen und es dürfen nicht viel weniger werden.
Um zu prüfen ob dabei alles glatt ging nehme ich lieber den Umfang des default-verzeichnisses als Masstab, nicht die geschätzte Anzahl der Worte.
dulcedo
 
Beiträge: 1006
Registriert: Do Okt 16, 2008 6:36 pm
Wohnort: Bei Karlsruhe


Zurück zu Fragen und Antworten

Wer ist online?

Mitglieder in diesem Forum: YaCy [Bot] und 3 Gäste

cron