Università degli Studi di Padova Facoltà di Scienze MM.FF.NN. Corso di Laurea Specialistica in Informatica Seminario per il corso di Sistemi Informativi.

Slides:



Advertisements
Presentazioni simili
Meccanismi di IPC Problemi classici di IPC
Advertisements

IlTrovatore S.p.a. IlTrovatore RemoteSearch IlTrovatore mette a disposizione di portali Internet, piccole e medie imprese, tutto il suo know-how nel settore.
Corso di Fondamenti di Informatica
1 Introduzione ai calcolatori Parte II Software di base.
I Files Definizione Operazioni File e periferiche Moduli di S.O.
Modulo 1 – Ambiente di lavoro Windows 7
DBMS (DataBase Management System)
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità B1 Introduzione alle basi di dati.
PHP.
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
Una Introduzione alle Basi di Dati
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
1 Processi e Thread Meccanismi di IPC (1). 2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per.
UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Progetto e sviluppo di.
Lez. 131 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Rappresentazione.
RETI INFORMATICHE.
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Interfaccia del file system
File.
Architettura del World Wide Web
Struttura dei sistemi operativi (panoramica)
Crawling Saverio Caminiti.
Concetti di base IR spiegati con l'esempio di Google.
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
4 Cosa è una rete? ã Punto di vista logico: sistema di dati ed utenti distribuito ã Punto di vista fisico: insieme di hardware, collegamenti, e protocolli.
Daniel Stoilov Tesi di Laurea
Corso di PHP.
DBMS ( Database Management System)
Progetto Di Uninfrastruttura Che Permetta La Modifica Di Dati Condivisi Distribuiti Su Più Nodi Reti di calcolatori L-S Gozzi Daniele
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
Distributed File System Service Dario Agostinone.
Corso di Informatica per Giurisprudenza Lezione 7
Norman SecureTide Soluzione sul cloud potente per bloccare le spam e le minacce prima che entrino all'interno della rete.
Modulo 7 – reti informatiche u.d. 1 (syllabus – )
DAGLI ARCHIVI AI DATABASE
U N INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING Matteo Corvaro Matricola Corso di Reti di Calcolatori LS – Prof. A. Corradi A.A.
ACCESS Introduzione Una delle necessità più importanti in informatica è la gestione di grandi quantità di dati. I dati possono essere memorizzati.
Server Web in una rete Windows Sommario Meccanismi di accesso remoto Meccanismi di accesso remoto Introduzione ai Server Web Introduzione ai Server.
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
1 w w w. g a t 4. c o m WI GAT WebIngelligence rappresenta una piattaforma funzionale e tecnologica per la creazione e gestione di un datawarehouse che.
HTML Lezione 8 I collegamenti ipertestuali (link).
Configurazione in ambiente Windows Ing. A. Stile – Ing. L. Marchesano – 1/23.
1 Ripassino Reti di Computer Carasco 19/02/ Che cosa è una rete informatica? Una rete informatica è un insieme di computer connessi tra di loro.
File system distribuito transazionale con replicazione
Amministrazione della rete: web server Apache
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
Threads.
Internet: una panoramica
Definizione di un algoritmo
ITCG “V. De Franchis” - PON FSE Modulo G/1 l’informatica”
I processi.
Nemesi Creazione e pubblicazione di una rivista online tramite l’utilizzo di Java Message Service.
MOTORI DI RICERCA. Un motore di ricerca è un sistema automatico che analizza un insieme di dati spesso da esso stesso raccolti e restituisce un indice.
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
InternetInternet Sede: Salvo D’acquisto 2010/2011 Docente: Vito Monno.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Basi di dati distribuite Prof. M.T. PAZIENZA a.a
Studio di una soluzione distribuita per la gestione di un centro sondaggi.
Reti di calcolatori Modulo 2 -Protocolli di rete TCP/IP Unità didattica 2 – Il protocollo TCP/IP Ernesto Damiani Università degli Studi di Milano - SSRI.
Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi.
INTRODUZIONE A INTERNET
Servizi Internet Claudia Raibulet
Reti di Calcolatori LS - Fabio Poli 15 Giugno 2006 Sviluppo di un player di Campo Minato multigiocatore con supporto di Chat MultiCast.
SnippetSearch Database di snippet bilanciato e replicato di Gianluigi Salvi Reti di calcolatori LS – Prof. A.Corradi.
Tecnologie lato Server: i Server Web © 2005 Stefano Clemente I lucidi sono in parte realizzati con materiale tratto dal libro di testo adottato tradotto.
Eprogram SIA V anno.
Le basi di dati.
I NTERNET Rete interconnessa che permette il collegamento tra due host eterogenei, appartenenti a reti differenti separati anche da grande distanze. Internet.
+ Connettersi al web Nicolò Sordoni. + Verificare se lo smartphone è connesso Per poter accedere alla rete, è consigliato innanzitutto verificare se il.
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
Transcript della presentazione:

Università degli Studi di Padova Facoltà di Scienze MM.FF.NN. Corso di Laurea Specialistica in Informatica Seminario per il corso di Sistemi Informativi Studente: Daniele Brognara Anno Accademico: 2006/2007

Riferimenti Bibliografici Libri Libri Soumen Chakrabarti, Morgan Kaufmann – Mining the Web – San Francisco, US, Disponibile alla Biblioteca di Statistica. Soumen Chakrabarti, Morgan Kaufmann – Mining the Web – San Francisco, US, Disponibile alla Biblioteca di Statistica. Articoli e pagine Web Articoli e pagine Web h-reports/abstracts/src-rr-173.html h-reports/abstracts/src-rr-173.html h-reports/abstracts/src-rr-173.html h-reports/abstracts/src-rr-173.html

Introduzione Il seminario si propone di introdurre i concetti fondamentali relativi alla raccolta automatica di documenti nel web (crawling). Il seminario si propone di introdurre i concetti fondamentali relativi alla raccolta automatica di documenti nel web (crawling). Si vedranno gli approcci di base che alcuni software (chiamati crawler o spider) utilizzano per analizzare ed estrarre automaticamente documenti testuali e ipertestuali e i vari collegamenti (hyperlinks) tra essi. Si vedranno gli approcci di base che alcuni software (chiamati crawler o spider) utilizzano per analizzare ed estrarre automaticamente documenti testuali e ipertestuali e i vari collegamenti (hyperlinks) tra essi. I sistemi di crawling differiscono tra loro in base a: I sistemi di crawling differiscono tra loro in base a: Dimensione Dimensione Small-Scale Crawler Small-Scale Crawler Large-Scale Crawler Large-Scale Crawler Tipo e numero delle pagine recuperate Tipo e numero delle pagine recuperate Extensive Crawling Extensive Crawling Focused Crawling Focused Crawling Incremental Crawling Incremental Crawling

Funzionamento Un crawler, dopo aver raccolto delle pagine, le elabora e grazie agli hyperlink in esse contenuti cerca di raggiungere altre nuove pagine. Un crawler, dopo aver raccolto delle pagine, le elabora e grazie agli hyperlink in esse contenuti cerca di raggiungere altre nuove pagine. Si parte da un dato insieme di URLs; Si parte da un dato insieme di URLs; Progressivamente questi vengono visti e valutati alla ricerca di nuovi URLs (detti outlinks); Progressivamente questi vengono visti e valutati alla ricerca di nuovi URLs (detti outlinks); I nuovi URLs trovati vengono aggiunti alla collezione e il processo viene ripetuto. I nuovi URLs trovati vengono aggiunti alla collezione e il processo viene ripetuto. La collezione aumenta molto velocemente, la nuove informazioni vengono memorizzate su disco, non cè garanzia che tutte le pagine della base documentale vengano recuperate. La collezione aumenta molto velocemente, la nuove informazioni vengono memorizzate su disco, non cè garanzia che tutte le pagine della base documentale vengano recuperate. Un crawler ha, fra gli obbiettivi, quello di massimizzare il numero di pagine ritrovate per unità di tempo. Un crawler ha, fra gli obbiettivi, quello di massimizzare il numero di pagine ritrovate per unità di tempo.

