[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: xargs für url-listen?



Am 2006-05-26 12:02:29, schrieb Jan Kesten:

> Hmm, was Du da haben willst ist einfach eine Liste aller URLs die noch 
> nicht in $LISTE sind, aber in $DATEI stehen? Wo ist da das Problem? Wenn 
> ich mich in den Postings richtig erinnere, programmierst Du und nutzt 
> auch PostgreSQL.

Also bis jetzt überprüfe ich jeden URL ob er in der PostgreSQL
bereits ist, was aber immense Resourcen benötigt...  Die Kiste
ist ein Opteron 150 mit 4 GByte Speicher...  läuft aber derzeit
noch unter i386 weil ich mit ein paar programmen probleme unter
amd64 habe...


> Lösungsvorschlag a)
> 
> Anstelle einer Liste mit den URLs als Expression einfach eine weitere 
> Liste, sort + diff = fertig.

Ein zweimailiges 'sort -u' mit nachfolgendem 'diff' dauerte über
30 minuten.

> Lösungsvorschlag b)
> 
> Kurzes (Python|Perl|Java|whatecer)-Skript geschrieben, die $DATEI mit 
> den URLs komplett einlesen und alle Einträge anhand der $LISTE daraus 
> entfernen.

Machste dann ein Array aus den URLs?  Ich hatte das mit perl ein
bischen versucht, nur bin ich dann in Speicher schwierigkeiten
geraten wobei die 4 GByte nicht genug waren...

> Lösungsvorschlag c)
> 
> PostgreSQL nehmen, zwei Tabellen für die beiden Listen erstellen, alle 
> URLs hineinschreiben. Okay, dafür sind Datenbanken sicher nicht gedacht, 
> aber möglich wäre es (vorallem wenn man noch zusätzliche Informationen 
> verwalten kann/will). Dann einen Query in der Form:
> 
> select url from url1 except select url from url2;

Fast...

Die URL's sind ja bereits drin, nur teste ich derzeit jeden
eingehenden URL gegen die Liste...  was bei über 200 URLs
pro Sekunde ne nette Last gibt...

Geht allerdings über GigaBit Netzwerk.

Der Rechner selber ist nur für die Analyse zuständig...

> Lösungsvorschalg d)
> 
> 'Richtiges' Programm mit 'guter' Datenstrukturschreiben wenns noch 
> halbwegs schnell sein soll.
> 
> >Die Frage ist nun, wie würdet ihr das am besten lösen?
> 
> NICHT in Umgebungsvariablen der Shell. Sonst mit kurzem Nachdenken, 5 
> Minuten Arbeit und etwas Warten.
> 
> >$DATEI ist übrigends eine Liste von URLS die ich überwachen, bzw.,
> >runterladen will und $LISTE mein localer Cache.
> 
> Soviel Überwachung lässt mich an gewissen "Three-Letter-Agencies" denken...

PMC  :-)

Ich betreibe seit ende 1999 dataretention... (lucratives nebengeschäft)

Naja, ich habe auch ein paar URLs des FBI und der CIA im Cache.
Man muß ja bischen auf dem laufenden sein...

> Ich behaupte das geht noch wesentlich schneller und eleganter (will 
> vorallem meinen etwas weniger speicherlastig), wenn die Listen beide 

Das Speicherproblem hatte ich auch.
Alle größeren Tests sind am Speicher gescheitert.

> sortiert vorliegen, wenn sie nicht mehr ins RAM passen. Da braucht es 
> dann aber mehr als die zehn Minuten, die ich mir genommen hab :-)

;-)

Dachte mir auch, das ich alles in den Speicher lade und von dort
aus arbeite und das Ergebnis in die PostgreSQL zurück schiebe.

Sollte eigentlich effectiver sin, als jeden einzelnen URL per
query in der Datenbank zu überprüfen...  (geht alles von einem
BaSH script aus)

> Cheers,
> Jan

Greetings
    Michelle Konzack


-- 
Linux-User #280138 with the Linux Counter, http://counter.li.org/
##################### Debian GNU/Linux Consultant #####################
Michelle Konzack   Apt. 917                  ICQ #328449886
                   50, rue de Soultz         MSM LinuxMichi
0033/6/61925193    67100 Strasbourg/France   IRC #Debian (irc.icq.com)



Reply to: