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 Salfati2 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 Salfati3 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 Salfati4 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 pages 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 Salfati5 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 Salfati6 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 Salfati7 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 Salfati8 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 Salfati9 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 Salfati10 Terminologie du caching Le cache: mémoire utilisée pour stocker un nombre de taille égale d'éléments, sa taille k signifie alors peut stocker au plus k éléments 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 Salfati11 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 Salfati12 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 Salfati13 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 Salfati14 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 forte chance de ne pas être utilisé dans un futur proche.

15 Janvier 2006Algoweb - Jonathan Salfati15 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 Salfati16 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 Salfati17 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 Salfati18 Algorithmes de caching: CLOCK ACGEH C 1 B 1 A 1 D 1 E 1 F 1 HIT MISS

19 Janvier 2006Algoweb - Jonathan Salfati19 Algorithmes de caching: CLOCK ACGEH C 0 B 1 A 1 D 1 E 1 F 1 MISS

20 Janvier 2006Algoweb - Jonathan Salfati20 Algorithmes de caching: CLOCK ACGEH C 0 B 1 A 1 D 0 E 1 F 1 MISS

21 Janvier 2006Algoweb - Jonathan Salfati21 Algorithmes de caching: CLOCK ACGEH C 0 B 1 A 1 D 0 E 0 F 1 MISS

22 Janvier 2006Algoweb - Jonathan Salfati22 Algorithmes de caching: CLOCK ACGEH C 0 B 1 A 1 D 0 E 0 F 0 MISS

23 Janvier 2006Algoweb - Jonathan Salfati23 Algorithmes de caching: CLOCK ACGEH C 0 B 1 A 0 D 0 E 0 F 0 MISS

24 Janvier 2006Algoweb - Jonathan Salfati24 Algorithmes de caching: CLOCK ACGEH C 0 B 0 A 0 D 0 E 0 F 0 MISS

25 Janvier 2006Algoweb - Jonathan Salfati25 Algorithmes de caching: CLOCK ACGEH G 1 B 0 A 0 D 0 E 0 F 0 MISS

26 Janvier 2006Algoweb - Jonathan Salfati26 Algorithmes de caching: CLOCK ACGEH G 1 B 0 A 0 D 0 E 0 F 0 HIT

27 Janvier 2006Algoweb - Jonathan Salfati27 Algorithmes de caching: CLOCK ACGEH G 1 B 0 A 0 D 0 E 0 F 0 MISS

28 Janvier 2006Algoweb - Jonathan Salfati28 Algorithmes de caching: CLOCK ACGEH G 0 B 0 A 0 H 1 E 0 F 0 MISS

29 Janvier 2006Algoweb - Jonathan Salfati29 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

30 Janvier 2006Algoweb - Jonathan Salfati30 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

31 Janvier 2006Algoweb - Jonathan Salfati31 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 bon résultat 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.

32 Janvier 2006Algoweb - Jonathan Salfati32 Algorithmes de caching théoriques INFINITE: cache infini MIN: cache clairvoyant

33 Janvier 2006Algoweb - Jonathan Salfati33 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

34 Janvier 2006Algoweb - Jonathan Salfati34 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

35 Janvier 2006Algoweb - Jonathan Salfati35 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

36 Janvier 2006Algoweb - Jonathan Salfati36 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

37 Janvier 2006Algoweb - Jonathan Salfati37 MERCATOR: architecture

38 Janvier 2006Algoweb - Jonathan Salfati38 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 Caching. Si hit lien pas ajouté à la liste Caching. Si hit le lien n'est pas envoyé via le réseau

39 Janvier 2006Algoweb - Jonathan Salfati39 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). 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

40 Janvier 2006Algoweb - Jonathan Salfati40 Le crawling du WEB Le crawling du WEB donne une trace pas directement stockée sur les machines elles mêmes mais sur d'autres avec plus de capacités Après le crawling: simulation utilisant les différents algorithmes de caching

41 Janvier 2006Algoweb - Jonathan Salfati41 Résultats Résultats pris que d'une machine (les traces 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 Le cache peut comporter environ 50000 URL

42 Janvier 2006Algoweb - Jonathan Salfati42 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

43 Janvier 2006Algoweb - Jonathan Salfati43 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 que très peu. Résultats: commentaires

44 Janvier 2006Algoweb - Jonathan Salfati44 Résultats: commentaires STATIC à 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.

45 Janvier 2006Algoweb - Jonathan Salfati45 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

46 Janvier 2006Algoweb - Jonathan Salfati46 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. LRU prend trop de mémoire vu sa structure (doit garder le moment de l'accès à une page: augmente la taille des données) STATIC pas adapté 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