Hallo Markus,
im aktuellen DeepFS-Code kenne ich mich nicht bis ins Detail aus. Ich leite Deine Mail mal an Bastian L. und Alex weiter; vielleicht haben sie ein paar Ideen?
Grüße, Christian ___________________________
2010/6/17 Markus Roth markus.roth@uni-konstanz.de:
Hallo Christian,
ich bin derzeit ein wenig am Rumspielen mit DeepFS und es tritt kontinuierlich ein Fehler auf (immer zum gleichen Zeitpunkt): too many open files. Wenn ich das Limit für offene file handles hochsetze per ulimit -n (standard in der bash sind 1024), dann kommt der Fehler später, aber trotzdem. Siehe dazu weiter unten. Warum sollte baseX aber so viele offene file handles haben? Mit dem Lesen/Schreiben zusammen sollten es ja nicht so arg viele sein. Oder werden u.U. (da die Traversierungs-Fkt. wohl rekursiv sein dürfte) je nach Tiefe des aktuellen Pfades die Ascendants offen gelassen? Da der Fehler in der Konsole mehrfach ausgegeben wird bis zum Abbruch: gibt es mehrere parallele "crawler"/Indexer? Inwiefern die Volltext-Indexierung bzw. inkludieren der Textdaten Einfluß hat habe ich noch nicht betrachtet (also die folgenden Daten/Fehler sind mit den Standardvoreinstellungen von DeepFS OHNE Volltext-Indexierung und Inklusion von Text entstanden).
Gruß, Markus
Linux (CentOS 5.4 final) || basex 6.1 & 6.1.5 -> too many open files ca. 115k Dateien XML-Nodes: ulimit: 1,74Mio 1024 1,75Mio 2048 1,77Mio 4096 1,91Mio 16384 3,38Mio 200000
Windows XP SP3 hatte mit ca. 73k Dateien keine Probleme (konnte auch nicht rausfinden wie hoch da das OFH ist)
Auszug aus der Fehlermeldung:
java.io.FileNotFoundException: /root/BaseXData/DeepFS/tbli.basex (Too many open files) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(FileOutputStream.java:209) at java.io.FileOutputStream.<init>(FileOutputStream.java:160) at org.basex.io.DataOutput.<init>(DataOutput.java:49) at org.basex.io.DataOutput.<init>(DataOutput.java:38) at org.basex.io.TableDiskAccess.flush(TableDiskAccess.java:77) at org.basex.data.DiskData.flush(DiskData.java:122) at org.basex.data.DiskData.cls(DiskData.java:134) at org.basex.data.Data.close(Data.java:128) at org.basex.core.proc.Close.close(Close.java:46) at org.basex.core.proc.Close.run(Close.java:29) at org.basex.core.Proc.run(Proc.java:139) at org.basex.core.Proc.run(Proc.java:163) at org.basex.core.proc.Open.run(Open.java:30) at org.basex.core.Proc.run(Proc.java:139) at org.basex.core.Proc.run(Proc.java:163) at org.basex.core.proc.CreateFS.run(CreateFS.java:54) at org.basex.core.Proc.run(Proc.java:139) at org.basex.core.Proc.exec(Proc.java:109) at org.basex.core.Proc.exec(Proc.java:123) at org.basex.gui.GUICommands$49.run(GUICommands.java:931) /root/.basexwin could not be written.
... just for the records: Bastian resolved the issue.
Bastian Lemke bastian.lemke@uni-konstanz.de [basex-commits] r2272: bugfix: under certain circumstances, files are not closed after metadata extraction
On 17.06.2010, at 16:25, Christian Grün wrote:
Hallo Markus,
im aktuellen DeepFS-Code kenne ich mich nicht bis ins Detail aus. Ich leite Deine Mail mal an Bastian L. und Alex weiter; vielleicht haben sie ein paar Ideen?
Grüße, Christian ___________________________
2010/6/17 Markus Roth markus.roth@uni-konstanz.de:
Hallo Christian,
ich bin derzeit ein wenig am Rumspielen mit DeepFS und es tritt kontinuierlich ein Fehler auf (immer zum gleichen Zeitpunkt): too many open files. Wenn ich das Limit für offene file handles hochsetze per ulimit -n (standard in der bash sind 1024), dann kommt der Fehler später, aber trotzdem. Siehe dazu weiter unten. Warum sollte baseX aber so viele offene file handles haben? Mit dem Lesen/Schreiben zusammen sollten es ja nicht so arg viele sein. Oder werden u.U. (da die Traversierungs-Fkt. wohl rekursiv sein dürfte) je nach Tiefe des aktuellen Pfades die Ascendants offen gelassen? Da der Fehler in der Konsole mehrfach ausgegeben wird bis zum Abbruch: gibt es mehrere parallele "crawler"/Indexer? Inwiefern die Volltext-Indexierung bzw. inkludieren der Textdaten Einfluß hat habe ich noch nicht betrachtet (also die folgenden Daten/Fehler sind mit den Standardvoreinstellungen von DeepFS OHNE Volltext-Indexierung und Inklusion von Text entstanden).
Gruß, Markus
Linux (CentOS 5.4 final) || basex 6.1 & 6.1.5 -> too many open files ca. 115k Dateien XML-Nodes: ulimit: 1,74Mio 1024 1,75Mio 2048 1,77Mio 4096 1,91Mio 16384 3,38Mio 200000
Windows XP SP3 hatte mit ca. 73k Dateien keine Probleme (konnte auch nicht rausfinden wie hoch da das OFH ist)
Auszug aus der Fehlermeldung:
java.io.FileNotFoundException: /root/BaseXData/DeepFS/tbli.basex (Too many open files) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(FileOutputStream.java:209) at java.io.FileOutputStream.<init>(FileOutputStream.java:160) at org.basex.io.DataOutput.<init>(DataOutput.java:49) at org.basex.io.DataOutput.<init>(DataOutput.java:38) at org.basex.io.TableDiskAccess.flush(TableDiskAccess.java:77) at org.basex.data.DiskData.flush(DiskData.java:122) at org.basex.data.DiskData.cls(DiskData.java:134) at org.basex.data.Data.close(Data.java:128) at org.basex.core.proc.Close.close(Close.java:46) at org.basex.core.proc.Close.run(Close.java:29) at org.basex.core.Proc.run(Proc.java:139) at org.basex.core.Proc.run(Proc.java:163) at org.basex.core.proc.Open.run(Open.java:30) at org.basex.core.Proc.run(Proc.java:139) at org.basex.core.Proc.run(Proc.java:163) at org.basex.core.proc.CreateFS.run(CreateFS.java:54) at org.basex.core.Proc.run(Proc.java:139) at org.basex.core.Proc.exec(Proc.java:109) at org.basex.core.Proc.exec(Proc.java:123) at org.basex.gui.GUICommands$49.run(GUICommands.java:931) /root/.basexwin could not be written.
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- Alexander Holupirek Dettinger Strasse 22 78467 Konstanz 07531 - 454 98 60 0176 - 600 25 949
basex-talk@mailman.uni-konstanz.de