Title: Efficient URL caching for WWW crawling
1Efficient URL caching for WWW crawling
- Broder, Najork, Wiener
- (2003)
2Introduction le crawling du web
- Le crawling algorithme très simple
- Téléchargement dune page
- Parse pour extraire les liens
- Pour chaque liens non visités répéter 1 et 2
3Introduction le crawling du web, complications
- Algorithme très simple mais appliqué à un nombre
de données énorme et en constante évolution - Chiffres de 2002
- Google dit avoir indexé 3 milliards de pages
- Des études ont montrés que la taille du WEB
doublait tout les 9-12 mois ! - Les pages changent rapidement
- (changement nimporte lequel) 40 des pages
changent hebdomadairement - (au moins 1/3 change) 7 des pages changent par
semaine
4Introduction le crawling du web, complications
- Pour avoir une bonne représentation du WEB il
faut alors que le crawler puisse crawler 100M de
pages web par jour - Ce qui induit
- Il faudrait télécharger environ 1000 URL par
seconde (1) - Le test de la troisième étape (3) doit se faire
plus que 10000 fois par seconde - Donc les principaux crawler doivent utiliser une
architecture distribuée dans le but de crawler un
maximum de pages , donnant de nouvelles
responsabilités au pas (3) de lalgorithme.
(quelle page à crawler va vers quel crawler?)
5Crawling améliorations
- Pour accélérer la vitesse du crawling on peut
jouer sur plusieurs paramètres. - Utiliser des crawler en architecture distribuée
sur des machines crawlant des pages sur des
serveurs proches. On doit définir la
responsabilité des machines. - EXLe crawler situé en suisse n'ira télécharger
que sur des serveurs suisses... - Il y a dautres méthodes
6Crawling amélioration de lalgorithme via le
"caching"
- Accélérer le crawling par l'algorithme lui-même
- Idée essayer d'accélérer le test "est ce que ce
lien à déjà été vu". - Stocker la liste des liens dans la mémoire la
plus rapide daccès caching
7Le cache
- Hiérarchie des différents types de mémoires
accessible par une machine - Le cache CPU, mémoire la plus rapide d'accès pour
le CPU, mais aussi de taille limitée - La RAM, plus grande que le cache CPU, mais moins
rapide - Encore plus large le disque dur, beaucoup plus
lent - Les réseaux, serveurs
- ...
8Le crawling via le cache
- Idée essayer d'accélérer le test "est ce que ce
lien à déjà été vu". - Pour cela on essaye d'optimiser la liste de liens
déjà vus. - Il faudrait que les liens revenant le plus
souvent restent dans cette liste, pour pouvoir
perdre le minimum de temps lors du test "ce lien
a-t-il déjà été téléchargé". Et non par aller
chercher cette information dans une collection de
données plus lente. - Problème le caching implique une perte de taille
de stockage donc bien choisir les éléments Ã
insérer
9Algorithmes de caching
- Philosophie du caching conserver les données les
plus fréquemment utilisées à partir d'une mémoire
lente dans une mémoire plus rapide. - Le caching est une opération nécessaire pour
n'importe quel système, si on veut le rendre plus
performant - Technique fondamentale dans l'élaboration de
programmes
10Terminologie du caching
- Le cache mémoire utilisée pour stocker un nombre
d'éléments, sa taille k signifie peut stocker au
plus k éléments de même taille - A chaque unité de temps le cache reçoit une
requête pour un élément. - Si l'élément demandé est dans le cache hit
- Sinon miss
11Algorithme de caching
- Si miss
- le cache a encore de la place pour l'élément
demandé alors on l'ajoute dans le cache - Plus de place on choisit quel élément à sortir
pour faire de la place au nouvel élément. - L'algorithme de caching doit
- décider de quel élément on doit se débarrasser
- réduire le nombre de miss
12Pourquoi le caching pour le crawling?
- De part la structure du web, il y a une non
uniformité des requêtes - certaines requêtes reviennent très souvent, les
pages pointant sur google.com ou yahoo.com sont
plus nombreuses que des pages pointant sur une
home page spécifique d'un élève de l'uni de
Genève. - Corrélation temporelle ou référence de localité
(temporal correlation or locality of reference) - On peu supposer que les pages que l'on visite Ã
un temps donné t, et pour un sujet donné vont
très probablement pointer sur des pages du même
sujet, donc ces mêmes pages vont aussi repointer
sur la page visitée au temps t. (Dépendance
probabiliste).
13Pourquoi le caching pour le crawling?
- Donc un crawler qui utilise un cache qui contient
des pages populaires ou des pages très récemment
visitées va se comporter bien mieux quavec un
cache avec des pages choisies arbitrairement. - Les algorithmes de caching doivent modéliser les
deux phénomènes observés - Non uniformité du web
- Corrélation temporelle
14Algorithmes de caching LRU
- Least Recently Used. (élément utilisé le moins
récemment) - Algorithme qui fait de la place dans le cache en
enlevant lélément dont l'utilisation est la plus
vieille dans le temps. - Idée de l'algo un élément qui n'a pas été
utilisé depuis longtemps a de fortes chances de
ne pas être utilisé dans un futur proche.
15Algorithmes de caching LRU
- Très efficace MAIS petit problème a besoin de
maintenir une queue prioritaire des requêtes. - Coût en exécution et en surtout en mémoire.
16Algorithmes de caching CLOCK
- Algorithme d'approximation de LRU
- prenant bien moins de place et de temps
- Structure Un tableau de bits de taille k
représentant chaque élément dans le cache
définissant son statut "peu être remplacé ou
non" - Un Pointeur CLOCK handle, qui défini le statut
de la page. - Démo
17Algorithmes de caching CLOCK
1
- Séquence de pages a télécharger
- ACGEH..
A
Pointeur CLOCK handle
1
1
B
F
1
1
C
E
1
D
Bit Statut de la page
Page référencée dans le cache
18Algorithmes de caching CLOCK
1
A
1
1
B
F
HIT
1
1
C
E
1
D
19Algorithmes de caching CLOCK
1
A
1
1
B
F
HIT
1
1
C
E
1
D
20Algorithmes de caching CLOCK
1
A
1
1
B
F
MISS
1
1
C
E
1
D
21Algorithmes de caching CLOCK
1
A
1
1
B
F
MISS
0
1
C
E
1
D
22Algorithmes de caching CLOCK
1
A
1
1
B
F
MISS
0
1
C
E
0
D
23Algorithmes de caching CLOCK
1
A
1
1
B
F
MISS
0
0
C
E
0
D
24Algorithmes de caching CLOCK
1
A
1
0
B
F
MISS
0
0
C
E
0
D
25Algorithmes de caching CLOCK
0
A
1
0
B
F
MISS
0
0
C
E
0
D
26Algorithmes de caching CLOCK
0
A
0
0
B
F
MISS
0
0
C
E
0
D
27Algorithmes de caching CLOCK
0
A
0
0
B
F
MISS
1
0
G
E
0
D
28Algorithmes de caching CLOCK
0
A
0
0
B
F
1
0
G
E
0
D
29Algorithmes de caching CLOCK
0
A
0
0
B
F
HIT
1
0
G
E
0
D
30Algorithmes de caching CLOCK
0
A
0
0
B
F
MISS
1
0
G
E
0
D
31Algorithmes de caching CLOCK
0
A
0
0
B
F
MISS
0
0
G
E
0
D
32Algorithmes de caching CLOCK
0
A
0
0
B
F
MISS
0
0
G
E
1
H
33Algorithmes de caching RANDOM
- Random replacement.
- Fait abstraction du passé
- Si on a un miss on remplace aléatoirement un
élément du cache. Sans aucune autre heuristique - Structure de données simple liste
34Algorithmes de caching STATIC
- Chaque élément a une probabilité déterminée
d'être demandée indépendamment des requêtes
précédentes. - Signifie la probabilité dobtenir un hit est
maximisée si le cache contient k éléments qui ont
les probabilités les plus grandes dêtre
demandées - Structure liste simple
35Algorithmes de caching STATIC
- Problèmes avec cette approche
- Les probabilités ne sont pas connues davance.
- "référence de localité" incompatible avec la
supposition d'indépendance du passé. - Premier problème résolu avec un crawling
précédent pour approximer ces proba. - Le deuxième pb est une bonne raison pour vérifier
la propriété de la localité de référence - Si STATIC renvoi de bons résultats la localité de
réf n'est pas une bonne propriété - Si les résultats ne sont pas bons, localité de
réf est confirmée.
36Algorithmes de caching théoriques
- INFINITE cache infini
- MIN cache clairvoyant
-
37Algorithmes de caching théoriquesINFINITE
- On suppose que la taille du cache est plus grand
que le nombre de requêtes distinctes. - On a alors Nmiss Nrequête
38Algorithmes de caching théoriquesMIN
- Algo clairvoyant La séquence de chaque requête
est connue d'avance. - Donc la stratégie est de remplacer la page qui a
un miss avec la page dont la requête sera la plus
éloignée dans le temps. - MIN car assure un nombre de miss minimum
39Algorithmes de caching théoriquesMIN
- Lalgorithme MIN a été implémenté pour
lexpérience - Difficulté il faut savoir pour un url téléchargé
quand est ce qu'il sera demandé dans le futur. - On utilise la trace d'un crawling précédant
- Algorithme off-line
40Le crawling du WEB
- Crawler Mercator
- Système de crawling multi processus sur machines
séparées - Chaque processus de crawling est responsable d'un
groupe de hosts - Chaque processus gère un nombre défini de threads
(500) responsables du téléchargement et du
traitement des pages qui se trouvent sur le host
41MERCATOR architecture
42MERCATOR
Liste des URL à télécharger
43MERCATOR
Liste des URL à télécharger
Download
44MERCATOR
Rewind Input Stream buffer
Liste des URL à télécharger
Download
45MERCATOR
Rewind Input Stream buffer
Si stream est du HTML extraire liens.
Constructeur de liens en liens absolus
Liste des URL à télécharger
Download
46MERCATOR
Rewind Input Stream buffer
Si stream est du HTML extraire liens.
Constructeur de liens en liens absolus
Liste des URL à télécharger
Download
Analyseur de liens. Enlève liens qui sont non
téléchargeables selon "robot.txt". Et liens
renvoyant à la page elle même
47MERCATOR
Rewind Input Stream buffer
Si stream est du HTML extraire liens.
Constructeur de liens en liens absolus
Assigne à quel machine le download du lien doit
être fait. 81.5 liens sont des liens relatifs
donc restent sur la machine
Liste des URL à télécharger
Download
Analyseur de liens. Enlève liens qui sont non
téléchargeables selon "robot.txt". Et liens
renvoyant à la page elle même
48MERCATOR
Rewind Input Stream buffer
Si stream est du HTML extraire liens.
Constructeur de liens en liens absolus
Assigne à quel machine le download du lien doit
être fait. 81.5 liens sont des liens relatifs
donc restent sur la machine
Liste des URL à télécharger
Download
Analyseur de liens. Enlève liens qui sont non
téléchargeables selon "robot.txt". Et liens
renvoyant à la page elle même
Duplicate URL eliminator
49MERCATOR
Caching. Si hit lien pas ajouté à la liste
50MERCATOR
Caching. Si hit le lien n'est pas envoyé via le
réseau
51Le crawling du WEB
Machine 4 stations de travail Compaq xp1000 Lieu
Palo Alto, Californie (sillicon valley) Ã
proximité entre autre du google campus. Crawling
du 12 juillet au 3 septembre 2002 (33 jours). Les
résultats sont stockés sous forme de traces. 1.04
milliards de tentatives de téléchargement 784
millions succès 429 millions pages HTML 26.83
milliards de liens collectés Moyenne de 62.55
liens par page nombre médian de liens par pages
23
La moyenne est grossie par un petit nombre de
pages ayant un nombre très grand de liens
52Le crawling du WEB
- Le crawling du WEB donne une trace
- pas directement stockée sur les machines elles
mêmes mais au fur et à mesure sur d'autres
machines ayant plus de capacités - Après le crawling simulation utilisant les
différents algorithmes de caching
53Résultats
- Résultats pris que d'une machine (les résultats
des autres sont quasi identiques) - Calcul du MISS rate pourcentage de miss par
rapport à l'ensemble des requêtes vers le cache - Plus le miss rate est petit plus le cache est
doté des URL les plus demandées
54Résultats
"Miss rate" en fonction de la taille du cache.
"Miss rate" relatif à MIN
De taille k20 a k225. LRU et CLOCK
pratiquement identiques à peine moins bon que
MIN RANDOM récolte aussi de bon résultats Seul
STATIC est bien moins bon
55Résultats commentaires
- Phénomène 3 phases
- Pour une taille de k 20 Ã k 214 Le cache se
rempli. Pour tout les algorithmes (!static)
constante de 70 pour le miss rate - De k 214 à k 218 (dépend de lalgorithme)
chute abrupte du taux pour arriver à 20. - Au-delà très légère baisse du taux.
- Le cache est doté des URL les plus populaires du
CORE. Le set des URL emmagasinés au début ne
change que très peu.
56Résultats commentaires
- STATIC a des résultats différents du reste.
- Vérification de la propriété de localité de
référence du WEB. - Il ny a aucune indépendance des requêtes pour
parcourir le WEB.
57Résultats commentaires
- Résultats de RANDOM de plus près
- L'élément dont on doit se débarrasser est choisi
au hasard. - Si le RANDOM est uniforme alors l'élément inséré
dans le cache de taille k pourrait être éliminé
après k autres éliminations - Durant ce temps il a pu contribué a un nombre de
hits conséquent - S'il un URL populaire est éliminé il reviendra
très vite et contribuera à d'autres hits - La liste d'URL à un temps donné n'est pas du tout
dû au hasard. - Il est plus probable qu'il comporte les URL
demandées le plus - récemment que des URL plus anciens
58Conclusion des auteurs
- Après les différentes simulations différentes de
crawl à partir du trace d'un premier crawling, le
caching apporte une amélioration conséquente - Recommandation d'utilisation les algorithmes
CLOCK ou RANDOM, et un cache capable de stocker
50000 URL. (si plus, le taux de miss rate ne
change guère) - LRU prend trop de mémoire vu sa structure (doit
garder le moment de l'accès à une page gourmand
en taille) - STATIC pas adapté vu les propriétés du WEB
- N'ont pas utilisé d'algorithme particulier de
parcours du WEB. (est ce raisonnable?)