Temporäre Dateien?

Forum for developers

Temporäre Dateien?

Beitragvon thq » Fr Jan 30, 2009 12:57 pm

Ich habe bei mir im System tmp Verzeichnis seit einiger Zeit Dateien wie diese upload_53817e7_11f26c610d1__8000_00332352.tmp

Der Inahlt sieht so aus
Code: Alles auswählen
EYHXLchKUIv{h=Tep82nKNSYZA,a=14274,s=14274,u=9,w=1799,p=1,d=104,l=de,x=21,y=29,m=40,n=5,g=0,z=AAAAAA,c=1,t=657,r=163,o=100,i=0,k=0}
QEYHXLchKUIv{h=UqkTJ5ScpKKZ,a=14274,s=14274,u=12,w=1644,p=1,d=104,l=de,x=41,y=81,m=62,n=8,g=0,z=AAAQAA,c=1,t=643,r=201,o=100,i=0,k=0}
QEYHXLchKUIv{h=gxteC5ScpKKZ,a=14274,s=14274,u=12,w=1639,p=1,d=104,l=de,x=41,y=81,m=94,n=12,g=0,z=AAAQAA,c=1,t=643,r=201,o=100,i=0,k=0}
QEYHXLchKUIv{h=03OV65ScpKKZ,a=14274,s=14274,u=12,w=1680,p=1,d=104,l=de,x=46,y=81,m=54,n=6,g=0,z=AAAQAA,c=1,t=652,r=228,o=100,i=0,k=0}
QEY19kFPYiGj{h=FMxiTAKBw8RZ,a=14274,s=14274,u=3,w=2191,p=1,d=104,l=en,x=61,y=30,m=34,n=3,g=0,z=AAAQAA,c=1,t=0,r=1,o=99,i=0,k=0}
QEZn3UwH5y-X{h=ri3Sai1UxkDA,a=14274,s=14274,u=21,w=1611,p=1,d=104,l=uk,x=129,y=76,m=51,n=10,g=0,z=AAAQAA,c=1,t=0,r=38,o=99,i=0,k=0}
QEbd7Ka5B6GS{h=B4NcgsH-7FkZ,a=14274,s=14274,u=8,w=5821,p=1,d=104,l=en,x=105,y=149,m=89,n=11,g=0,z=AAAQAA,c=1,t=634,r=137,o=100,i=0,k=0}
QEbd7Ka5B6GS{h=CFkJqsH-7FkZ,a=14274,s=14274,u=8,w=5820,p=1,d=104,l=en,x=105,y=149,m=81,n=11,g=0,z=AAAQAA,c=1,t=634,r=137,o=100,i=0,k=0}
...

Gehört das dazu ?
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm

Re: Spracherkennung

Beitragvon Low012 » Fr Jan 30, 2009 1:06 pm

Lotus hat geschrieben:Ist es eigentlich Absicht, dass der Ordner langstats nicht mit ins Release wandert?

Nein, das ist keine Absicht, ich habe verpennt, das ANT-Skript anzupassen.

thq hat geschrieben:Ich habe bei mir im System tmp Verzeichnis seit einiger Zeit Dateien wie diese upload_53817e7_11f26c610d1__8000_00332352.tmp

Der Inahlt sieht so aus
[...]
Gehört das dazu ?

Nein, ich habe jedenfalls nichts programmiert, was solche Dateien erzeugen würde.
Low012
 
Beiträge: 2214
Registriert: Mi Jun 27, 2007 12:11 pm

Re: Spracherkennung

Beitragvon thq » Fr Jan 30, 2009 1:15 pm

Low012 hat geschrieben:
thq hat geschrieben:Ich habe bei mir im System tmp Verzeichnis seit einiger Zeit Dateien wie diese upload_53817e7_11f26c610d1__8000_00332352.tmp

Der Inahlt sieht so aus
[...]
Gehört das dazu ?

Nein, ich habe jedenfalls nichts programmiert, was solche Dateien erzeugen würde.

Die werden aber von YaCy erstellt, vielleicht etwas von Orbiters neuer kommenden DHT Verteilung, aber wieso landet das im System tmp Verzeichnis und nicht im DATA Verzeichnis von YaCy ?
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm

