Meisterhafte Spider-Aufgabenteilung
Verfasst: 15.07.2011, 22:19
Seit ein paar Wochen hab ich das Vergnügen, Google auf einer Site mit etwa 400K Crawler-Queries pro Tag (etwa 5 Queries / Sekunde) zu beobachten. Google nutzt dafür etwa 69 IPs mit einer merkbaren Menge an Abfragen ein, 45 davon tragen die Hauptlast mit jeweils mehr als 5000 Queries/Tag.
A - streng kontrollierte Lastverteilung: Spannend finde ich jetzt, wie Google die Last verteilt. Logischerweise bekommt offenbar jeder Crawler seinen Satz an URLs zugeordnet. Es ist jetzt aber nicht so, dass der eine Crawler Adressen ab A und der andere Adressen ab M bearbeitet, sondern sie teilen sich in vielen Fällen die A's, gehen dann zu B über usw. Die Logs sehen dementsprechend in weiten Teilen so aus, als ob alphabetisch gecrawlt wird. Also, egal welche IP gerade zugreift, sie greift tendenziell auf eine URL zu, die alphabetisch nach der gerade zuvor gecrawlten URL liegt.
B - invariante URL-Länge: Interessant finde ich, dass dabei heute die Länge der URLs scheinbar keine große Rolle spielt. Früher hatte ich oft Log-Einträge, bei denen die Crawling-Reihenfolge klar von der Länge der URLs abhängig war (kurze URLs zuerst, dann immer die ein Zeichen längeren URLs). Heute ist es ganz klar alphabetisch. Das heißt jetzt aber nicht, dass grundsätzlich A vor B kommt, sondern nur, dass die aktuell gecrawlte Untermenge der URLs immer alphabetisch ist.
Das ganze ist zugegebenermaßen ein bisschen nerdig... Ich hoffe, der ein oder andere findet das interessant.
Schönes WE euch!
A - streng kontrollierte Lastverteilung: Spannend finde ich jetzt, wie Google die Last verteilt. Logischerweise bekommt offenbar jeder Crawler seinen Satz an URLs zugeordnet. Es ist jetzt aber nicht so, dass der eine Crawler Adressen ab A und der andere Adressen ab M bearbeitet, sondern sie teilen sich in vielen Fällen die A's, gehen dann zu B über usw. Die Logs sehen dementsprechend in weiten Teilen so aus, als ob alphabetisch gecrawlt wird. Also, egal welche IP gerade zugreift, sie greift tendenziell auf eine URL zu, die alphabetisch nach der gerade zuvor gecrawlten URL liegt.
B - invariante URL-Länge: Interessant finde ich, dass dabei heute die Länge der URLs scheinbar keine große Rolle spielt. Früher hatte ich oft Log-Einträge, bei denen die Crawling-Reihenfolge klar von der Länge der URLs abhängig war (kurze URLs zuerst, dann immer die ein Zeichen längeren URLs). Heute ist es ganz klar alphabetisch. Das heißt jetzt aber nicht, dass grundsätzlich A vor B kommt, sondern nur, dass die aktuell gecrawlte Untermenge der URLs immer alphabetisch ist.
Das ganze ist zugegebenermaßen ein bisschen nerdig... Ich hoffe, der ein oder andere findet das interessant.
Schönes WE euch!