Efficient URL caching for WWW crawling - PowerPoint PPT Presentation

About This Presentation
Title:

Efficient URL caching for WWW crawling

Description:

Algorithme tr s simple mais appliqu un nombre de donn es norme et en ... Si hit lien pas ajout la liste. Janvier 2006. Algoweb - Jonathan Salfati. MERCATOR ... – PowerPoint PPT presentation

Number of Views:30
Avg rating:3.0/5.0
Slides: 59
Provided by: Jona372
Category:

less

Transcript and Presenter's Notes

Title: Efficient URL caching for WWW crawling


1
Efficient URL caching for WWW crawling
  • Broder, Najork, Wiener
  • (2003)

2
Introduction 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

3
Introduction 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

4
Introduction 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?)

5
Crawling 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

6
Crawling 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

7
Le 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
  • ...

8
Le 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

9
Algorithmes 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

10
Terminologie 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

11
Algorithme 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

12
Pourquoi 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).

13
Pourquoi 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

14
Algorithmes 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.

15
Algorithmes 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.

16
Algorithmes 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

17
Algorithmes 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
18
Algorithmes de caching CLOCK
1
  • ACGEH

A
1
1
B
F
HIT
1
1
C
E
1
D
19
Algorithmes de caching CLOCK
1
  • ACGEH

A
1
1
B
F
HIT
1
1
C
E
1
D
20
Algorithmes de caching CLOCK
1
  • ACGEH

A
1
1
B
F
MISS
1
1
C
E
1
D
21
Algorithmes de caching CLOCK
1
  • ACGEH

A
1
1
B
F
MISS
0
1
C
E
1
D
22
Algorithmes de caching CLOCK
1
  • ACGEH

A
1
1
B
F
MISS
0
1
C
E
0
D
23
Algorithmes de caching CLOCK
1
  • ACGEH

A
1
1
B
F
MISS
0
0
C
E
0
D
24
Algorithmes de caching CLOCK
1
  • ACGEH

A
1
0
B
F
MISS
0
0
C
E
0
D
25
Algorithmes de caching CLOCK
0
  • ACGEH

A
1
0
B
F
MISS
0
0
C
E
0
D
26
Algorithmes de caching CLOCK
0
  • ACGEH

A
0
0
B
F
MISS
0
0
C
E
0
D
27
Algorithmes de caching CLOCK
0
  • ACGEH

A
0
0
B
F
MISS
1
0
G
E
0
D
28
Algorithmes de caching CLOCK
0
  • ACGEH

A
0
0
B
F
1
0
G
E
0
D
29
Algorithmes de caching CLOCK
0
  • ACGEH

A
0
0
B
F
HIT
1
0
G
E
0
D
30
Algorithmes de caching CLOCK
0
  • ACGEH

A
0
0
B
F
MISS
1
0
G
E
0
D
31
Algorithmes de caching CLOCK
0
  • ACGEH

A
0
0
B
F
MISS
0
0
G
E
0
D
32
Algorithmes de caching CLOCK
0
  • ACGEH

A
0
0
B
F
MISS
0
0
G
E
1
H
33
Algorithmes 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

34
Algorithmes 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

35
Algorithmes 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.

36
Algorithmes de caching théoriques
  • INFINITE cache infini
  • MIN cache clairvoyant

37
Algorithmes 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

38
Algorithmes 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

39
Algorithmes 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

40
Le 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

41
MERCATOR architecture
42
MERCATOR
Liste des URL à télécharger
43
MERCATOR
Liste des URL à télécharger
Download
44
MERCATOR
Rewind Input Stream buffer
Liste des URL à télécharger
Download
45
MERCATOR
Rewind Input Stream buffer
Si stream est du HTML extraire liens.
Constructeur de liens en liens absolus
Liste des URL à télécharger
Download
46
MERCATOR
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
47
MERCATOR
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
48
MERCATOR
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
49
MERCATOR
Caching. Si hit lien pas ajouté à la liste
50
MERCATOR
Caching. Si hit le lien n'est pas envoyé via le
réseau
51
Le 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
52
Le 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

53
Ré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

54
Ré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
55
Ré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.

56
Ré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.

57
Ré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

58
Conclusion 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?)
Write a Comment
User Comments (0)
About PowerShow.com