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

Slides:



Advertisements
Présentations similaires
Présentation du prototype :
Advertisements

Chap. 4 Recherche en Table
Probabilités et statistiques au lycée
STATISTIQUE INFERENTIELLE L ’ESTIMATION
A NETWORK-AWARE DISTRIBUTED STORAGE CACHE FOR DATA INTENSIVE ENVIRONMENTS Brian L. TIERNEY, Jason LEE, Brian CROWLEY, Mason HOLDING Computing Sciences.
Algorithmes et structures de données avancés
Efficient Simplification of Point-Sampled Surfaces
Recherche de motifs par méthodes exploratoires: Comparaisons de performances et statistiques sur le score.
Introduction à l’Algorithmique
Introduction aux réseaux informatiques
Module Systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
Introduction Pour concrétiser l’enseignement assisté par ordinateur
Collecte de données F. Kohler.
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
Notions de variable aléatoire et de probabilité d’un événement
Le remplacement moléculaire
Paramètres et pointeurs
Chap. 1 Structures séquentielles : listes linéaires
Mémoire cache ou antémémoire
Contrôle d ’Accès et Hauts Débits
ADR Active and Dynamic Routing. Plan Introduction au routage Les réseaux actifs Les agents Mise à jour des matrices de routage Architecture du routage.
Maths, Fourmis, Informatique et Petits Chevaux - 1
1 Bases de Données Distribuées Chapitre 22, Sections 22.6–22.14.
Chapitre 21 Collections Partie I Introduction Une collection : est un objet qui regroupe multiple éléments dans une unité. Une collection est.
Allocation de mémoire Allocation de mémoire.
Les fichiers indexés (Les B-arbres)
Hiérarchie de la mémoire
Systèmes Superscalaires et VLIW
Lévolution du Web et les implications dun crawler incrémental Basé sur : « The Evolution of the Web and Implications for an Incremental Crawler», Junghoo.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
1 Evaluation des Operations Relationnelles : Algorithmes Additionnels Chapitre 14, ,
Algorithmes probabilistes
Les Algorithmes de Tri Introduction Tri par Sélection
Réseau de stockage étendu
Mesure des performances WEB en introduisant un contrôle dadmission.
Développement dapplication avec base de données Semaine 10 : WCF avec Entité Framework Automne 2013.
Analyse d’algorithmes
GOL503 Spécificités sectorielles
Vue d'ensemble Surveillance des journaux d'événements
Module 3 : Choisir et utiliser les indicateurs sociaux
Introduction Les niveaux de RAID offrent un large choix d’alternatives qui permettent de choisir un rapport performance/sécurité différent. Il est aussi.
L’attaque DNS Spoofing
Programmation dynamique
David Rivreau Table de hachage David Rivreau
Module 8 : Surveillance des performances de SQL Server
Vincent VANDENBUSSCHE DEA – SIR / GR BD Mars 2002
Amélioration de la simulation stochastique
Optimisation par les algorithmes génétiques
Algorithmique et programmation (1)‏
Programmation objet La base.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Cours de Systèmes d’exploitations
Crawlers Parallèles Présentation faite par: Mélanie AMPRIMO
Les Machines RAM.
GF-11: Tri Interne Efficace et Tri Externe
Construction d'une hiérarchie mémoire faible consommation
Cours LCS N°4 Présenté par Mr: LALLALI
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
Introduction et Généralités sur l’Algorithmique
Efficient URL caching for WWW crawling Broder, Najork, Wiener (2003)
Efficient Crawling Through URL Ordering Junghoo Cho - Hector Garcia-Molina - Lawrence Page Department of Computer Science Stanford, CA Algorithmes.
Combating Web Spam with TrustRank. OSINI Aurélien.
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Architecture et technologie des ordinateurs II
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
TD N°5: Une GPAO pour l’usine Odyssée. Lancement du logiciel Logiciel « Usine Odyssée 7 » disponible dans … Entrer votre nom et un nom d’entreprise de.
Transcription de la présentation:

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

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

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

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

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…

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

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 –...

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

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

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

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

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

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

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.

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.

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:…

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

Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching: CLOCK ACGEH C 1 B 1 A 1 D 1 E 1 F 1 HIT

Janvier 2006Algoweb - Jonathan Salfati Algorithmes de caching: CLOCK ACGEH C 1 B 1 A 1 D 1 E 1 F 1 HIT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

Janvier 2006Algoweb - Jonathan Salfati MERCATOR: architecture

Janvier 2006Algoweb - Jonathan Salfati MERCATOR Liste des URL à télécharger

Janvier 2006Algoweb - Jonathan Salfati MERCATOR Liste des URL à télécharger Download

Janvier 2006Algoweb - Jonathan Salfati MERCATOR Liste des URL à télécharger Download Rewind Input Stream: buffer

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

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

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

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

Janvier 2006Algoweb - Jonathan Salfati MERCATOR Caching. Si hit lien pas ajouté à la liste

Janvier 2006Algoweb - Jonathan Salfati MERCATOR Caching. Si hit le lien n'est pas envoyé via le réseau

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 milliards de tentatives de téléchargement 784 millions succès 429 millions pages HTML milliards de liens collectés Moyenne de 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

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

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

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

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

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.

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

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