Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parFlorentin Aubry Modifié depuis plus de 9 années
1
Efficient URL caching for WWW crawling Broder, Najork, Wiener (2003)
2
Janvier 2006Algoweb - Jonathan Salfati Introduction: le crawling du web Le crawling algorithme très simple 1.Téléchargement d’une page 2.Parse pour extraire les liens 3.Pour chaque liens non visités répéter 1 et 2
3
Janvier 2006Algoweb - Jonathan Salfati 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 = n’importe lequel) 40% des pages changent hebdomadairement –(au moins 1/3 change) 7% des pages changent par semaine
4
Janvier 2006Algoweb - Jonathan Salfati 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 l’algorithme. (quelle page à crawler va vers quel crawler?)
5
Janvier 2006Algoweb - Jonathan Salfati 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. EX:Le crawler situé en suisse n'ira télécharger que sur des serveurs suisses... Il y a d’autres méthodes…
6
Janvier 2006Algoweb - Jonathan Salfati Crawling: amélioration de l’algorithme 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 d’accès: caching
7
Janvier 2006Algoweb - Jonathan Salfati 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
Janvier 2006Algoweb - Jonathan Salfati 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
Janvier 2006Algoweb - Jonathan Salfati 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
Janvier 2006Algoweb - Jonathan Salfati 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
Janvier 2006Algoweb - Jonathan Salfati 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
Janvier 2006Algoweb - Jonathan Salfati 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
Janvier 2006Algoweb - Jonathan Salfati 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 qu’avec 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
Janvier 2006Algoweb - Jonathan Salfati 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
Janvier 2006Algoweb - Jonathan Salfati 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
Janvier 2006Algoweb - Jonathan Salfati 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
Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching: CLOCK Séquence de pages a télécharger: A|C|G|E|H|.. C 1 B 1 A 1 D 1 E 1 F 1 Pointeur: CLOCK handle Bit: Statut de la page Page référencée dans le cache
18
Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching: CLOCK ACGEH C 1 B 1 A 1 D 1 E 1 F 1 HIT
19
Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching: CLOCK ACGEH C 1 B 1 A 1 D 1 E 1 F 1 HIT
20
Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching: CLOCK ACGEH C 1 B 1 A 1 D 1 E 1 F 1 MISS
21
Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching: CLOCK ACGEH C 0 B 1 A 1 D 1 E 1 F 1 MISS
22
Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching: CLOCK ACGEH C 0 B 1 A 1 D 0 E 1 F 1 MISS
23
Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching: CLOCK ACGEH C 0 B 1 A 1 D 0 E 0 F 1 MISS
24
Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching: CLOCK ACGEH C 0 B 1 A 1 D 0 E 0 F 0 MISS
25
Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching: CLOCK ACGEH C 0 B 1 A 0 D 0 E 0 F 0 MISS
26
Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching: CLOCK ACGEH C 0 B 0 A 0 D 0 E 0 F 0 MISS
27
Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching: CLOCK ACGEH G 1 B 0 A 0 D 0 E 0 F 0 MISS
28
Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching: CLOCK ACGEH G 1 B 0 A 0 D 0 E 0 F 0
29
Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching: CLOCK ACGEH G 1 B 0 A 0 D 0 E 0 F 0 HIT
30
Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching: CLOCK ACGEH G 1 B 0 A 0 D 0 E 0 F 0 MISS
31
Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching: CLOCK ACGEH G 0 B 0 A 0 D 0 E 0 F 0 MISS
32
Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching: CLOCK ACGEH G 0 B 0 A 0 H 1 E 0 F 0 MISS
33
Janvier 2006Algoweb - Jonathan Salfati 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
Janvier 2006Algoweb - Jonathan Salfati 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é d’obtenir 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
Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching: STATIC Problèmes avec cette approche: –Les probabilités ne sont pas connues d’avance. –"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
Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching théoriques INFINITE: cache infini MIN: cache clairvoyant
37
Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching théoriques: INFINITE On suppose que la taille du cache est plus grand que le nombre de requêtes distinctes. On a alors: N miss = N requête
38
Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching théoriques: MIN 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
Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching théoriques: MIN L’algorithme MIN a été implémenté pour l’expé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
Janvier 2006Algoweb - Jonathan Salfati 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
Janvier 2006Algoweb - Jonathan Salfati MERCATOR: architecture
42
Janvier 2006Algoweb - Jonathan Salfati MERCATOR Liste des URL à télécharger
43
Janvier 2006Algoweb - Jonathan Salfati MERCATOR Liste des URL à télécharger Download
44
Janvier 2006Algoweb - Jonathan Salfati MERCATOR Liste des URL à télécharger Download Rewind Input Stream: buffer
45
Janvier 2006Algoweb - Jonathan Salfati MERCATOR Liste des URL à télécharger Download Rewind Input Stream: buffer Si stream est du HTML: extraire liens. Constructeur de liens en liens absolus
46
Janvier 2006Algoweb - Jonathan Salfati MERCATOR Liste des URL à télécharger Download Rewind Input Stream: buffer Si stream est du HTML: extraire liens. Constructeur de liens en liens absolus Analyseur de liens. Enlève liens qui sont non téléchargeables selon "robot.txt". Et liens renvoyant à la page elle même
47
Janvier 2006Algoweb - Jonathan Salfati MERCATOR Liste des URL à télécharger Download Rewind Input Stream: buffer Si stream est du HTML: extraire liens. Constructeur de liens en liens absolus Analyseur de liens. Enlève liens qui sont non téléchargeables selon "robot.txt". Et liens renvoyant à la page elle même Assigne à quel machine le download du lien doit être fait. 81.5% liens sont des liens relatifs donc restent sur la machine
48
Janvier 2006Algoweb - Jonathan Salfati MERCATOR Liste des URL à télécharger Download Rewind Input Stream: buffer Si stream est du HTML: extraire liens. Constructeur de liens en liens absolus Analyseur de liens. Enlève liens qui sont non téléchargeables selon "robot.txt". Et liens renvoyant à la page elle même Assigne à quel machine le download du lien doit être fait. 81.5% liens sont des liens relatifs donc restent sur la machine Duplicate URL eliminator
49
Janvier 2006Algoweb - Jonathan Salfati MERCATOR Caching. Si hit lien pas ajouté à la liste
50
Janvier 2006Algoweb - Jonathan Salfati MERCATOR Caching. Si hit le lien n'est pas envoyé via le réseau
51
Janvier 2006Algoweb - Jonathan Salfati 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
Janvier 2006Algoweb - Jonathan Salfati 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
Janvier 2006Algoweb - Jonathan Salfati 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
Janvier 2006Algoweb - Jonathan Salfati Résultats De taille k=2 0 a k=2 25. LRU et CLOCK pratiquement identiques à peine moins bon que MIN RANDOM récolte aussi de bon résultats Seul STATIC est bien moins bon "Miss rate" en fonction de la taille du cache. "Miss rate" relatif à MIN
55
Janvier 2006Algoweb - Jonathan Salfati Phénomène: 3 phases –Pour une taille de k = 2 0 à k = 2 14 Le cache se rempli. Pour tout les algorithmes (!static) constante de 70% pour le miss rate –De k = 2 14 à k = 2 18 (dépend de l’algorithme) 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. Résultats: commentaires
56
Janvier 2006Algoweb - Jonathan Salfati 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 n’y a aucune indépendance des requêtes pour parcourir le WEB.
57
Janvier 2006Algoweb - Jonathan Salfati 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
Janvier 2006Algoweb - Jonathan Salfati 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?)
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.