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

Slides:



Advertisements
Présentations similaires
Chap. 4 Recherche en Table
Advertisements

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
Recherche de motifs par méthodes exploratoires: Comparaisons de performances et statistiques sur le score.
Introduction à l’Algorithmique
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.
Notions de variable aléatoire et de probabilité d’un événement
Promotion Ranking. Défault des Méthodes de ranking Les pages nouvellement créées ne sont pas tout de suite référencées pas les méthodes de ranking traditionnelles.
UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D’ORAN
Structures de données linéaires
Restriction daccès aux logiciels et aux matériels Problème de licence Nicolas CHABANOLES Matière : SRR Lieu: UFRIMA.
Démarche de résolution de problèmes
ADR Active and Dynamic Routing. Plan Introduction au routage Les réseaux actifs Les agents Mise à jour des matrices de routage Architecture du routage.
Groupe 1: Classes de même intervalle
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)
Mesurer l’efficacité des algorithmes
Hiérarchie de la mémoire
Systèmes Superscalaires et VLIW
Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Et maintenant, où allons-nous? Après toutes les techniques vues jusquici: Que peut-on faire.
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.
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Universté de la Manouba
Recherche Opérationnelle
Algorithmes probabilistes
Le fonctionnement du cache Diverses manières de présenter En 5 Versions François Daniel Giezendanner, SEM (Service Ecoles et Medias) - DIP - Genève, 5.
Les Algorithmes de Tri Introduction Tri par Sélection
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.
Module 8 : Surveillance des performances de SQL Server
Efficient URL caching for WWW crawling Broder, Najork, Wiener (2003)
Cours de Systèmes d’exploitations
Crawlers Parallèles Présentation faite par: Mélanie AMPRIMO
Les Machines RAM.
Les processus métiers : concepts, modèles et systèmes Claude Godart Université de lorraine. Esstin
GF-11: Tri Interne Efficace et Tri Externe
Exploration systématique de graphes
Analyse spectrale Raphaël ARROUAS Etienne OUSS
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
L'unité centrale est composé en générale de :
COMPARAISON ENTRE GNUTELLA ET FREENET
Recherche de motifs par projections aléatoires
Thème: statistiques et probabilités Séquence 6: Probabilités (Partie 1) Capacités : Déterminer la probabilité d’événements dans des situations d’équiprobabilité.
Efficient Crawling Through URL Ordering Junghoo Cho - Hector Garcia-Molina - Lawrence Page Department of Computer Science Stanford, CA Algorithmes.
Architecture et technologie des ordinateurs II
Intégration des Tableaux Multidimensionnels en Pig pour
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Post-optimisation, analyse de sensibilité et paramétrage
Création et Optimisation de Modules Audio avec les instructions SSE
8PRO107 Éléments de programmation Les tableaux. Étude de cas 1 Description du problème : Lire une liste d’entiers et l’afficher d’abord dans le même ordre.
Architecture et technologie des ordinateurs II
Structures de données IFT-2000
TD N°5: Une GPAO pour l’usine Odyssée
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.
Algorithmique Boucles et Itérations
Spécialistes de l’optimisation des processus d’affaires L’équilibre en mouvement Tous droits réservés © ProMainTech 2003 Deuxième S.
BABAR Georges Vasseur CEA Saclay, DSM/IRFU/SPP Workshop sur l’analyse des données au centre de calcul de Lyon 17 avril 2008.
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 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

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

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

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

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

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

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

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

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

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

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

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.

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

Janvier 2006Algoweb - Jonathan Salfati37 MERCATOR: architecture

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

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

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 URL

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

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

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.

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

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