Re: Spracherkennung

Beitragvon Orbiter » Fr Jan 30, 2009 1:47 pm

die neue DHT-Verteilung existiert bislang nur auf meinem Notebook, und ins tmp schreibt eigentlich nichts explizit in YaCy. Es wäre möglich das manche Java-VMs sich Zwischenlager für Dateien in tmp suchen, beispielsweise auch solche die temporär mit einen 'createTempFile()' erzeugt werden. Sowas gibts in YaCy nur bei den externen Parsern und bei der seed-File Generierung. Das ist aber alles ganz alter Code. Das createTempFile sollte man mal überarbeiten, aber das ist hier OT.
Orbiter
 
Beiträge: 5798
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Spracherkennung

Beitragvon Low012 » Fr Jan 30, 2009 1:57 pm

Was mir grad eingefallen ist: Hast du irgendeine Funktion benutzt, wo Daten nach YaCy hochgeladen werden? YaCy nutzt dafür ja eine Bibliothek aus den Apache Commons. Das "upload" im Dateinamen weist vielleicht drauf hin.

edit: http://groups.google.com/group/epubchec ... c622aa940d weist auch drauf hin, dass commons-fileupload-1.2.1.jar hier der "Schuldige" ist.
Low012
 
Beiträge: 2214
Registriert: Mi Jun 27, 2007 12:11 pm

Re: Spracherkennung

Beitragvon Orbiter » Fr Jan 30, 2009 2:09 pm

na toll, das heisst bei http post macht apache commons IO? das ist ja bullshit. Wir geben uns mühe möglichst wenig IO zu machen und commons macht temporäre Dateien.
Orbiter
 
Beiträge: 5798
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Spracherkennung

Beitragvon Low012 » Fr Jan 30, 2009 2:31 pm

Man kann da wohl eine Schwelle einstellen, bis zu welcher Dateigröße in den Speicher geschreiben und ab wann auf die Festplatte geschrieben wird.

Die Doku gibt es auf http://commons.apache.org/fileupload/apidocs/. Das Objekt, nach dem wir in dem Zusammenhang in YaCy suchen müssen, müsste DiskFileItem sein.

Diese temporären Dateien sollten _eigentlich_ auch automatisch wieder entfernt werden, wenn sie nicht mehr gebraucht werden.

edit: Kann jemand mit den entsprechenden Rechten den Thread aufspalten und die letzten paar Posting in einen eigenen Thread verschieben? Wird ja doch arg OT...

edit2: Das ganze ist natürlich hinfällig, wenn die temporären Dateien nicht den Inhalt der hochgeldenen Daten, sondern irgendwelchen anderen Schlonz beinhalten, den die Bibliothek intern erzeugt und benötigt.
Low012
 
Beiträge: 2214
Registriert: Mi Jun 27, 2007 12:11 pm

Re: Temporäre Dateien?

Beitragvon Orbiter » Fr Jan 30, 2009 2:54 pm

hab das Thema geteilt, aber
Low012 hat geschrieben:
Lotus hat geschrieben:Ist es eigentlich Absicht, dass der Ordner langstats nicht mit ins Release wandert?

Nein, das ist keine Absicht, ich habe verpennt, das ANT-Skript anzupassen.

ist hier mitten drin, das hab ich nicht rüber bekommen.

Zurück zum neuen Topic: kann bitte mal jemand mit apache-commons-affinität sich das Thema annehmen, und möglichst danach sehen das keine tmp-Dateien geschrieben werden? Marc hat ja da schon gut vorgelegt.
Orbiter
 
Beiträge: 5798
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Temporäre Dateien?

Beitragvon thq » Fr Jan 30, 2009 6:41 pm

Ich möchte mein SVN zur Zeit nicht updaten und kann deswegen nichts hochladen, kann also einer mit aktuellen SVN diese Zeile ändern.

httpd.java, Zeile: 902

Code: Alles auswählen
FileItemFactory factory = new DiskFileItemFactory();

ändern in
Code: Alles auswählen
DiskFileItemFactory factory = new DiskFileItemFactory(1024 * 1024, new File(System.getProperty("java.io.tmpdir")));

Damit werden dann nur noch Dateien erstellt wenn mehr als 1 MB gebraucht wird (hatte ich bis jetzt noch nicht), das Verzeichnis kann man auch angeben, hier ist es das System tmp Verzeichnis.
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm

Re: Temporäre Dateien?

Beitragvon Low012 » Sa Jan 31, 2009 10:26 am

Ich habe es mal eingecheckt. Jetzt könnte es nur passieren, dass eine Exception geworfen wird, wenn nicht genug Speicher frei ist. Obwohl 1MB eigentlich immer da sein sollte, außer wenn YaCy absolut am Limit läuft und dann wahrscheinlich sowieso kaum noch was geht.

Ich habe bei mir im /tmp-Ordner übrigens noch ein paar andere Sachen (die upload*-Dateien habe ich mal weg gelassen):

-rw-r--r-- 1 yacy yacy 0 2008-07-21 09:05 de.anomic.server.serverCachedFileOutputStream600791216623955407
-rw-r--r-- 1 yacy yacy 0 2008-07-21 09:05 de.anomic.server.serverCachedFileOutputStream600821216623955483
-rw-r--r-- 1 yacy yacy 0 2008-07-21 09:05 de.anomic.server.serverCachedFileOutputStream601071216623955660
-rw-r--r-- 1 yacy yacy 0 2008-07-21 09:05 de.anomic.server.serverCachedFileOutputStream601081216623955660
-rw-r--r-- 1 yacy yacy 0 2008-07-21 09:05 de.anomic.server.serverCachedFileOutputStream601171216623956224
-rw-r--r-- 1 yacy yacy 0 2008-07-21 09:05 de.anomic.server.serverCachedFileOutputStream601181216623956429
drwxr-xr-x 2 yacy yacy 4096 2009-01-30 00:03 hsperfdata_yacy
-rw-r--r-- 1 yacy yacy 43 2008-10-22 02:01 imageio36945.tmp
-rw-r--r-- 1 yacy yacy 43 2008-08-07 20:45 imageio63038.tmp
-rw-r--r-- 1 yacy yacy 43 2008-08-07 20:45 imageio63039.tmp
-rw-r--r-- 1 yacy yacy 43 2008-08-07 20:45 imageio63040.tmp
-rw-r--r-- 1 yacy yacy 43 2008-08-07 20:45 imageio63041.tmp
-rw-r--r-- 1 yacy yacy 493723 2008-05-28 11:04 pdfbox23812tmp
Low012
 
Beiträge: 2214
Registriert: Mi Jun 27, 2007 12:11 pm

Re: Temporäre Dateien?

Beitragvon thq » Sa Jan 31, 2009 10:54 am

Du hast jetzt "FileItemFactory factory =" und nicht "DiskFileItemFactory factory =" eingefügt, keine Ahnung ob es ein Unterschied macht, aber so können wir jetzt beide Varianten testen.

File(System.getProperty("java.io.tmpdir"))
Dafür sollten wir noch in einer static Variable benutzen und in YaCy vielleicht einen eigenen tmp Ordner erstellen.
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm

Re: Temporäre Dateien?

Beitragvon Low012 » Sa Jan 31, 2009 11:19 am

Von der Funktion her sollte das keinen Unterschied machen. FileItem ist ja ein Interface, das von DiskFileItem implementiert wird. Wenn die Library irgendwann mal eine andere Impelmentierung beinhalten sollte, die unseren Bedürfnissen besser entspricht, ist das Austauschen von DiskFileItem gegen "SupertollesFileItem" so einfacher. Ja, ich weiß, das ist an dieser Stelle sowieso trivial, aber es wurde mir so eingebläut, dass man es so macht, weil das schöner und objektorientierter ist (wenn es diese Steigerung überhaupt gibt) und jetzt kann ich nicht mehr anders... ;)
Low012
 
Beiträge: 2214
Registriert: Mi Jun 27, 2007 12:11 pm

Re: Temporäre Dateien?

Beitragvon thq » Sa Jan 31, 2009 12:57 pm

Da ich das ja nie gelernt habe glaube ich dir mal ;)
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm


Zurück zu YaCy Coding & Architecture

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron