SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Entwicklung und Softwaredesign

PHP Entwicklung und Softwaredesign Hier können strukturelle (Programmier-) Konzepte diskutiert und Projekte vorgestellt werden

Antwort
 
Themen-Optionen Ansicht
  #11  
Alt 20.08.2007, 19:42:53
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Datenstruktur die zufällige Reihenfolge beinhaltet

hallo leute, tut mir leid, dass ich mich so lange nicht mehr gemeldet habe. rambi: deinen vorschlag hab ich glatt überlesen.

ich werde die nächsten tage mal alles testen und morgen (heute bin ich irgendwie zu müde, jaja, das alter) dann die fragen beantworten...
Mit Zitat antworten
  #12  
Alt 21.08.2007, 02:55:14
rambi
Guest
 
Beiträge: n/a
AW: Datenstruktur die zufällige Reihenfolge beinhaltet

Phuuu... und ich dachte schon fast, ich hätte dich irgendwann einmal verärgert und wäre auf der Ignorierliste (die mit den 10000 (hoffendlich)freien Plätzen) gelandet.... ;-)

Aber so:
Mach was draus, und berichte.. :-)

*Ach ja*
Wo bekommt man überhaupt 10^9 Worte her, bzw. was stellst du damit an?

Geändert von rambi (21.08.2007 um 02:58:49 Uhr)
Mit Zitat antworten
  #13  
Alt 01.09.2007, 00:49:01
rambi
Guest
 
Beiträge: n/a
AW: Datenstruktur die zufällige Reihenfolge beinhaltet

@feuervogel
Gibt es neue Erkenntnisse?
Mit Zitat antworten
  #14  
Alt 01.09.2007, 10:39:54
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Datenstruktur die zufällige Reihenfolge beinhaltet

okay, ich formuliere es mal so:

es geht um einen webcrawler. und jaaa, ich weiß, es gibt schon 1000 webcrawler, aber wenige, die sich fürs große crawlen eigenen und dauerhaft performant sind. meine abteilung in der uni musste damit einige schmerzhafte erfahrungen sammeln.

im grunde genommen wird der crawler in zwei schritten arbeiten:

1. alle urls der liste abarbeiten und neue urls speichern.
2. die liste durcheinander würfeln und wieder zu 1 springen.

die verwaltung dieser liste hat sich als der größte flaschenhals herausgestellt, daher ist es mir so wichtig, dass es halbwegs performant abläuft. aber hier kann ich mir dann ja einen schnellen sortieralgorithmus ausdenken/implementieren (oder einfach mysql die arbeit machen lassen, kann ja ruhig ein wenig dauern).

alllerdings ist mir auch die idee gekommen, den leuten in der uni eins vorraus zu sein und threads zu benutzen, dann kann ich vielleicht gleichzeitig sortieren und crawlen (je nachdem wie viele resourcen das frisst). aber das kann natürlich immer zu zusätzlichen problemen führen.
Mit Zitat antworten
  #15  
Alt 01.09.2007, 18:44:14
rambi
Guest
 
Beiträge: n/a
AW: Datenstruktur die zufällige Reihenfolge beinhaltet

So langsam wirds deutlicher, was du vorhast...
(aber so wirklich viel Ahnung habe ich da auch nicht von)

Wozu soll das Würfeln der Liste gut sein?
Wann die Seiten an die Reihe kommen, ist doch relativ wurscht, oder nicht?
Ist da ein Timestamp von letzten Scan nicht viel angebrachter?
Auch über ein Relevanz Flag könnte man nachdenken.

Threads:
Das erscheint mir viel logischer!
KA wie lange dein Script braucht um eine Seite zu analysieren, sagen wir mal 10ms. Die typische Requestzeit dürfte heutzutage bei ca 100 bis 500 ms liegen. Also wären für maximale Auslastung ca 10 bis 50 Threads angesagt, welche die einzelnen URLs abklappern. Ein Thread zum sortieren scheint mir da irgendwie falsch zu sein, das sollte man der DB überlassen.

Vermutlich ist es noch nicht einmal wichtig, ob die Daten sofort und synkron in die DB geschrieben oder gelesen werden. Also Queues einrichten, wo es nur geht.

So, mehr mag dazu nicht sagen...
Mit Zitat antworten
  #16  
Alt 01.09.2007, 18:57:22
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Datenstruktur die zufällige Reihenfolge beinhaltet

