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(a)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.
>
>