VERIFICAÇÃO DE UNICIDADE DE URLS EM COLETORES DE PÁGINAS WEB Wallace Favoreto Orientador: Prof. Nivio Ziviani Universidade Federal de Minas Gerais LATIN - LAboratory for Treating INformation 1 Agenda Introdução Arquitetura de um Coletor Algoritmo Proposto (VEUNI) Experimentos Definição do Problema Objetivos Trabalhos Relacionados ClueWeb09 Baseline Requisitos de Tempo e de Espaço Taxa de Coleta Conclusões e Trabalhos Futuros Contribuições LATIN - LAboratory for Treating INformation 2 Definição do Problema Algoritmo ingênuo para verificação de unicidade de URLs: LATIN - LAboratory for Treating INformation 3 Definição do Problema Considere que: Aproximadamente 1 milhão de URLs deve ser verificada em um ciclo de coleta; O disco tenha tempo de seek igual a 10 milissegundos. O algoritmo ingênuo leva pelo menos 3h para verificar a unicidade de 1 milhão de URLs. Um algoritmo mais eficaz e eficiente é necessário. LATIN - LAboratory for Treating INformation 4 Definição do Problema Eficácia: Eficiência: Dizer com certeza se uma URL já foi coletada ou não. Executar em tempo não proibitivo ao funcionamento do restante do coletor. Quais os problemas de um verificador de unicidade de URLs ineficaz e ineficiente? LATIN - LAboratory for Treating INformation 5 Definição do Problema Desperdício de espaço de armazenamento. Redução do número de páginas distintas coletadas. Desperdício de banda de internet no fetcher. Redução da expansão da coleta. Desrespeito ao politeness. LATIN - LAboratory for Treating INformation 6 Objetivos Propor um novo algoritmo chamado VEUNI (VErificador de UNIcidade de URLs). Discutir a arquitetura do coletor que o algoritmo VEUNI está inserido. Comparar o VEUNI com o melhor algoritmo da literatura. LATIN - LAboratory for Treating INformation 7 Trabalhos Relacionados Árvore-B [Pinkerton, 1994] Cache de memória [Heydon & Najork, 1999] batch disk check [Heydon & Najork 2002] LATIN - LAboratory for Treating INformation 8 Máquina de Busca - Componentes Coletor Indexador Encontra, coleta e armazena páginas da Web. Mantém um índice de páginas coletadas. Processador de Consultas Realiza buscas eficientes sobre o índice. LATIN - LAboratory for Treating INformation 9 Coletor – Componentes Fetcher Extrator de URLs Verificador de Unicidade de URLs Escalonador LATIN - LAboratory for Treating INformation 10 Arquitetura de um Coletor LATIN - LAboratory for Treating INformation 11 Fetcher LATIN - LAboratory for Treating INformation 12 Extrator de URLs LATIN - LAboratory for Treating INformation 13 Verificador de Unicidade de URLs LATIN - LAboratory for Treating INformation 14 Escalonador LATIN - LAboratory for Treating INformation 15 Algoritmo Proposto - VEUNI O algoritmo VEUNI é parte do coletor. Ciclo de coleta: LATIN - LAboratory for Treating INformation 16 VEUNI – Entrada e Saída LATIN - LAboratory for Treating INformation 17 Repositório de URLs (R) LATIN - LAboratory for Treating INformation 18 Algoritmo Proposto - VEUNI LATIN - LAboratory for Treating INformation 19 VEUNI - Exemplo de Funcionamento Escalonamento R0 R1 R2 LATIN - LAboratory for Treating INformation RN-1 20 VEUNI - Exemplo de Funcionamento Escalonamento R0 R1 R2 LATIN - LAboratory for Treating INformation RN-1 21 VEUNI - Exemplo de Funcionamento Escalonamento R0 R1 R2 LATIN - LAboratory for Treating INformation RN-1 22 VEUNI - Exemplo de Funcionamento Escalonamento R0 R1 R2 LATIN - LAboratory for Treating INformation RN-1 23 VEUNI - Entrada Lid Escalonamento R0 R1 R2 RN-1 Lid Lid: URLs coletadas no ciclo id. LATIN - LAboratory for Treating INformation 24 VEUNI - Entrada Mid Escalonamento R0 R1 R2 RN-1 Lid Mid Lid: URLs coletadas no ciclo id. Mid: Metadados das páginas coletadas no ciclo id. LATIN - LAboratory for Treating INformation 25 VEUNI - Entrada Eid URLs Extraídas hash Eid AUX1 AUX2 LATIN - LAboratory for Treating INformation AUXN-1 26 VEUNI - Entrada Eid URLs Extraídas hash Eid AUX1 AUX2 LATIN - LAboratory for Treating INformation AUXN-1 27 VEUNI - Eid e AUXi Escalonamento R0 R1 Lid AUX1 Mid Eid R2 AUX2 RN-1 AUXN-1 Lid: URLs coletadas no ciclo id. Mid: Metadados das páginas coletadas no ciclo id. Eid: URLs extraídas do ciclo id que pertencem a R0. LATIN - LAboratory for Treating INformation 28 VEUNI - AUX0 Escalonamento R0 R1 Lid AUX1 Mid Eid AUX0 R2 AUX2 RN-1 AUXN-1 Lid: URLs coletadas no ciclo id. Mid: Metadados das páginas coletadas no ciclo id. Eid: URLs extraídas do ciclo id que pertencem a R0. AUX0: URLs extraídas para o R0 em ciclos anteriores. LATIN - LAboratory for Treating INformation 29 VEUNI - Entrada Escalonamento R0 R1 Lid AUX1 Mid Eid AUX0 R2 AUX2 RN-1 AUXN-1 Lid: URLs coletadas no ciclo id. Mid: Metadados das páginas coletadas no ciclo id. Eid: URLs extraídas do ciclo id que pertencem a R0. AUX0: URLs extraídas para o R0 em ciclos anteriores. LATIN - LAboratory for Treating INformation 30 VEUNI - Saída Escalonamento R0 R1 AUX1 NovoR0 R2 AUX2 RN-1 AUXN-1 Lid: URLs coletadas no ciclo id. Mid: Metadados das páginas coletadas no ciclo id. Eid: URLs extraídas do ciclo id que pertencem a R0. AUX0: URLs extraídas para o R0 em ciclos anteriores. LATIN - LAboratory for Treating INformation 31 VEUNI - Saída Escalonamento NovoR0 R1 AUX1 R00 R R2 AUX2 RN-1 AUXN-1 Lid: URLs coletadas no ciclo id. Mid: Metadados das páginas coletadas no ciclo id. Eid: URLs extraídas do ciclo id que pertencem a R0. AUX0: URLs extraídas para o R0 em ciclos anteriores. LATIN - LAboratory for Treating INformation 32 VEUNI – Primeiro Refinamento LATIN - LAboratory for Treating INformation 33 VEUNI - Intercalação LATIN - LAboratory for Treating INformation 34 VEUNI - Intercalação LATIN - LAboratory for Treating INformation 35 VEUNI – Inserção de Novos servidores LATIN - LAboratory for Treating INformation 36 Experimentos Requisitos de tempo e espaço Tempo de atualização das estruturas de dados. Espaço requerido para armazenamento das estruturas de dados. Taxa de coleta Medir a taxa no decorrer da coleta. Número de páginas/segundo. LATIN - LAboratory for Treating INformation 37 ClueWeb09 Simulação de uma coleta utilizando as páginas da ClueWeb09. Evita a necessidade de utilização do fetcher, do extrator de URLs e do escalonador. Experimento mais controlado. Reprodução facilitada. 350 milhões de URLs foram extraídas da ClueWeb09. LATIN - LAboratory for Treating INformation 38 Coleta Simulada Conjunto de URLs da ClueWeb09: 350 milhões # de URLs em cada ciclo de coleta: 1 milhão # de URLs coletadas em cada ciclo: 100 mil # de URLs extraídas em cada ciclo: 900 mil 350 ciclos de coleta realizados. LATIN - LAboratory for Treating INformation 39 Baseline DRUM (Disk Repository with Update Management) LATIN - LAboratory for Treating INformation 40 Resultados Requisito de Tempo LATIN - LAboratory for Treating INformation 41 Resultados Requisito de Tempo LATIN - LAboratory for Treating INformation 42 Resultados Requisito de Espaço LATIN - LAboratory for Treating INformation 43 Resultados Requisito de Espaço LATIN - LAboratory for Treating INformation 44 Resultados Tempo de Coleta LATIN - LAboratory for Treating INformation 45 Resultados Tempo de Coleta LATIN - LAboratory for Treating INformation 46 Resultados Taxa de Coleta LATIN - LAboratory for Treating INformation 47 Resultados Taxa de Coleta LATIN - LAboratory for Treating INformation 48 Conclusões O algoritmo VEUNI é mais eficiente que o algoritmo baseline. O algoritmo VEUNI requer mais espaço de armazenamento que o algoritmo baseline. A taxa de coleta do coletor que utiliza o algoritmo VEUNI praticamente se mantém no decorrer da coleta. LATIN - LAboratory for Treating INformation 49 Trabalhos Futuros Comparar o algoritmo VEUNI com uma implementação do algoritmo DRUM que não utilize Berkeley DB. Estudar maneiras de simplificar a representação das URLs, sem perder a eficiência relatada. LATIN - LAboratory for Treating INformation 50 Contribuições Apresentação da arquitetura de um coletor de páginas da Web. (Capítulo 2) Algoritmo VEUNI para verificar unicidade de URLs (Capítulo 3) Discussão de propostas que levaram ao algoritmo VEUNI (Seção 3.3) Ambiente de experimentação controlado que utiliza informação da ClueWeb09 (Seção 4.2) LATIN - LAboratory for Treating INformation 51 Perguntas LATIN - LAboratory for Treating INformation 52