es gibt webseitenbetreiber die dich aussperren wenn du über einen längeren zeitraum ihre seite alle 30 sekunden abfragst. es gibt webseitenbetreiber die richten eine robots.txt ein mit einer vorgeschriebenen pause von 3 minuten. und es gibt webseiten, die zusammenknicken, wenn man sie mit anfragen torpediert, auch zu einem "guten" zweck. (so geschehen durch die uni leipzig beim tüv süd, als nach den urls rückwärs gelesen sortiert wurde.)

daher spielt die reihenfolge sehr wohl eine rolle und es wichtig, dass diese zufällig ist.

ich könnte natürlich für jede domain einen thread aufmachen und dann jeweils den thread warten lassen, aber ich will ja keine breitensuche, sondern möglichst verschiedene webseiten crawlen :-)
Mit Zitat antworten
  #17  
Alt 01.09.2007, 20:07:06
Benutzerbild von z0iD
z0iD z0iD ist offline
Junior Member
 
Registriert seit: Mar 2006
Beiträge: 415
z0iD eine Nachricht über ICQ schicken
AW: Datenstruktur die zufällige Reihenfolge beinhaltet

Was hältst Du davon, nach der Quersumme der URL zu sortieren?

Problematisch dabei wären dann wohl so CMS' die solche URLs verwalten wie:
www.domain.de/?id=1
www.domain.de/?id=2
www.domain.de/?id=3
Da die dann immer nah beieinander liegen.
__________________
Bitte sprich entweder deutsch oder englisch mit mir, aber nicht beides gleichzeitig.

----------
Bitte vor dem Fragen lesen: Wie man Fragen richtig stellt.
Mit Zitat antworten
  #18  
Alt 01.09.2007, 20:27:41
rambi
Guest
 
Beiträge: n/a
AW: Datenstruktur die zufällige Reihenfolge beinhaltet

Zitat:
daher spielt die reihenfolge sehr wohl eine rolle und es wichtig, dass diese zufällig ist.
Sicherlich ist eine Reihenfolge irgendwie wichtig. Aber was das mit dem Zufall zu tun haben soll, hast du mir damit noch nicht verkauft.... ;-)
Der Zufall hilft weder bei den 3 Minuten, noch verhindert er das tausendfache Anfragen einer Domain. Es liegt in der Natur der Zufälle, dass sie nicht SO zuverlässig sind und ab und zu die witzigsten Zahlenfolgen liefern.
Mit Zitat antworten
  #19  
Alt 01.09.2007, 20:57:56
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Datenstruktur die zufällige Reihenfolge beinhaltet

sagen wir so: beim zufall ist die gefahr am kleinsten, dass ich mehrere urls einer domain hintereinander erwische.

und es ist für die datenmenge nunmal am einfachsten zu implementieren. (1 milliarde mal eine quersumme eines strings ausrechnen möchte ich z.b. nicht).

und du kannst dir ziemlich sicher sein, dass es google genau so macht, und deren lösungen sind durchaus sehr performant.
Mit Zitat antworten
  #20  
Alt 17.09.2007, 12:37:10
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Datenstruktur die zufällige Reihenfolge beinhaltet

So, nachdem meine Tage wieder ein wenig stressfreier geworden sind:

Ich habe nun eine erste pre-alpha des Crawlers implementiert. Er ist in Python geschrieben; Crawling läuft verteilt. Der Code fürs Crawlen wird dynamisch mittels Pyro geladen, die Daten über xmlrpc hin- und hergeschickt.

Ich habe eine Liste mit aktuellen URLs. Diese Crawle ich nach URLs und speichere sie. Wenn die alten URLs alle abgegrast sind, dann sortiere ich beide Listen zufällig und fange wieder von vorne an.

Da ich mit einer MySQL-Datenbank arbeite, erledige ich das faulerweise mit order by `rand` (so heißt die Spalte).

Ansonsten heißt es jetzt eigentlich nur noch Bugtesting und weitere schöne Eigenheiten hinzuzufügen (ausser, dass mir lediglich ein paar hundert Terrabyte fehlen um wirklich loszulegen).
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Reihenfolge VaN_tHe_MaN PHP Grundlagen 11 30.12.2006 15:37:57
3 zufällige Datensätze von ca. 1000, sortiert nach Spalte 2 ? bilbo_b MySQLi/PDO/(MySQL) 5 01.11.2006 00:49:15
Zufällige Anzeige von Bild + Text buero_b PHP Grundlagen 10 26.09.2006 11:28:01
reihenfolge von datensätzen ändern ingo PHP für Fortgeschrittene und Experten 5 17.08.2003 15:24:58


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:32:08 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt