La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Efficient URL caching for WWW crawling Broder, Najork, Wiener (2003)"— Transcription de la présentation:

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


Télécharger ppt "Efficient URL caching for WWW crawling Broder, Najork, Wiener (2003)"

Présentations similaires


Annonces Google