Pseudo-Codice di un Crawler Algoritmo: URL = {seme iniziale} ; While ( URL Ø ) { url select(URL); if (url.isValid) continue; page crawl(url); store(page); S parse(page); // si estraggono i link URL URL + S; }

Large-Scale Crawler Il recupero di una pagina può richiedere diversi secondi, e quindi bisogna cercare dei metodi per utilizzare al meglio la banda disponibile della rete. Il recupero di una pagina può richiedere diversi secondi, e quindi bisogna cercare dei metodi per utilizzare al meglio la banda disponibile della rete. Questo recupero multiplo è possibile solo se lattività del DNS è fortemente concorrente e possibilmente suddivisa fra più server DNS. Questo recupero multiplo è possibile solo se lattività del DNS è fortemente concorrente e possibilmente suddivisa fra più server DNS. La concorrenza realizzata dal S.O. non è quella ottimale: meglio specificare esplicitamente lo stato di un processo di recupero in unapposita struttura dati ed usare dei sockets asincroni che permettano di completare il job il prima possibile. La concorrenza realizzata dal S.O. non è quella ottimale: meglio specificare esplicitamente lo stato di un processo di recupero in unapposita struttura dati ed usare dei sockets asincroni che permettano di completare il job il prima possibile. E importante che il crawler sia preciso e che eviti di ritrovare pagine duplicate o spider traps, le quali sono mappe di falsi URLs create da utenti maligni che intrappolano il crawler in cicli potenzialmente infiniti. E importante che il crawler sia preciso e che eviti di ritrovare pagine duplicate o spider traps, le quali sono mappe di falsi URLs create da utenti maligni che intrappolano il crawler in cicli potenzialmente infiniti.

Struttura di un Large-Scale Crawler

DNS Caching, Prefetching and Resolution Laddress resolution è un collo di bottiglia significante che ha bisogno di essere svolto in concomitanza con altre attività per mantenere un throughput accettabile. Laddress resolution è un collo di bottiglia significante che ha bisogno di essere svolto in concomitanza con altre attività per mantenere un throughput accettabile. Per minimizzare questo problema e per poter sfruttare i tempi morti, i Large-Scale Crawler includono un apposito DNS personalizzato per poter migliorare le performance. Per minimizzare questo problema e per poter sfruttare i tempi morti, i Large-Scale Crawler includono un apposito DNS personalizzato per poter migliorare le performance. Questi DNS personalizzati solitamente includono: Questi DNS personalizzati solitamente includono: Client personalizzato dedicato alladdress resolution; Client personalizzato dedicato alladdress resolution; Caching Server; Caching Server; Prefetching Client. Prefetching Client. Il Prefetching Client, una volta recuperati gli HREF, provvede a trovare gli hostname e avviare una richiesta di resolution per gli URLs estratti. Il Prefetching Client, una volta recuperati gli HREF, provvede a trovare gli hostname e avviare una richiesta di resolution per gli URLs estratti.

Multiple Concurrent Fetches (1/2) Un crawler recupera centinaia di pagine al secondo e, visto che il download di una singola pagina può impiegare diversi secondi, i crawler necessitano di aprire più connessioni simultanee con più server. Un crawler recupera centinaia di pagine al secondo e, visto che il download di una singola pagina può impiegare diversi secondi, i crawler necessitano di aprire più connessioni simultanee con più server. I due principali approcci per gestire connessioni multiple e concorrenti sono: I due principali approcci per gestire connessioni multiple e concorrenti sono: Multithreading; Multithreading; Nonblocking Sockets and Events Handlers. Nonblocking Sockets and Events Handlers. Nel Multithreading, dopo la name resolution, ogni thread logico crea un client socket, si connette al server tramite http, invia una richiesta sempre http e rimane in ascolto sul socket (grazie al comando recv) fino a quando ci sono caratteri disponibili. Nel Multithreading, dopo la name resolution, ogni thread logico crea un client socket, si connette al server tramite http, invia una richiesta sempre http e rimane in ascolto sul socket (grazie al comando recv) fino a quando ci sono caratteri disponibili. In questo approccio si utilizzano delle Blocking System Calls. In questo approccio si utilizzano delle Blocking System Calls.

Multiple Concurrent Fetches (2/2) Usando i nonblocking socket, ogni chiamata di tipo connect, send, recv, ecc. ritorna immediatamente senza attendere che tutte le operazioni di rete siano completate. Usando i nonblocking socket, ogni chiamata di tipo connect, send, recv, ecc. ritorna immediatamente senza attendere che tutte le operazioni di rete siano completate. Viene permessa la Select system call, che permette di sospendere e mettere in attesa unapplicazione facendola aspettare fino a quando i dati non sono stati inviati/ricevuti dal socket. Viene permessa la Select system call, che permette di sospendere e mettere in attesa unapplicazione facendola aspettare fino a quando i dati non sono stati inviati/ricevuti dal socket. Ogni socket attivo può essere associato ad una struttura dati che mantiene lo stato dei thread che stanno aspettando la terminazione di unoperazione su quel socket. Ogni socket attivo può essere associato ad una struttura dati che mantiene lo stato dei thread che stanno aspettando la terminazione di unoperazione su quel socket. Select è importante perché è un modo di ottenere sincronizzazione e mutua esclusione senza utilizzare semafori o locks (in particolare permette la scrittura senza interruzioni anche su blocchi contigui). Select è importante perché è un modo di ottenere sincronizzazione e mutua esclusione senza utilizzare semafori o locks (in particolare permette la scrittura senza interruzioni anche su blocchi contigui).

Link Extraction and Normalization Una volta estratti gli URLs, prima di inserirli nel work pool, questi devono essere standardizzati e filtrati. Una volta estratti gli URLs, prima di inserirli nel work pool, questi devono essere standardizzati e filtrati. Il recupero di duplicati non è però inevitabile, in quanto la mappa fra hostname e indirizzi IP è di tipo molti-a-molti. Il recupero di duplicati non è però inevitabile, in quanto la mappa fra hostname e indirizzi IP è di tipo molti-a-molti. La forma di standardizzazione maggiormente utilizzata è laCanonizzazione La forma di standardizzazione maggiormente utilizzata è laCanonizzazione Un URL canonico si forma seguendo i seguenti passi: Un URL canonico si forma seguendo i seguenti passi: 1.Si scrive lurl come una classica stringa che rispetta dei criteri standard; 2.Lhostname viene canonizzato; 3.Se necessario, alla fine gli si aggiunge il numero di porta esplicito; 4.Il path viene normalizzato e pulito.

Robot Exclusion Una condizione che il crawler deve verificare è se il server non da accesso a determinati URLs usando il meccanismo del robots. Una condizione che il crawler deve verificare è se il server non da accesso a determinati URLs usando il meccanismo del robots. robots.txt è un file in cui sono specificati una lista di cammini delle pagine che il crawler non dovrebbe tentare di recuperare. robots.txt è un file in cui sono specificati una lista di cammini delle pagine che il crawler non dovrebbe tentare di recuperare. Il file robots.txt si applica solo ed esclusivamente ai crawler, non anche ai browser. Il file robots.txt si applica solo ed esclusivamente ai crawler, non anche ai browser. In robots.txt si possono inoltre dichiarare (a discrezione del web- administrator) delle stime di frequenza di modifica delle pagine. In robots.txt si possono inoltre dichiarare (a discrezione del web- administrator) delle stime di frequenza di modifica delle pagine. # exclude some access-controlled areas User-agent: * Disallow: /Team Disallow: /Project Disallow: / Systems

Eliminating Already-Visited URLs Attraverso il modulo isUrlVisited? riusciamo a controllare se un nuovo url è già presente allinterno del work pool. Attraverso il modulo isUrlVisited? riusciamo a controllare se un nuovo url è già presente allinterno del work pool. isUrlVisited? deve lavorare molto velocemente e solitamente opera nel seguente modo: isUrlVisited? deve lavorare molto velocemente e solitamente opera nel seguente modo: 1.Calcola una funzione hash sullurl come MD5 1.Calcola una funzione hash sullurl come MD5; 2.Gli urls così normalizzati vengono memorizzati in un db in memoria secondaria. Problema: usando delle funzioni hash, perdiamo informazioni sulla località. Problema: usando delle funzioni hash, perdiamo informazioni sulla località.

Spider-Traps Queste trappole esistono per principalmente due motivi: Queste trappole esistono per principalmente due motivi: 1.Tentativi di migliorare la propria posizione nei motori di ricerca 1.Tentativi di migliorare la propria posizione nei motori di ricerca; 2.Errori di programmazione nelle pagine che generano loop tramite link dinamici a se stesse. Per risolvere questo problema, uno scanning lessicale o i tool di parsing sono altamente inefficienti. Per risolvere questo problema, uno scanning lessicale o i tool di parsing sono altamente inefficienti. Alcune possibili soluzioni potrebbero essere: Alcune possibili soluzioni potrebbero essere: Imporre un numero max di pagine recuperabili per host; Imporre un numero max di pagine recuperabili per host; Controllare la lunghezza dellurl; Controllare la lunghezza dellurl; Preparare statistiche sulle esperienze passate di crawling. Preparare statistiche sulle esperienze passate di crawling. Esempio di trappola: actory/flyfactory/flyfactory/flyfactory/flyfactory/flyfactory/hatchline/hatchline/flyfactory/flyfactory/hatchline/ actory/flyfactory/flyfactory/flyfactory/flyfactory/flyfactory/hatchline/hatchline/flyfactory/flyfactory/hatchline/

Avoiding Repeated Expansion of Links on Duplicate Pages Un buon crawler dovrebbe evitare di memorizzare pagine (ad es. u1 e u2) uguali anche se hanno nomi diversi. Questo per i seguenti motivi: Un buon crawler dovrebbe evitare di memorizzare pagine (ad es. u1 e u2) uguali anche se hanno nomi diversi. Questo per i seguenti motivi: 1.Ridurre la ridondanza nella memorizzazione e il costo per processarle 1.Ridurre la ridondanza nella memorizzazione e il costo per processarle; 2.Per non aggiungere un outlink (ad es. v) più volte nel work pool. Possiamo capire se u1 e u2 sono esatti duplicati procedendo in uno dei seguenti modi: Possiamo capire se u1 e u2 sono esatti duplicati procedendo in uno dei seguenti modi: Confrontiamo i digest di una nuova pagina recuperata con quelli già memorizzati delle altre pagine; Confrontiamo i digest di una nuova pagina recuperata con quelli già memorizzati delle altre pagine; Rappresentare gli outlink con delle tuple (h(u1),v) e (h(u2),v) e confrontare tra loro tali valori. Rappresentare gli outlink con delle tuple (h(u1),v) e (h(u2),v) e confrontare tra loro tali valori. Problema: anche piccolissime differenze causano la diversità di una pagina rispetto ad unaltra. Problema: anche piccolissime differenze causano la diversità di una pagina rispetto ad unaltra.

Load Monitor and Manager La funzione del Load Monitor è quella di tenere sotto controllo alcuni parametri e statistiche inerenti la rete. In particolare: La funzione del Load Monitor è quella di tenere sotto controllo alcuni parametri e statistiche inerenti la rete. In particolare: 1.Performance della connessione alla WAN, con le stime di latenza e di bandwidth 1.Performance della connessione alla WAN, con le stime di latenza e di bandwidth; 2.Numero massimo di socket aperti che il crawler non deve eccedere; 3.Numero massimo di socket che possono essere contemporaneamente attivi. Il Load Manager usa tali statistiche per compiere determinate azioni come: Il Load Manager usa tali statistiche per compiere determinate azioni come: 1.Scelta di quale url si deve estrarre ed elaborare dal work pool 1.Scelta di quale url si deve estrarre ed elaborare dal work pool; 2.Organizzare le risorse di rete; 3.Se necessario, distribuire le richieste su più ISP.

Pre-Server Work-Queues I principali server commerciali devono studiare dei meccanismi per difendersi da attacchi di tipo Denial of Service (DoS). I principali server commerciali devono studiare dei meccanismi per difendersi da attacchi di tipo Denial of Service (DoS). Ci si può difendere ad es. limitando il numero di richieste provenienti da uno stesso indirizzo IP o penalizzando le risposte a richieste provenienti dallo stesso indirizzo IP. Ci si può difendere ad es. limitando il numero di richieste provenienti da uno stesso indirizzo IP o penalizzando le risposte a richieste provenienti dallo stesso indirizzo IP. E fondamentale che un crawler non venga scambiato per un attacco di tipo DoS! E fondamentale che un crawler non venga scambiato per un attacco di tipo DoS! Per non fare troppe richieste contemporanee ad uno stesso server, un crawler utilizza una coda FIFO di richieste per ogni server con cui è connesso: tale coda viene svuotata secondo precisi intervalli temporali. Per non fare troppe richieste contemporanee ad uno stesso server, un crawler utilizza una coda FIFO di richieste per ogni server con cui è connesso: tale coda viene svuotata secondo precisi intervalli temporali. Le scelte sulle tempistiche inerenti le code o sui balzi da compiere tra server e server sono decise a livello progettuale del crawler. Le scelte sulle tempistiche inerenti le code o sui balzi da compiere tra server e server sono decise a livello progettuale del crawler.

Text Repository (1/2) Le pagine raccolte dal crawler vengono solitamente memorizzare in un DB, dal quale poi diversi servizi e sistemi accedono per svolgere esternamente le loro attività. Le pagine raccolte dal crawler vengono solitamente memorizzare in un DB, dal quale poi diversi servizi e sistemi accedono per svolgere esternamente le loro attività. Alcune di queste funzioni vengono iniziate allinterno del crawler stesso, senza quindi la necessità di memorizzare le pagine. Alcune di queste funzioni vengono iniziate allinterno del crawler stesso, senza quindi la necessità di memorizzare le pagine. Le informazioni relative alle pagine vengono memorizzate in due parti: Metadata e Page Content. Le informazioni relative alle pagine vengono memorizzate in due parti: Metadata e Page Content. Metadata: sono solitamente manipolati da software appositi e memorizzati in DB relazionali, i quali spesso pagano un overhead per supportare update concorrenti e operazioni di recovery. I Metadata non hanno bisogno di essere indicizzati. Metadata: sono solitamente manipolati da software appositi e memorizzati in DB relazionali, i quali spesso pagano un overhead per supportare update concorrenti e operazioni di recovery. I Metadata non hanno bisogno di essere indicizzati. Page Content: esprime lapporto informativo della pagina. I contenuti delle pagine HTML vengono solitamente memorizzati compressi (si utilizza spesso lalgoritmo di compressione zlib). Page Content: esprime lapporto informativo della pagina. I contenuti delle pagine HTML vengono solitamente memorizzati compressi (si utilizza spesso lalgoritmo di compressione zlib).

Text Repository (2/2) La memorizzazione delle pagine è regolata da un Custom Storage Manager che permette modalità di accesso semplificate in modo che il crawler possa facilmente aggiungere pagine e che i programmi che operano sul repository riescano facilmente ad estrarre i documenti. La memorizzazione delle pagine è regolata da un Custom Storage Manager che permette modalità di accesso semplificate in modo che il crawler possa facilmente aggiungere pagine e che i programmi che operano sul repository riescano facilmente ad estrarre i documenti. Tale DB può essere configurato principalmente in due modi: Tale DB può essere configurato principalmente in due modi: Tavola Hash o B-Albero: permette accesso tramite chiave ma dispendioso in termini di tempo e di spazio; Tavola Hash o B-Albero: permette accesso tramite chiave ma dispendioso in termini di tempo e di spazio; Lista sequenziale di record delle pagine: ha le caratteristiche duali del B-Albero. Lista sequenziale di record delle pagine: ha le caratteristiche duali del B-Albero. Per sistemi di grandi dimensioni, il repository può essere distribuito su più server di memorizzazione collegati al crawler tramite rete locale. Per sistemi di grandi dimensioni, il repository può essere distribuito su più server di memorizzazione collegati al crawler tramite rete locale. In pratica, il crawler calcolerà lhash per ogni URL e lo invierà assieme ai Page Content ad un server di memorizzazione, il quale farà lappend sul proprio repository che solitamente è costituito da nastri. In pratica, il crawler calcolerà lhash per ogni URL e lo invierà assieme ai Page Content ad un server di memorizzazione, il quale farà lappend sul proprio repository che solitamente è costituito da nastri.

Refreshing Crawled Pages Un motore di ricerca deve ovviamente fare periodici cicli di refresh, ed ovviamente tale azione dovrebbe riflettersi a tutti i documenti già ritrovati dal crawler. Un motore di ricerca deve ovviamente fare periodici cicli di refresh, ed ovviamente tale azione dovrebbe riflettersi a tutti i documenti già ritrovati dal crawler. Per compiere tali aggiornamenti, un crawler fa in modo di non terminare mai i propri job ma di fermarsi fino a quando non sono state raccolte un numero sufficiente di informazioni/pagine. Per compiere tali aggiornamenti, un crawler fa in modo di non terminare mai i propri job ma di fermarsi fino a quando non sono state raccolte un numero sufficiente di informazioni/pagine. Poi, grazie allutilizzo di Fresh Crawl, si interrogano i server per scoprire se sono state aggiornate alcune pagine. Poi, grazie allutilizzo di Fresh Crawl, si interrogano i server per scoprire se sono state aggiornate alcune pagine. Quando non si possono utilizzare delle stime per determinare se alcune pagine sono state modificate, o si rivisita la pagina o ci si avvale di stime di probabilità sulle modifiche per produrre un rank di fresh da fare. Quando non si possono utilizzare delle stime per determinare se alcune pagine sono state modificate, o si rivisita la pagina o ci si avvale di stime di probabilità sulle modifiche per produrre un rank di fresh da fare. I motori di ricerca importanti spesso attivano dei sotto-cicli di refresh indipendenti per i siti di più rapida modifica. I motori di ricerca importanti spesso attivano dei sotto-cicli di refresh indipendenti per i siti di più rapida modifica.