27th BRAZILIAN SYMPOSIUM ON DATABASES - DATA Group
Transcrição
27th BRAZILIAN SYMPOSIUM ON DATABASES - DATA Group
27th BRAZILIAN SYMPOSIUM ON DATABASES Thesis and Dissertation Workshop (WTDBD) PROCEEDINGS October 15th-18th, 2012 São Paulo, São Paulo, Brazil Promotion Brazilian Computer Society - SBC SBC Special Interest Group on Databases Organization Universidade de São Paulo - USP Realization Instituto de Matemática e Estatística - USP Thesis and Dissertation Workshop Chairs Fabio Porto (LNCC) Ana Maria de C. Moura (LNCC) Editorial The Workshop of Thesis and Master Dissertations in databases is a traditional event co-located with the Brazilian Symposium on Databases. In the 2012 edition, the event takes place in São Paulo gathering professors and graduate students around the most recent and high quality database research being conducted by graduate students from different Universities in Brazil. The WTDBD is an excellent opportunity to receive feedback on graduate on-going work from experienced researchers. All submitted papers received, at least, three reviews. Additionally, During the Workshop, students of selected papers have the opportunity to present their work to 2 senior researchers and to receive technical comments, as much as experimenting the challenge of presenting to an external committee. The number of quality submissions this year exceeded the Workshop presentation slots. Thus, unfortunately not all submissions could be selected for presentation. A total of 4 PhD and 11 Master works were finally invited for submitting a final version of their papers and allotted a presentation slot during the Workshop. Considering regional statistics, selected PhD works come from Rio Grande do Sul(1), Parana(1), São Paulo(1), and Pernambuco(1). Selected Master works come from Rio Grande do Sul (2), São Paulo(3), Rio de Janeiro (1), Minas Gerais (1), Ceará (3), Pernambuco (1). The 2012 WTDBD Workshop chairs would like to thank the students and advisors that submitted their work to the workshop. Similarly, we are very grateful to the reviewers and the group of researchers that will take part in the jury during the workshop. Finally, the WTDBD coordinators would like to thank the SBBD 2012 organization for the support and excellent collaboration in preparing this edition of the event. We wish the community an excellent workshop and success in their works, Fabio Porto (LNCC) Ana Maria de C. Moura (LNCC) SBBD 2012, Thesis and Dissertation Workshop (WTDBD) Chairs ii 27th BRAZILIAN SYMPOSIUM ON DATABASES October 15th – 18th, 2012 São Paulo, São Paulo, Brazil Promotion Brazilian Computer Society - SBC SBC Special Interest Group on Databases Organization Universidade de São Paulo - USP Realization Instituto de Matemática e Estatística - USP SBBD Steering Committee José Palazzo Moreira de Oliveira (UFRGS) – Chair Angelo Brayner (UNIFOR) Alberto Laender (UFMG) Cláudia Bauzer Medeiros (UNICAMP) Cristina Dutra de Aguiar Ciferri (ICMC-USP) Marco A. Casanova (PUC-Rio) SBBD 2012 Committee Steering Committee Chair José Palazzo Moreira de Oliveira (UFRGS) Local Organization Chair João Eduardo Ferreira (IME-USP) Program Committee Chair Marco A. Casanova (PUC-Rio) Short Papers Chair Renata Galante (UFRGS) Demos and Applications Chairs José Maria da Silva Monteiro Filho (UFC) Javam de Castro Machado (UFC) Thesis and Dissertation Workshop Chairs Fabio Porto (LNCC) Ana Maria de C. Moura (LNCC) Tutorials Chair Cristina Dutra de Aguiar Ciferri (ICMC-USP) Lectures Chair Marcio K. Oikawa (UFABC) Local Organization Committee João Eduardo Ferreira (IME-USP) – Chair Isabel Italiano (EACH-USP) Kelly R. Braghetto (UFABC) Luciano V. Araújo (EACH-USP) Marcio K. Oikawa (UFABC) iii WTDBD 2012 Program Committee Agma Traina (USP) Altigran da Slva (UFAM) Ana Maria de C. Moura (LNCC) Carmem Hara (UFPR) Cristina Dutra de Aguiar Ciferri (USP-São Carlos) Fabio Porto (LNCC) Fernanda Baião (UNIRIO) Karin Becker (UFRGS) Maria Cláudia Cavalcanti (IME-RJ) Maria Luiza Machado Campos (UFRJ) Marta Mattoso (COPPE-URFJ) Mirella Moro (UFMG) Renata Galante (UFRGS) Vanessa Braganholo (UFF) Vania Vidal (UFC) WTDBD 2012 Jury Altigran Silva (UFAM) Ana Maria de C. Moura (LNCC) Bernadette Farias Loscio (UFPE) Carmem Satie Hara (UFPR) Eduardo Ogasawara (CEFET/RJ) Javam de Castro Machado (UFC) João Eduardo Ferreira (IME-USP) José Antônio F. de Macêdo (UFC) Jonice Oliveira (UFRJ) Karin Becker (UFRGS) Mirella M. Moro (UFMG) Renata Galante (UFRGS) Sergio Lifschitz (PUC-Rio) Vanessa Braganholo (UFF) Vania Vidal (UFC) iv 27th BRAZILIAN SYMPOSIUM ON DATABASES Thesis and Dissertation Workshop (WTDBD) Table of Contents Junções Adaptativas em Consultas Federadas sobre Linked Data ..................................................1 Macedo S. Maia, Vânia Maria P. Vidal, José Maria da S. M. Filho, Regis P. Magalhães SCM Join - Um Algoritmo de Junção para Memória SCM.............................................................7 Júlio Alcântara Tavares, José de Aguiar Moraes Filho, Angelo Brayner Processamento de consultas XQuery usando Prolog .....................................................................13 Rafael de Araújo M. Pinheiro, Vanessa Braganholo Semantic-based Query Routing for PDMS ....................................................................................19 Crishane Freire, Damires Souza, Ana Carolina Salgado Reescrita de Consultas em Federações de Dados Interligados usando uma Abordagem pay-asyou-go para a Descoberta de Correspondências ............................................................................27 Danusa Ribeiro B. da Cunha, Bernadette Farias Lóscio Towards Full-fledged XML Fragmentation for Transactional Distributed Databases ..................33 Rebeca Schroeder, Carmem S. Hara FS-Dedup - A Framework for Signature-based Deduplication in large datasets...........................41 Guilherme Dal Bianco, Renata Galante, Carlos A. Heuser Método de Balanceamento de Múltiplos Descritores Usando Condições de Contorno para Pesquisas por Similaridade ............................................................................................................49 Rodrigo Fernandes Barroso, Renato Bueno An Approach for Service Usage Profiles Discovery .....................................................................55 Bruno Vollino, Karin Becker Methodological Guidelines and Adaptive Statistical Data Validation to Build Effective Data Warehouses ....................................................................................................................................61 Pedro L. Takecian, João E. Ferreira v Uma abordagem utilizando Business Intelligence para apoiar o processo de tomada de decisão na gestão da evolução de serviços web...............................................................................................69 Ernando Silva, Renata Galante, Karin Becker Algoritmos de bulk-loading para o método de acesso métrico Onion-tree ...................................75 Arthur Emanuel de Oliveira Carosia, Cristina Dutra de Aguiar Ciferri Indexação e Recuperação Multimodal de Vídeo ...........................................................................81 Ricardo Carlini Sperandio, Zenilton Kleber Gonçalves do Patrocínio Jr., Hugo Bastos de Paula Indexação de Dados Biológicos baseado em Vetores de Sufixo Generalizados para Disco .........87 Felipe Alves da Louza, Cristina Dutra de Aguiar Ciferri BenchXtend: a tool to benchmark and measure elasticity of cloud databases ..............................93 Rodrigo Felix de Almeida, Javam C. Machado vi Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações Junções Adaptativas em Consultas Federadas sobre Linked Data Macedo S. Maia 1 , Vânia Maria P. Vidal 1 , José Maria da S. M. Filho 1 , Regis P. Magalhães1,2 Mestrado e Doutorado em Ciência da Computação Universidade Federal do Ceará (UFC) Campus do Pici – Bloco 910 – 60.455-760 – Fortaleza – CE – Brazil 1 Instituto Federal do Piauí (IFPI) Estrada Parnaíba/Chaval – BR 402, Km 3 – 64215-990 – Parnaíba – PI – Brazil 2 {macedomaia, vvidal, monteiro,regispires}@lia.ufc.br Nível: Mestrado Ano de ingresso no programa: 2011 Exame de Qualificação: Agosto de 2012 Época esperada de conclusão: Março de 2013 Abstract. Motivated by the success of Linked Data and the growing number of data sources into RDF files available on the Web, new challenges for query processing are emerging. Especially in settings that require joins of distributed data provided by multiple sources, which are often unstable. In this sense, the design of new algorithms and adaptive strategies for implementing junction efficiently is a major challenge. In this work we present a solution to the adaptive execution of joins in federated queries. For the proposed strategies can be adapted to the distributed data sources, we collect statistics on the environment on-the-fly. These statistics will help in decision making about the adaptations that occur in the implementation plan, to improve query performance. Resumo. Motivado pelo sucesso de Linked Data e o crescimento do número de fontes de dados em formato RDF disponíveis na Web, novos desafios para processamento de consultas estão emergindo. Isso, especialmente, em configurações distribuídas que requerem junções de dados fornecidos por múltiplas fontes, as quais são muitas vezes instáveis. Nesse sentido, a concepção de novos algoritmos e estratégias adaptativas para a execução de junções de forma eficiente, constitui um desafio importante. Nesse trabalho, apresentamos uma solução para a execução adaptativa de junções em consultas federadas. Para que a estratégia proposta possa se adaptar ao contexto das fontes de dados distribuídas, iremos coletar estatísticas sobre o ambiente em tempo de execução. Essas estatísticas ajudarão na tomada de decisão sobre as adaptações que devem ocorrer no plano de execução, visando melhorar o desempenho das consultas. Palavras-chave: Operações de Junção, Adaptação ao Contexto, Consultas Federadas, Linked Data 1 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 1. Introdução A Web de Dados é considerada uma extensão da Web atual. Seu principal objetivo consiste em facilitar a interpretação e integração dos dados na Web. Como parte do desenvolvimento da Web Semântica, surgiu o conceito de Linked Data (dados ligados) que pode ser definido como um conjunto de boas práticas para publicar, consumir e conectar conjuntos de dados estruturados na Web [Bizer et al. 2009]. As práticas de Linked Data têm impulsionado a publicação de dados abertos, compreensíveis logicamente por máquinas e suportados pelo World Wide Web Consortium (W3C). Contudo, o consumo e o acesso integrado a esses dados ainda é algo difícil de ser realizado. Essa dificuldade advém de diversos fatores, tais como: o vocabulário heterogêneo dos dados e a sua fragmentação e distribuição natural na Web. Este cenário traz consigo a necessidade de mecanismos que possibilitem o acesso integrado aos dados distribuídos de maneira eficiente. No padrão Linked Data, especificamente, cada fragmento de dado no formato de triplas RDF descreve a si mesmo e suas relações, com outros fragmentos de dados de forma descentralizada. As aplicações podem acessar Linked Data na Web através de consultas a um determinado SPARQL endpoint, de forma individual. Porém, embora esse acesso possa prover dados valiosos para a aplicação, essa abordagem ignora o grande potencial de Linked Data, pois não explora as possibilidades deste espaço de dados global que integra um grande número de fontes de dados interligados [Magalhães and Vidal 2011]. Por outro lado, com advento do SPARQL 1.1, tornou-se possível formular uma consulta federada que busque informações em múltiplas fontes de dados, desde que se conheça previamente a localização, o vocabulário heterogêneo e como combinar os dados dessas fontes. Assim, a federação de consultas baseia-se na distribuição do processamento de consultas para múltiplas fontes de dados autônomas. Desta forma, uma determinada consulta federada precisa ser decomposta em subconsultas, onde cada subconsulta é enviada a um serviço de consulta específico (endpoint). Em seguida, os resultados obtidos são integrados e a resposta final é devolvida ao usuário. A Figura 1 ilustra uma consulta federada definida sobre dois endpoints distribuídos, onde o primeiro contém informações sobre doenças (diseasome) e o segundo sobre drogas (drugbank), e a representação de um possível plano de execução para esta consulta. PREFIX rdfs: <http://www.w3.org/2000/01/rdf‐schema#> PREFIX diseasome: <http://www4.wiwiss.fu‐berlin.de/ diseasome/resource/diseasome/> SELECT ?disease_name ?drug_name WHERE { SERVICE <http://www4.wiwiss.fu‐berlin.de/diseasome/ sparql> { ?disease diseasome:name ?disease_name . ?disease diseasome:possibleDrug ?dg . } SERVICE <http://www4.wiwiss.fu‐berlin.de/drugbank/ sparql> { ?dg rdfs:label ?drug_name . SERVICE } diseasome } PROJECT (?disease_name ?drug_name) BGP ?disease diseasome:name ?disease_name ?disease diseasome:possibleDrug ?dg JOIN SERVICE drugbank BGP ?dg rdfs:label ?drug_name Figura 1. Exemplo de uma consulta federada SPARQL e seu plano de execução Em uma consulta federada, os dados são extraídos das múltiplas fontes no mo2 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações mento de sua execução. Contudo, tais fontes de dados são heterogêneas, distribuídas, autônomas, e, na maioria das vezes instáveis, alternando períodos de disponibilidade e indisponibilidade, além de elevada e baixa vazão. Logicamente, neste cenário altamente dinâmico, o processamento de uma consulta federada pode apresentar problemas de desempenho e previsibilidade. Esses problemas são potencialmente agravados quando a consulta federada contém junções envolvendo grandes volumes de dados provenientes de fontes distribuídas, fato comum em Linked Data, onde as consultas envolvem milhões de triplas RDF. Um otimizador de consultas federadas sobre Linked Data possui muito menos informação disponível do que um otimizador tradicional de banco de dados relacionais. Como resultado, duas situações podem acontecer: o otimizador pode não ter informação suficiente para decidir sobre um bom plano de execução ou um plano que, a princípio, pareça bom, pode não o ser se as fontes não responderem exatamente da forma esperada. [Buil-Aranda et al. 2011] destacam que o processamento de consultas SPARQL distribuídas sobre Linked Data é uma tarefa bastante complexa. [Halevy et al. 2006] realizaram retrospectiva sobre dez anos de pesquisa na área de integração de dados que apontam o processamento de consultas adaptativo, dentre os temas de pesquisa fundamentais para a solução de problemas de integração. Muitos estudos [Avnur and Hellerstein 2000, Ives et al. 2004, Ayres et al. 2003] têm sido realizados com o intuito de tornar a execução da consulta a mais adaptativa possível. O presente trabalho investiga uma estratégia adaptativa que possibilite mudar, em tempo de execução, o algoritmo de junção, recorrendo aos algoritmos mais adequados a cada instante, dependendo do contexto do ambiente de execução, ou seja, do comportamento das fontes de dados. Essa adaptação busca reduzir o volume de dados intermediários, além de explorar o processamento paralelo de consultas, bem como os modelos pull e push de entrega de dados. Acreditamos que estratégias de junções adaptativas são essenciais no ambiente altamente dinâmico dos Linked Data, os quais apresentam duas características que desafiam a avaliação de consultas SPARQL distribuídas: larga escala e imprevisibilidade nos tempos de entrega de dados. Em [Porto et al. 2007] é descrito o QEF (Query Execution Framework), um framework para execução de consultas, o qual foi projetado para suportar aplicações complexas em grade (grid). No QEF, as consultas apresentam a forma de um workflow no qual as tarefas são representadas na forma de operadores algébricos e os tipos de dados específicos são envelopados em uma estrutura de dados comum. Uma extensão do QEF para processar consultas federadas em ambientes de Linked Data foi apresentada em [Magalhães 2012] e será utilizada para implementar os algoritmos e as estratégias de junções adaptativas que serão concebidas. Neste sentido, novos operadores de junção adaptativos serão implementados. As estratégias propostas serão avaliadas por meio de vários experimentos, e os resultados irão fornecer evidências empíricas da escalabilidade e ganho das técnicas propostas. 2. Caracterização das contribuições Neste trabalho, propomos uma estratégia baseada em algoritmos de junção adaptativos voltados para consultas sobre ambientes de Linked Data. A estratégia adaptativa adotada levará em consideração: minimização de transmissão de resultados intermediários para o 3 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações ambiente de execução e o tempo total de execução. Para isso, faz-se uma sintonia entre os objetivos de aumento de vazão (throughput), da verificação constante da disponibilidade das fontes e da redução do volume de dados transmitidos, mudando os algoritmos adaptativos dinamicamente durante a execução, sem interromper o envio dos dados do SPARQL endpoint para o ambiente de execução. Desse modo, os dados serão enviados em pipeline, ou seja, os resultados parciais são retornados à aplicação, sem a necessidade de esperar que a consulta seja processada por completo. A consulta será ajustada ao contexto e às mudanças do ambiente federado a partir de dados estatísticos coletadas em tempo de execução (on-the-fly). Na Figura 2, mostramos a arquitetura do processador de consultas e seus componentes, onde esses últimos são descritos a seguir: Figura 2. Arquitetura do processador de consultas Translator: Responsável por traduzir a consulta SPARQL para o seu QEP (Query Execution Plan) correspondente. Executor: É designado para executar a consulta a partir de um QEP e retornar o resultado para a aplicação. Além da execução, ele também pode realizar alterações no plano, baseando-se nos dados estatísticos produzidos pelo Monitor, visando reduzir o custo total da consulta. Monitor: Esse componente é responsável pelo monitoramento do fluxo dos dados que são enviados à aplicação. A partir disso, pode-se produzir dados estatísticos a partir da vazão (Throughput) dos dados em um determinado instante de tempo e da verificação da disponibilidade das fontes. Essas estatísticas serão usadas para a adaptação das operações de junção que constituem o plano de consulta federado. 3. Trabalhos relacionados Diversas soluções para processamento de consultas federadas sobre fontes de dados RDF heterogêneas têm sido propostas, tendo em vista sua relevância para integração de dados no contexto de Linked Data. A seguir, serão discutidas algumas dessas soluções. DARQ [Quilitz and Leser 2008] é um mediador baseado no processador de consultas Jena ARQ capaz de realizar consultas distribuídas sobre a web dados. SemWIQ [Langegger 2010] é outro mediador que estende o Jena ARQ a fim de consultar a web de dados fazendo uso de estatísticas [Langegger and Woss 2009] para otimizar as consultas. Os dados estatísticos utilizados pelo SemWIQ são obtidos antes da consulta ser executada. Uma desvantagem do SemWIQ e do DARQ está no fato do plano de consulta não ser ajustado no momento em que o mesmo está em execução. Esse fato deve ser levado em consideração em um ambiente instável como o de Linked Data. Desafios relacionados à eficiência de consultas 4 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações federadas e uma abordagem para otimização dessas consultas baseada em programação dinâmica foram tratados por [Görlitz and Staab 2011]. [Le-phuoc et al. 2010] apresenta uma abordagem que provê um modelo de processamento de consultas escalável para unificar Linked Stream Data e Linked Open Data. A escalabilidade é alcançada pela aplicação de técnicas para armazenar dados de forma eficiente e fazer o pré-processamento de consulta, combinado com um algoritmo de otimização de consultas adaptativo baseado em custos para fontes de dados dinâmicas. [Avnur and Hellerstein 2000] propõe um mecanismo de consulta que re-ordena constantemente os operadores de um plano para se adaptar às variações que podem ocorrer nos dados durante a execução. Inicialmente são verificadas as restrições de re-ordenação existentes e é criado um plano de execução de consultas com as informações disponíveis. Nesse plano, os operadores são interligados por um operador de controle denominado eddy, que realiza a leitura dos dados das fontes e determina um roteamento para cada tupla segundo as informações observadas. Além disso, eddy requer operadores de junção que apresentem momentos de adaptação nos quais a ordem dos operadores pode ser alterada com pouca ou nenhuma alteração em seu estado. [Pinheiro 2011] desenvolve uma solução adaptativa para integrar dados no padrão de Linked Data de maneira eficiente. O autor propõe dois operadores adaptativos: Pipeline Hash-join (PHJ) e Set-bind-join (SBJ). O PHJ é baseado em operação de Hash Join e utiliza paralelismo pipelining. A grande vantagem do PHJ sobre as operações de Hash Join é o fato de seu algoritmo ser não bloqueante, diminuindo assim o overhead entre a mudança de uma tabela Hash para a outra. A desvantagem consiste do fato de não tratar a redução da quantidade de dados transferidos dos endpoints SPARQL para o mediador. O SBJ se baseia no algoritmo de Bind-join. O algoritmo SBJ processa seguindo a estratégia em que os dados resultantes da subconsulta que recupera os binds são lidos e os valores correspondentes aos binds são enviados em blocos e encapsulados na cláusula SPARQL BINDINGS. 4. Estado atual do trabalho O trabalho está sendo conduzido de acordo com as etapas descritas a seguir. A tabela 1 apresenta o cronograma das atividades. Atualmente, a etapa 6 está sendo concluída e a etapa 7 está em execução. Tabela 1. Cronograma mensal com as etapas do trabalho 5. Avaliação dos Resultados e Trabalhos Futuros A avaliação dos resultados ocorrerá a partir da implementação da estratégia proposta, além da implementação do operador de controle como novas extensões ao QEF. As consultas serão realizadas sobre um ambiente federado, onde os dados estarão armazenados 5 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações remotamente. A partir desse ambiente, serão realizadas comparações entre o desempenho das consultas, utilizando os operadores seguindo a adaptação proposta e outras baseadas em Junção. A avaliação usará como métrica de desempenho o tempo de execução total. Referências Avnur, R. and Hellerstein, J. M. (2000). Eddies: Continuously adaptive query processing. In SIGMOD Conference, pages 261–272. Ayres, F. V. M., Porto, F., and Melo, R. N. (2003). Uma máquina extensível para suporte a novos modelos de execução de consultas. In Laender, A. H. F., editor, SBBD, pages 371–380. UFAM. Buil-Aranda, C., Arenas, M., and Corcho, O. (2011). Semantics and optimization of the sparql 1.1 federation extension. In Proceedings of the 8th extended semantic web conference on The semanic web: research and applications - Volume Part II, ESWC’11, pages 1–15, Berlin, Heidelberg. Springer-Verlag. Görlitz, O. and Staab, S. (2011). Federated Data Management and Query Optimization for Linked Open Data. In Vakali, A. and Jain, L., editors, New Directions in Web Data Management 1, volume 331 of Studies in Computational Intelligence, pages 109–137. Springer Berlin / Heidelberg. Halevy, A., Rajaraman, A., and Ordille, J. (2006). Data integration: the teenage years. In Proceedings of the 32nd international conference on Very large data bases, VLDB ’06, pages 9–16. VLDB Endowment. Ives, Z. G., Halevy, A. Y., and Weld, D. S. (2004). Adapting to source properties in processing data integration queries. In Proceedings of the 2004 ACM SIGMOD international conference on Management of data, SIGMOD ’04, pages 395–406, New York, NY, USA. ACM. Langegger, A. (2010). A Flexible Architecture for Virtual Information Integration based on Semantic Web Concepts. PhD thesis, J. Kepler University Linz. Langegger, A. and Woss, W. (2009). Rdfstats - an extensible rdf statistics generator and library. In Proceedings of the 2009 20th International Workshop on Database and Expert Systems Application, DEXA ’09, pages 79–83, Washington, DC, USA. IEEE Computer Society. Le-phuoc, D., Hausenblas, M., Parreira, J. X., Hauswirth, M., Dangan, L., Le-phuoc, D., Xavier, J., Hausenblas, P. M., and Hauswirth, M. (2010). Continuous query optimization and evaluation over unified linked stream data and linked open data. Magalhães, R. P. (2012). Um Ambiente para Processamento de Consultas Federadas em Linked Data Mashups. Master’s thesis, Universidade Federal do Ceará. Magalhães, R. P. and Vidal, V. M. P. (2011). Usando Tecnologias da Web Semântica para Construção e Execução de Mashup de Dados. In Proceedings of the 26th Brazilian Symposium on Databases – SBBD, X Workshop de Teses e Dissertações em Banco de Dados - WTDBD, Florianópoles, SC, Brazil. Pinheiro, J. C. (2011). Processamento de consulta de um framework baseado em mediador para integração de dados no padrão de Linked Data. PhD thesis, Universidade Federal do Ceará. Porto, F., Tajmouati, O., Da Silva, V. F. V., Schulze, B., and Ayres, F. V. M. (2007). Qef supporting complex query applications. In Proceedings of the Seventh IEEE International Symposium on Cluster Computing and the Grid, CCGRID ’07, pages 846–851, Washington, DC, USA. IEEE Computer Society. Quilitz, B. and Leser, U. (2008). Querying Distributed RDF Data Sources with SPARQL. In Proceedings of the 5th European semantic web conference on The semantic web: research and applications, ESWC’08, pages 524–538, Berlin, Heidelberg. Springer-Verlag. 6 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações SCM Join Um Algoritmo de Junção para Memória SCM Júlio Alcântara Tavares1, José de Aguiar Moraes Filho1, Angelo Brayner1 1 Programa de PósGraduação em Informática Aplicada Universidade de Fortaleza – (UNIFOR) Caixa Postal 1258 – 60.811341 – Fortaleza – CE – Brazil {julio,jaguiar,brayner}@unifor.br Nível: Mestrado Ano de ingresso no programa: 2011 Exame de qualificação: Mês de Novembro/2012 Época esperada de conclusão: Mês de Junho/2013 Resumo. A SCM (Storage Class Memory) é uma categoria de dispositivos de armazenamento que oferece um vasto campo de pesquisa e, devido as suas características intrínsecas, está intimamente relacionada com o redesenho dos principais componentes do SGBD. Os componentes de processamento de consultas, recuperação/logging e indexação, quando revisitados para aderir a este novo paradigma, poderiam trazer grandes benefícios relacionados a vazão e ao desempenho do sistema, elevandoo a um outro nível de desempenho. Pensar em novas abordagens para os algoritmos atuais (clássicos) representa boa parte desta questão. Grandes fornecedores de servidores de armazenamento (como por exemplo, Oracle Exadata, a linha CX da EMC e a linha Dell Compellent) aderiram a esta realidade e já disponibilizam hardware especializado em SCM para armazenamento e cache de dados. Neste trabalho, pretendemos explorar as características e tradeoffs da SCM para repensar e replanejar componentes da infraestrutura dos SGBDs, especificamente na área de processamento de consultas, propondo um novo algoritmo de junção que leva em consideração o armazenamento dos dados em mídia SCM. Dessa forma, pretendese evidenciar que, com o avanço e popularização destas novas mídias, se os principais algoritmos que atualmente estão em execução nos SGBDs comerciais fossem sensíveis ao contexto e às características da mídia de armazenamento subjacente, seria possível obter ganhos que vão muito além da velocidade física da SCM. PalavrasChave: banco de dados1, operador de junção2, storage class memory (SCM)3 7 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações SCM Join - Um Algoritmo de Junção para Memória SCM Júlio A. Tavares1 , José de Aguiar Moraes Filho1 , Angelo Brayner1 1 Programa de Pós-Graduação em Informática Aplicada - Universidade de Fortaleza (UNIFOR) 60.811-905 – Fortaleza – CE – Brasil {julio,jaguiar,brayner}@unifor.br 1. Introdução Nas últimas décadas a velocidade dos processadores aumentou exponencialmente. Enquanto isso, o número de entradas/saı́das por segundo (IOPS) proporcionadas pelos discos rı́gidos (HDDs) aumentou apenas ligeiramente, não acompanhando a taxa de crescimento imposta pelos processadores. Para amenizar esse problema, um conjunto de novas mı́dias de armazenamento, denominada Storage Class Memory (SCM), surgiu como uma solução bastante eficiente para esta questão. Exemplos de SCM incluem a memória flash, PCM (phase-change memory), SSDs (discos de estado sólido), dentre outros. Três caracterı́sticas principais devem ser destacadas na SCM: (i) não volatilidade, (ii) baixo tempo de acesso, (iii) alta vazão (# IOPS) e (iv) assimetria no tempo de leitura/gravação. As duas primeiras têm um benefı́cio direto para os sistemas de banco de dados. A última caracterı́stica representa grandes desafios para os sistemas gerenciadores de banco de dados, podendo levar a uma proporção de 1:200 em relação aos tempos de leitura e escrita de dados na SCM [Nath and Kansal 2007]. Realizamos uma bateria de experimentos para termos indı́cios das caracterı́sticas e das melhores práticas a serem seguidas no projeto de um algoritmo de junção para mı́dias SCM. Utilizamos um servidor Intel Quad Core 1,83 GHz usando o Windows 7 64-bits, com 4-GB de memória RAM. Executamos experimentos com bancos de dados armazenados em um disco rı́gido (HDD) e em um disco de estado sólido (SSD). O HDD utilizado foi um SATA II da Samsung (modelo 502HI) com 500 Gbytes, 7200 rpm e cache de 16 MB. O disco SSD utilizado foi um Corsair Force GT de 120 GB, ligado ao servidor através de interface SATA II. As bases de dados utilizadas nos experimentos foram criadas utilizando o SQL Server 2008 (64bits), utilizando o HDD e o SSD. Antes de executar cada experimento, o serviço do banco de dados foi reinicializado para diminuir a influência do gerenciador do buffer e da polı́tica de alocação de memória nos testes executados. Para cada execução, utilizamos o mesmo tamanho de buffer do SGBD. O SSD foi preenchido por completo, a cada teste, para que não existissem blocos de dados livres para a escrita (ou apenas estivessem livres a minoria necessária para a execução do experimento), pois isso poderia levar a maiores flutuações na coleta dos resultados. Essa ação também visou a simulação do pior caso, já que todos os blocos estavam escritos (alocados). Investigamos a influência de algoritmos de junção (nested-loop join, merge join e hash join) e tempos de resposta de consultas com 12 das 23 consultas utilizadas no TPC-H (consultas 2, 3, 5, 10, 11, 12, 14, 16, 17, 18, 19 e 23). O critério de seleção destas consultas foi a participação de tabelas grandes, especialmente a tabela LineItem, que mesmo tendo sido criada com fator de escala ”1” possuia mais de 6.5x10 6 tuplas. Cada uma destas consultas foi executada forçando o uso de um algoritmo especı́fico de junção. Junções que utilizaram o nested-loop join apresentaram os piores re8 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações sultados em SSD, em relação aos planos que utilizaram os operadores hash-join e mergejoin. Isto ocorreu porque o uso do nested-loop-join consumiu mais espaço temporário durante a sua execução, o que implica mais operações de escrita em um maior espaço de armazenamento no SSD, resultando em pior desempenho. (a) Consultas 05, 17, 18 (TPCH) (b) Consultas 02, 03, 14 (TPCH) (c) Consultas 16, 19, 23 (TPCH) (d) Consultas 10, 11, 12 (TPCH) Figure 1. Desempenho dos Algoritmos em mı́dia SCM Com relação ao hash join e ao merge join, é importante ressaltar que para criar os buckets (partições) durante a etapa de particionamento (hash-join) e para ordenar os dados antes de realizar a junção (merge join), também é necessário a utilização de espaço temporário. Por exemplo, na Consulta 3 o merge-join obteve melhor desempenho no HDD, sendo menos eficiente no SSD. A razão para tal comportamento é novamente o número de operações de gravação para classificar os blocos utilizados pelo resultado temporário gerado. Analisando especificamente o merge-join e o hash-join, não há nenhum vencedor evidente. Em geral, observamos a seguinte regra: quanto mais resultados temporários são gerados, maior é o tempo de resposta da consulta no SSD. Dessa forma, entendemos essa caracterı́stica como sendo umas das principais questões a serem analisadas durante o projeto de um algoritmo de junção para mı́dia SCM, o que também reflete a importância de tratar a assimetria de E/S desta mı́dia. Percebemos também que, de um modo geral, os tempos de execução dos algoritmos clássicos em HDD e SSD são parecidos, embora diferentes em termos absolutos. Isso pode ser um indı́cio de que heurı́sticas similares as que são utilizadas no HDDs poderiam ser aplicadas também para o SSD. Estudos mais detalhados precisam ser feitos para comprovar esta hipótese. Entretanto, houve situações onde o nested-loop join apresentou um desempenho melhor que o do hash-join e do merge-join. Por exemplo, nas consultas 3 e 19 os planos 9 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações que utilizaram o nested-loop apresentaram melhor desempenho do que os demais planos de execução, quando executados no SSD. Procuramos entender este comportamento e detalhamos a execução da consulta para averiguar as informações dos resultados obtidos. Após análise, descobrimos que esses planos utilizaram o nested-loop-join usando ı́ndices (index nested-loop-join). As consultas 3 e 19 utilizaram a tabela LineItem, uma tabela que armazenava uma quantidade relevante de tuplas. O algoritmo de junção executado nos planos que envolviam o nested-loop e que estavam relacionados com as consultas 3 e 19 utilizou um ı́ndice na tabela LineItem como operando interno da junção. Percebemos que esta situação acelerou bastante a execução do plano, o que gera indı́cios sobre a validade de utilizar ı́ndices mesmo quando utilizando mı́dias SCM. Levando em consideração os argumentos expostos anteriormente, podemos formular as seguintes hipóteses: ”(i) A fim de tornar as técnicas de processamento de consulta capazes de tirar proveito do uso de mı́dia SCM, é necessário desenvolver algoritmos que fazem uso de pipeline ou de adaptabilidade, visando diminuir a geração de resultados temporários. (ii) Além disso, é de fundamental importância a concepção de um novo modelo de custo visando adequá-lo em um novo paradigma de processamento de consultas. Neste modelo, não apenas o número de páginas transferidas deve ser avaliado, mas também deveremos avaliar o número de páginas escritas durante a execução do plano, as quais devem ter um peso maior do que o aplicado para as páginas transferidas da memória secundária (SSD) para a memória principal, levando em consideração as caracterı́sticas de assimetria de E/S da SCM.” Pretendemos realizar um estudo empı́rico sobre o uso da SCM em sistemas gerenciadores de banco de dados, especificamente dentro da área de processamento de consultas. Para isso, propomos um novo algoritmo de junção, denominado SCM Join, que reúne caracterı́sticas necessárias para obter um desempenho eficaz na realização de junções em mı́dias do tipo SCM. 2. O Algoritmo SCM Join Como contribuições, podemos mencionar: (i) A evidenciação da necessidade de repensar a arquitetura de elementos chave dos SGBDs, como o processamento de consultas, para que estes possam usufruir das caracterı́sticas da SCM; (ii) A realização de experimentos que geram indı́cios acerca das melhores práticas a serem adotadas no projeto de algoritmos e componentes arquiteturais do SGBD que levam em consideração a assimetria de E/S; (iii) A implementação de um algoritmo de junção para mı́dias SCM utilizando o SGBD PostgreSql; e (iv) A evidenciação de que um modelo de custo especı́fico para mı́dia SCM pode trazer grandes benefı́cios para os SGBDs atuais. Tentamos projetar o SCM Join, que é um tipo de hash join para SCM, com as seguintes diretrizes: (i) Tratamento do transbordamento de memória levando em consideração o contexto especı́fico da mı́dia SCM; (ii) Utilização de técnicas de compressão para gerar menos resultados intermediários, visando diminuir o total de escritas na mı́dia; e (iii) Explorar as rápidas leituras randômicas oferecidas pela SCM. Consideramos que o tamanho de um bucket (partição) tem o mesmo tamanho que o bloco fı́sico da mı́dia SCM (linhas 3–4), visando evitar escritas randômicas desnecessárias na mı́dia. Usamos técnicas de compressão (linha 20) para armazenar mais tuplas em cada bucket. Assim, o algoritmo tende a apresentar menor frequen10 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações cia de situações de estouro de partição (transbordamento de memória). Estamos também analisando técnicas especı́ficas que processam e comprimem várias tuplas adjacentes de uma só vez, reduzindo o custo de compressão (CPU e Overhead de Espaço) [Abadi et al. 2006]. Listing 2. Métodos Auxiliares. Listing 1. Algoritmo SCM Join. 1 2 3 4 5 6 7 8 9 10 11 12 13 Begin BufferMap . a l o c a ( ) ; p a r t i c i o n a (R) ; particiona (S) ; For t u p l a R i n BktR ( i ) de R l o o p For t u p l a S i n BktS ( i ) de S l o o p i f ( tuplaR . atrJuncao = t u p l a S . a t r J u n c a o ) then Pipe ( tuplaR , tuplaS ) ; end i f ; end l o o p ; end l o o p ; End ; 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Procedure p a r t i c i o n a ( t a b e l a ) Begin For t u p l a T i n t a b e l a l o o p p a r t i c a o := hash ( t u p l a . a t r J u n c a o ) ; I f ove rflo w ( p a r t i c a o ) then descarrega ( particao ) ; else tuplaComp : = c o m p a c t a r ( t u p l a ) ; i n s e r e T u p l a P a r t i c a o ( tuplaComp , particao ) ; end i f ; end l o o p ; End p a r t i c i o n a ; Procedure d e s c a r r e g a ( b u c k e t ) Begin BufferMap . a t u a l i z a ( b u c k e t ) ; gravaBucket ( bucket ) ; End d e s c a r r e g a ; Necessitamos de uma estrutura de mapeamento auxiliar no controle do estouro de buckets (linhas 25–28). Sempre que isto ocorre o bucket é então descarregado para o disco e a estrutura de mapeamento é atualizada para mapear corretamente os buckets que estão em disco e os buckets que estão em memória. A estrutura de mapeamento possui 3 campos: o endereço fı́sico do bloco para onde foi descarregado o bucket na mı́dia SCM, o ID do bucket e um indicador que informa se o bucket está ou não armazenado em memória principal. Forma-se assim uma espécie de lista de buckets que sofreram transbordamento de memória. Esta estrutura pode ser perfeitamente implementada como uma tabela hash, valendo-se, naturalmente, da velocidade de acesso randômico da mı́dia SCM. A comparação das tuplas compactadas se faz sem a necessidade de prévia descompactação (linhas 7–8), seguindo [Graefe and Shapiro 1991]. Quanto ao modelo de custos, sugerimos ser levado em consideração o uso de compressão de dados no algoritmo e de um componente de custo para ”páginas escritas”, adicional ao tradicional ”páginas transferidas” do disco. Dever-se-ia ser também atribuı́do um peso maior para as páginas escritas (i) quando não houver pipeline, e (ii) quando for necessário a materialização de resultados intermediários. Uma forma de mitigar o problema das escritas ocasionadas pela geração dos resultados intermediários seria através da estratégia Late Materialization [Tsirogiannis et al. 2009]. Entretanto, é importante ressaltar que o uso desta abordagem pode gerar impactos na geração dos planos de execução. Analisaremos a viabilidade deste modelo, bem como realizaremos experimentos para gerar indı́cios necessários à comprovação destas hipóteses. A nossa escolha pelo algoritmo ”hash Join” deveu-se a este ser um algoritmo clássico já presente na grande maioria dos SGBDs comerciais, o que poderia facilitar a sua adaptação para o contexto da mı́dia SCM. Ressaltamos que os demais algoritmos (p.e., nested-loop, merge) poderiam também obter benefı́cios quando adaptados para SCM. 3. Trabalhos Relacionados na Área Em [Graefe et al. 2010], foram idealizados dois operadores (flash scan e flash join) que operam em mı́dia SCM, porém além da abordagem limitar-se apenas ao uso do layout baseado em colunas, durante a execução da junção é gerado um ı́ndice temporário, 11 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações o que pode ocasionar prejuı́zos no desempenho devido às escritas adicionais. Esse modo de operação pode ocasionar mais escritas na mı́dia SCM, fazendo com que o desempenho seja degradado quanto maior for o tamanho das relações participantes na junção, não apresentando bom desempenho para predicados de baixa seletividade. Em [Tsirogiannis et al. 2009], discute-se estruturas de dados que aproveitam a baixa latência de leitura dos SSDs para acelerar as operações de seleção, projeção e junção. Estas estruturas utilizam o layout baseado em colunas aliado à menor granularidade da unidade de leitura (páginas) dos SSDs para aumentar o desempenho das consultas. Em [Do and Patel 2009], são revistas algumas das principais lições aprendidas, nas últimas três décadas, relacionadas ao projeto de algoritmos utilizados em projetos de banco de dados. Este trabalho gera indı́cios de que muitas técnicas já utilizadas em HDDs podem ser reaproveitadas em SSDs, mesmo que devido a motivações diferentes. Como exemplo, podemos citar a E/S baseada em blocos, muito utilizada nos HDDs, e que também se faz de fundamental importância nos dispositivos SSDs. Em [Clementsen and He 2010] existem técnicas de grande relevância para o desenvolvimento deste trabalho, voltadas para aspectos de particionamento vertical e para a otimização de técnicas de Hashing. 4. Estado Atual do Trabalho Atualmente estamos aprimorando a proposta através da realização de experimentos com outros SGBDs (Oracle e PostgreSql), visando observar o comportamento dos algoritmos de junção clássicos quando estes são executados sobre dados armazenados em SCM. Adicionalmente, estamos estudando a incorporação do SCM Join no PostgreSql de modo a realizarmos os experimentos comparativos e a avaliação dos resultados. References Abadi, D. J., Madden, S., and Ferreira, M. (2006). Integrating compression and execution in column-oriented database systems. In Chaudhuri, S., Hristidis, V., and Polyzotis, N., editors, SIGMOD Conference, pages 671–682. ACM. Clementsen, D. S. and He, Z. (2010). Vertical partitioning for flash and hdd database systems. J. Syst. Softw., 83(11):2237–2250. Do, J. and Patel, J. M. (2009). Join processing for flash ssds: remembering past lessons. In Proceedings of the Fifth International Workshop on Data Management on New Hardware, DaMoN ’09, pages 1–8, New York, NY, USA. ACM. Graefe, G., Harizopoulos, S., Kuno, H. A., Shah, M. A., Tsirogiannis, D., and Wiener, J. L. (2010). Designing database operators for flash-enabled memory hierarchies. IEEE Data Eng. Bull., 33(4):21–27. Graefe, G. and Shapiro, L. D. (1991). Data compression and database performance. In In Proc. ACM/IEEE-CS Symp. On Applied Computing, pages 22–27. Nath, S. and Kansal, A. (2007). Flashdb: dynamic self-tuning database for nand flash. In Abdelzaher, T. F., Guibas, L. J., and Welsh, M., editors, IPSN, pages 410–419. ACM. Tsirogiannis, D., Harizopoulos, S., Shah, M. A., Wiener, J. L., and Graefe, G. (2009). Query processing techniques for solid state drives. In Çetintemel, U., Zdonik, S. B., Kossmann, D., and Tatbul, N., editors, SIGMOD Conference, pages 59–72. ACM. 12 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações Processamento de consultas XQuery usando Prolog Rafael de Araújo M. Pinheiro, Vanessa Braganholo Instituto de Ciência da Computação – Universidade Federal Fluminense (UFF) Niterói – RJ – Brasil {rpinheiro, vanessa}@ic.uff.br Nível: Mestrado Ano de ingresso no programa: 2012 Exame de qualificação: Agosto de 2012 Época esperada de conclusão: Março de 2014 Abstract. The use of inference languages can bring significant gains in the performance of XML query processing. In fact, the processing times obtained in previous work encourage the use of Prolog as a query processing engine for XML queries. Aiming at taking the advantages of inference machines at its most, this work proposes an approach to automatically translate XQuery queries to Prolog, so that these queries can be processed faster. The approach is composed by three steps and uses the document schema to guide the translation process. Resumo. A utilização de linguagens de inferência pode trazer ganhos significativos no desempenho do processamento de consultas em documentos XML. Os resultados de tempo de processamento obtidos em trabalhos anteriores encorajam o uso de Prolog como máquina para processar consultas XML. Com o objetivo de aproveitar ao máximo as vantagens da máquina de inferência, este trabalho propõe uma abordagem para a tradução automática de consultas XQuery para a linguagem Prolog, de modo que as consultas possam ser processadas mais rapidamente. A abordagem é composta basicamente por três etapas e utiliza o esquema do documento XML para auxiliar na identificação e tradução dos elementos dos documentos. Palavras-chave: tradução de consultas, XPath, Wrapper, Prolog, XML 13 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 1. Introdução e Fundamentação teórica A crescente utilização dos documentos XML fez com que as aplicações atuais necessitassem de tecnologias capazes de recuperar as informações dos documentos em tempo satisfatório. Diante deste problema, a W3C desenvolveu duas linguagens, XPath (CLARK; DEROSE, 1999) e XQuery (BOAG et al., 2010), as quais disponibilizam todas as operações necessárias para a extração das informações dos documentos. É sabido que, dependendo do tamanho do documento e da complexidade das consultas, o tempo de processamento de consultas XPath e XQuery pode ser inaceitável. Para resolver este problema, alguns trabalhos propõem o uso de distribuição dos dados, para que o processamento de consulta possa ser feito em paralelo (FIGUEIREDO; BRAGANHOLO; MATTOSO, 2010; RODRIGUES; BRAGANHOLO; MATTOSO, 2011). Outros propõem o uso de índices (SANTIAGO; MACHADO, 2004). No entanto, em cenários em que os dados não estão sendo gerenciados por um SGBD, essas alternativas não são viáveis. A Figura 1 mostra um exemplo de documento XML que possui informações relacionando pais e seus respectivos filhos. Diante deste documento, uma consulta que retorne todos os pares pai e filho, como //pessoa, é bastante simples e relativamente rápida de ser processada. No entanto, consultas mais complexas, que exigem processamento recursivo, como, retornar todos os descendentes de todas as pessoas, demoram mais tempo para serem processadas. <pessoas> <pessoa> <nome>João</nome> <filho>Pedro</filho> </pessoa> <pessoa> <nome>Pedro</nome> <filho>Mário</filho> </pessoa> <pessoa> <nome>Mário</nome> <filho>Ricardo</nome> </pessoa> </pessoas> Figura 1. Documento XML com informações de pai e filhos pessoa(ID, NOME, FILHO) :nome(ID, NOME), filho(ID, FILHO). pessoas(id1). pessoa(id1, id2). nome(id2, 'joao'). filho(id2, 'pedro'). pessoa(id1, id3). nome(id3, 'pedro'). filho(id3, 'mario'). pessoa(id1, id4). nome(id4, 'mario'). filho(id4, 'ricardo'). Figura 2. Base de regras (esquerda) e fatos (direita) correspondente ao documento da Figura 1 Mesmo sem a utilização de técnicas para otimização da base de fatos, em alguns casos a linguagem Prolog possui um desempenho superior quando comparado com a execução de consultas similares em XQuery (LIMA, 2012). Porém, a escrita das consultas Prolog exige dos usuários que utilizam as linguagens de consulta XML bons 14 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações conhecimentos da estrutura de execução das consultas Prolog e das funções disponibilizadas pela máquina de inferência para a construção de expressões que retornam os dados conforme a necessidade do usuário. Por exemplo, ao submeter o documento da Figura 1 à abordagem de Lima et al. (2012), é gerada uma base de fatos e regras automaticamente. A Figura 2 apresenta a base de regras geradas automaticamente a partir do esquema e os fatos gerados a partir do documento XML. Seguindo o mesmo exemplo da consulta XPath //pessoa, o usuário precisaria submeter uma consulta Prolog similar para que retorne os mesmos resultados. Neste caso, um exemplo de consulta Prolog que pode ser submetida é pessoa(_, NOME, FILHO). Essa consulta retorna todos os pares pai/filho da base de conhecimento, assim como a consulta original XPath //pessoa. Apesar da consulta Prolog ser potencialmente mais rápida, os processadores de consultas atuais não implementam a execução de consultas em linguagem de programação lógica de forma automática, obrigando o usuário a alternar entre os dois ambientes para executar as consultas conforme a sua necessidade. A falta de integração entre os dois ambientes é a principal motivação deste trabalho, que propõe uma abordagem para que consultas que utilizam elementos da XQuery Core possam ser traduzidas de forma automática para consultas em Prolog. Como ponto de partida, o trabalho de Lima et al. (2012) é utilizado para aproveitar toda a etapa de geração de regras e fatos em Prolog que servirão de base para a execução das consultas Prolog. O restante do artigo do está estruturado da seguinte forma. A Seção 2 descreve a caracterização da contribuição. A Seção 3 apresenta o estado atual do trabalho. A Seção 4 apresenta os trabalhos relacionados e concluindo, a Seção 5 apresenta a proposta de avaliação dos resultados. 2. Caracterização da contribuição Com o objetivo de aproveitar o desempenho das consultas Prolog, este trabalho tem como proposta a apresentação de uma abordagem para tradução automática das consultas XQuery para Prolog e a conversão dos resultados obtidos pela consulta Prolog para o formato XML. Para o desenvolvimento da abordagem será utilizado o trabalho de Lima et al. (2012) para a geração da base fatos e regras Prolog. A abordagem da tradução é ilustrada na Figura 3. A submissão de uma consulta XQuery inicia o processo de tradução. Inicialmente, a consulta é submetida ao XQuery Parser, que, entre outras coisas, é responsável pela identificação de cada componente utilizado na consulta. Neste momento, são coletadas todas as informações necessárias à tradução. O esquema do documento XML é usado para apoiar o processo de tradução. A segunda etapa consiste na tradução da consulta XQuery. Para a tradução, são necessárias todas as informações enviadas pelo Parser e a consulta XQuery. Neste momento, o interpretador é acionado para possa ser gerada a consulta equivalente em Prolog. Uma vez traduzida, a consulta é submetida à máquina de execução Prolog. Em nosso protótipo, usamos a máquina TuProlog. A consulta é processada e os resultados são retornados. 15 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações Figura 3. Visão geral da abordagem A partir do momento em que os resultados das consultas Prolog foram retornados, inicia-se a conversão dos resultados gerados pela máquina Prolog. Todos os dados são processados e enviados para o módulo responsável pela transformação para o formato XML. Essa fase também é importante porque evita que as aplicações sejam modificadas para processar resultados de consultas Prolog. 3. Trabalhos relacionados Em 2006, Almendros-Jiménez et al. (2006) propôs um trabalho para conversão de documentos XML em fatos e o esquema em regras, como também uma abordagem para tradução de consultas XPath para linguagem de programação lógica. O autor apresenta uma abordagem chamada Magic sets que corresponde a um conjunto de transformações para que consultas XPath possam ser executadas em uma base de fatos e regras. Mais tarde, Almendros-Jiménez et al. (2008) propôs uma abordagem para implementar a linguagem de consulta XPath em linguagem de programação lógica. Além da abordagem para a realização de consultas, os autores apresentam o modo como geram a base de fatos e regras para executar as consultas e como criar índices de documentos XML em programação lógica. Utilizando a linguagem de consulta XQuery, Almendros-Jiménez et al. (2007) propôs uma integração da linguagem de consulta com a linguagem de programação lógica. Neste trabalho, é apresentada a técnica utilizada para converter consultas XQuery que utilizam for-let-where em expressões de linguagem de programação lógica e os dados são retornados no formato XML tradicional. Para finalizar, os trabalhos apresentados possuem um alto nível de conhecimento sobre a integração de linguagens consultas XML e linguagem de programação lógica. Também foram apresentas formas de indexação de fatos e regras para agilizar a execução das consultas. Porém, nenhum destes trabalhos apresenta experimentos para comprovar o desempenho da tradução. Como eles utilizam a tradução do documento 16 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações XML para um único fato e a utilização constante de listas nas consultas, ao contrário da abordagem de Lima et al.(2012), acreditamos que o desempenho da nossa abordagem seja superior e os resultado serão comparados com o trabalho do Almendros Jiménez. Pretendemos investigar essa questão em trabalhos futuros. 4. Estado atual do trabalho O objetivo principal da abordagem é traduzir consultas XQuery para consultas Prolog. O desenvolvimento do trabalho foi dividido em duas etapas: tradução da XPath, por ser um subconjunto da XQuery, e posteriormente, a tradução de operadores específicos da XQuery Core. Atualmente, a tradução da XPath encontra-se em andamento e o esquema do documento XML é utilizado para auxiliar na identificação dos elementos usados na XPath. Atualmente, a abordagem é capaz de traduzir consultas XPath que usam os operadores /, // e filtros. Os filtros podem ser realizados utilizando operadores lógicos AND e OR e composições de expressões. Baseado no documento da Figura 1, o protótipo desenvolvido traduz pequenas consultas XPath, como exemplo, //filho, //pessoa[nome = ’joão’] ou //pessoa[nome = ’joão’ or nome = ’pedro’]. No entanto, o protótipo apresenta algumas limitações como a falta de suporte às funções XPath (postion(), avg(), etc) e a filtros múltiplos na consulta. Por exemplo, a abordagem atual não é capaz de traduzir a consulta XPath //pessoa[position() mod 2]/filho[nome = ‘João’] para uma consulta equivalente em Prolog. Essas limitações serão tratadas durante o desenvolvimento do trabalho no mestrado. 5. Avaliação dos resultados A avaliação experimental da abordagem será baseada no protótipo construído durante o mestrado. A linguagem de consulta XQuery será utilizada como referência nas consultas realizadas e o tempo de execução será comparado com o das consultas traduzidas em Prolog. Além disso, os resultados gerados serão comparados com os que foram obtidos nos trabalhos relacionados do autor Almendros-Jimenez. A elaboração do plano de avaliação será cuidadosamente realizada e será dividida em etapas bem específicas para que os testes sejam executados da melhor forma possível. A primeira etapa consiste em gerar um documento XML para os testes. Para isso, será utilizado o benchmark XBench (YAO; OZSU; KHANDELWAL, 2004) que disponibiliza diversos tipos de documentos XML para testes. O documento utilizado para esta abordagem tem tamanho de 100 MB e o seu tipo é datacentric/single document (DC/SD). Após a geração do documento XML, será preciso gerar a base de fatos e regras em Prolog. Nesta etapa será utilizado o trabalho de Lima et al. (2012), no qual será fornecido o documento XML como entrada e a saída gerada será a base de fatos e regras Prolog. O benchmark XBench também disponibiliza para cada documento gerado, um conjunto de sugestões de consultas XQuery. Com isso, dois ambientes de testes podem ser criados, no qual o primeiro ambiente consiste na submissão direta das consultas XQuery no documento XML. Já, o segundo ambiente consiste na abordagem proposta 17 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações neste trabalho, no qual as consultas XQuery são submetidas ao protótipo e todas as fases de tradução, execução das consultas e conversão das respostas serão realizadas. Com a criação dos ambientes de teste, entra a fase de coleta dos tempos para cada consulta. A metodologia de execução e coleta dos tempos consiste no seguinte: executar cada consulta 11 vezes, descartando-se a primeira e coletando os tempos das demais execuções. Após a execução das consultas em cada ambiente, os tempos coletados serão analisados para avaliar o desempenho total. Pretende-se usar um processador XQuery em linha de comando (Galax), um SGBD XML nativo (Sedna), e três implementações diferentes de Prolog para a coleta dos tempos (tuProlog, YAP e SWI Prolog). Referências ALMENDROS-JIMÉNEZ, J.; BECERRA-TERÓN, A.; ENCISO-BANOS, F. Magic Sets for the XPath Language. Journal of Universal Computer Science, v. 12, n. 11, p. 1651-1678, 2006. ALMENDROS-JIMÉNEZ, J.; BECERRA-TERÓN, A.; ENCISO-BANOS, F. Integrating XQuery and Logic Programming. In: Applications of Declarative Programming and Knowledge Management. Heidelberg: Springer-Verlag Berlin, 2007. p. 117-135. ALMENDROS-JIMÉNEZ, J. M.; BECERRA-TERÓN, A.; ENCISO-BANOS, F. J. Querying XML documents in Logic Programming. Journal of Theory and Practice of Logic Programming, v. 8, n. 03, p. 323–361, 2008. BOAG, S. et al. XQuery 1.0: An XML Query Language (Second Edition). [S.l: s.n.]. CLARK, J.; DEROSE, S. XML Path Language (XPath) Version 1.0. Disponível em: <www.w3.org/tr/xpath>. Acesso em: 4 abr. 2012. FIGUEIREDO, G.; BRAGANHOLO, V.; MATTOSO, M. Processing Queries over Distributed XML Databases. Journal of Information and Data Management (JIDM), v. 1, n. 3, p. 455-470, 2010. LIMA, D. XMLInference: agregando inferência à consultas a dados XML. Rio de Janeiro, Brasil: Universidade Federal do Rio de Janeiro, 2012. LIMA, D. et al. Towards querying implicit knowledge in XML documents. Journal of Information and Data Management, v. 3, n. 1, p. 51-60, 2012. RODRIGUES, C.; BRAGANHOLO, V.; MATTOSO, M. Virtual Partitioning ad-hoc Queries over Distributed XML Databases. Journal of Information and Data Management, v. 2, n. 3, p. 495-510, 2011. SANTIAGO, C.; MACHADO, J. i-FoX: Um Índice Eficiente e Compacto para Dados XMLBrazilian Symposium on Databases (SBBD). Anais... In: BRAZILIAN SYMPOSIUM ON DATABASES (SBBD). Brasília, DF, Brazil: 2004 YAO, B. B.; OZSU, M. T.; KHANDELWAL, N. XBench benchmark and performance testing of XML DBMSsIEEE International Conference on Data Engineering (ICDE). Anais...Boston, United States: 2004 18 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações Semantic-based Query Routing for PDMS Crishane Freire1,2, Damires Souza2, Ana Carolina Salgado1 1 2 Center for Informatics, Federal University of Pernambuco (UFPE) - Recife, Pernambuco - Brazil Federal Institute of Education, Science and Technology of Paraiba (IFPB) - João Pessoa, Paraíba - Brazil {crishane, damires}@ifpb.edu.br, {caf4, acs}@cin.ufpe.br Nível: Doutorado Ano de ingresso no programa: Agosto de 2009 Exame de qualificação: Abril de 2012 Época esperada de conclusão: Julho de 2013 Abstract. Query routing is a key issue in dynamic distributed environments such as Peer Data Management Systems (PDMS). The dynamicity of the environment and the amount of heterogeneous and autonomous data sources available in the system have made hard the task of finding relevant results to user queries. We argue that the semantic knowledge around this process is rather important to select the most relevant peers to send a query and produce results which best meet the users’ needs. To achieve and deal with such knowledge, we combine two important aspects: semantic information and information quality. In this light, we present a semantic-based query routing approach for PDMS and highlight important issues related to this problem. Keywords Query Routing, Semantic Information, Information Quality, Peer Data Management System. 19 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 1. Introduction The increasing use of the Web and the development of communication infrastructures have led to a demand for high-level integration of distributed, autonomous and heterogeneous data sources. This fact caused the appearance of diverse distributed environments such as Peer Data Management Systems (PDMS) [Souza et al. 2011; Kantere et al. 2009]. In a PDMS, data sources (peers) are connected with each other through a set of semantic mappings in such a way that peers directly connected are called semantic neighbors. In this light, query answering in a PDMS means to provide capabilities of answering a query considering that such query is submitted over one of the peers and there is a set of mappings between the peer and each one of its neighbors. A key issue in query answering in PDMS regards query routing. Query routing is defined as the process of identifying the most relevant peers among the ones available in the network that are most likely to provide matching results according to the semantics of a submitted query. This process is not easy due to the large number of peers, the dynamic setting and the heterogeneity of the sources that compose the system. During query routing, some conditions such as peers’ unavailability or even a poor history of answers are important criteria that may be considered in the peer selection or in the estimated routing paths. In our work, we argue that the semantic knowledge produced by combining both semantic information and Information Quality (IQ) can be used in order to improve the query routing process. The idea is that the obtained semantic knowledge may reduce the query search space by considering only peers that may contribute with relevant answers, i.e., answers that match the semantics of the submitted query as well as the user preferences. This paper is organized as follows. Section 2 introduces some important concepts related to this work; Section 3 presents our main contributions. The related works are discussed in Section 4, and Section 5 describes the current stage of the work. 2. Fundamental Concepts This section introduces some concepts underlying this work, particularly PDMS and the query routing problem, semantic information and IQ. 2.1. PDMS and the Query Routing Problem In PDMS, queries submitted at a peer are answered with data residing at that peer and with data that is reached through mappings that are propagated over the network of neighbor peers. Therefore, the query routing problem in PDMS occurs every time a peer receives a query and has to decide, based on its local knowledge, to which of its semantic neighbors it should forward the query. To avoid flooding, i.e., the query propagation among the entire network of peers, it is important to develop a process that may select relevant peers based on the circumstances that surround the process on the fly. The circumstances regard the entities around the activities that compose the process, for example, the submitted query and its semantics, the available peers, the user preferences, the existing mappings among the peer schemas, and all the factors that can be acquired at each step of the process. 20 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 2.2. Semantic Information In general, semantics is the study of meanings of the message underlying the words or underlying certain elements that need to be interpreted in a given task or situation [Souza et al. 2011]. Due to the heterogeneity and to the dynamicity of a PDMS setting, the use of semantics in the form of ontologies and context has proven to be helpful in tasks such as query answering and peer clustering. In this work we are mainly interested in semantic information provided by context. We define Context as a set of elements surrounding a domain entity of interest (e.g., user, query, and peer) which is considered relevant in a specific circumstance during some time interval [Souza et al. 2011; Vieira et al. 2010]. Vieira et al. (2011) makes a distinction between the concepts of contextual element (CE) and context. The former is any piece of data or information that enables to characterize an entity in a domain. The latter is the set of instantiated contextual elements that are necessary to support an activity at hand. Contextual elements may improve the semantic interpretation of an entity by restricting or modifying the meaning of an element according to a circumstance [Souza et al. 2009]. Regarding query routing, the contextual information is related to any information that may influence the process activities such as query execution, peers selection, query reformulation, query forwarding and query results presentation. 2.3. Information Quality The notion of IQ has emerged during the past years and shows a steadily increasing interest [Duchateau and Bellahsene 2010; Roth and Naumman 2007]. IQ is usually characterized by multiple dimensions or criteria, where each one captures a high-level aspect of quality. The role of each one is to assess and measure a specific IQ criterion [Wang and Strong 1996]. For our purposes, we will use the general definition of IQ – ‘fitness for use’ - which encompasses the aspects of quality. In dynamic distributed environments such as PDMS, IQ has received significant attention in the literature over the past decade. There are two major reasons for that (a) the phenomenal growth of information sources available for query, and (b) the highly accessible nature of this information by a diverse set of users [Arazy and Kopak 2011]. PDMSs are vulnerable to poor IQ in some aspects such as [Herschel and Heese 2005; Roth and Naumman 2007]: peer (data source), peer schema, mappings, data and query answers. In fact, considering a PDMS, quality criteria can give trust to the system and enhance its processes. In query routing process, for example, peer quality measures such as relevancy and reputation can be used as a choice parameter to select the best peers to forward a given query. 3. Contributions In this section, we present the main contributions of this work regarding a query routing process and a model to represent information quality and contextual information in order to improve relevant peers’ selection. 21 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 3.1. A Semantic-based Query Routing Process The goal of the process is to select the best set of peers that are able to answer a submitted query. Thus, during the process, each peer that receives a query accomplishes the following activities: • • • • • Query Execution - executes the query locally and stores the query answer in a result list maintained by itself; Peer Selection - identifies candidate peers from its semantic neighbors and selects relevant peers (i.e., target peers) from the set of candidate peers based on contextual information of domain entities (user, query and peer); Query Reformulation - reformulates the query to each relevant peer considering the target peer schema and the acquired contextual information [Souza et al. 2009]; Results Integration – integrates the result list received from its neighbor peers; Query Forwarding - forwards the query to the chosen target peers preserving the contextual information acquired in the process. A TTL (Time-To-Live) mechanism based on time unit and semantic information will be defined to limit the query routing process. When the TTL is reached, the result list maintained by the current peer is integrated and its result is routed back, following the reverse path of the received query. In our approach, the semantic information and IQ are used in order to make the process decisions more specific. Thus, in each process activity, the circumstances that surround the system entities (e.g., peers) are analyzed in two perspectives: context and IQ. Three types of context are considered: (i) the user context, provided by his profile and defined preferences; (ii) the query context, acquired through its semantic analysis and (iii) the peer context, identified by peer availability and the associated quality criteria. Regarding IQ, there are some criteria which have been considered and specified as follows: (i) Reputation: concerns the degree to which the information of a source is in high standing. In our approach the reputation criterion can be assessed by calculating the percentage of queries answered and queries not answered by a peer in a given time interval; (ii) Relevance: refers to the suitability of data to queries submitted by users. Usually, this criterion is subjective and user-dependent, since only the user can determine whether something is relevant or not. Mandreoli et al. (2009) considers relevance as a measure of semantic similarity between the query concepts and the concepts existing in target peer schema. In our work, we extend this definition, allowing the user to set weights (importance scores) to each concept that is being queried in a given query; (iii) Query Degradation: we define the concept of query degradation by extending the concept of semantic loss presented in Delveroudis and Lekeas (2007). The query degradation criterion is a metric obtained by the product of the percentage of concepts that may not be lost in a query reformulation process of query Q from peer Pi to peer Pj and the mean of similarity scores between the concepts queried in Q and the concepts present in a target peer Pj. In the routing process, for each candidate peer Pm to forward the query (i.e., neighbor of the peer that receives a query), a global quality score (Global_IQ(Pm)) is calculated taking into account the defined quality criteria. A quality threshold will be defined to avoid query forwarding to peers that have a Global_IQ value below the threshold. 22 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações To help matters, Figure 1 depicts a query routing example scenario in a PDMS composed by six peers P1, P2, P3, P4, P5 and P6. In this scenario, suppose that a query Q has been submitted mitted at peer P1 and that the system quality threshold value is 7.0. 7.0 After receiving the query, P1 executes it and must select the relevant peers to send the query based on the circumstance that surrounds surround the system entities at runtime. runtime Thus, the context (of user, query, peer) and IQ of neighbor peers are analyzed.. Considering that th P3 is unavailable and the relevance values of P2 and P4 are above the quality threshold, threshold the query Q is reformulated (QR12, QR14) and forwarded only to peers P2 and an P4. In the same way, after receiving ing the query, P4 executes the query and, and based on the circumstance, decides to forward the reformulated query (QR46) only to P6 because P5 has a relevance value below the quality threshold. threshold At each peer that receives a query, the query answers (QAij) are integrated and routed back to the peer that sent the query. This activity will be repeated until reaching reach the peer that originated the query. query Figure 1: An A Example Scenario for Query Routing 3.2. A Model to Represent Semantic Information and Information Quality In order to allow semantic information and IQ usage, it is important to define how these related concepts are represented and (possibly) persisted. For this purpose, we have used the metamodel presented in Souza et al. (2012). Such metamodel has been developed as a way to provide constructors that can combine semantic information (e.g., ontological and contextual information), and Information Quality (IQ) provided by IQ measurements. By combining such concepts, it aims to produce semantic knowledge to be used in data integration settings. The defined define meta-constructors constructors (i.e., meta-concepts) meta can be reused in other models for specific purposes. In our proposal, we have generated a model for the query routing process based on such metamodel constructors. Figure 2 depicts the model with its main concepts and the relationships among them. The concepts and relationships which are identified by the prefix meta belong to the metamodel and are being reused in this model. 23 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações Figure 2. Model to Query Routing Process The main concepts underlying the model that are reused from the metamodel are Semantic_Information and Information_Quality, subconcepts of Information. In this work, the former concerns information provided by Contextual_Information. The latter concerns information obtained through IQ metrics. Information_Quality is composed by a set of criteria (Quality_Criterion) such as Relevance, Query_Degradation and Reputation. The concept Measure concerns the values provided by quality criteria metrics (Metric). A domain entity is anything in the real world that is relevant to describe the domain of interest. In our process, we determined three domain entities: peer, query and user. Also, we defined which Process would be the most important in our setting. The query routing process has been defined as the one of our interest. Query execution, peer selection, query reformulation, results integration and query forwarding are activities belonging to the query routing process. For the sake of simplicity, only the peer selection activity is represented in the model. Element is used to characterize a Domain_Entity. Quality measures and contextual elements are types of element. Elements under a given circumstance which are considered as relevant become contextual elements. Peer_Availability and Global_IQ represent contextual elements that are acquired at runtime. Peer_Availability indicates if the peer is available to receive a query and Global_IQ represents the final IQ score obtained from peer quality criteria assessment. Semantic_Knowledge concerns the knowledge obtained from the contextual elements and domain entities that compose the circumstance of an instantiated activity at hand. 24 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 4. Related Work Despite the fact that there are a lot of researches showing the importance of IQ for the improvement of query answering in PDMS [Green et al. 2010, Heese et al. 2005], only few works discusses the use of IQ aspects and contextual information specifically in query routing. Zhuge et al. (2005) deals with data inconsistency proposing a Quality of Peers (QoP) method. They also propose methods based on the notion of routing graphs for estimating query completeness. System P [Roth and Naumann 2007] provides a completeness-driven query planning. Its objective is to forward queries by considering peers and mappings that promise large result sets and mappings with low information loss. Herschel and Heese (2005) use a PDMS architecture [Heese et al. 2005], which extends the classical PDMS along three dimensions (Quality, Web and Semantics), enabling more efficient lookup of information sources and improving query routing. Other works offer a dynamic approach for clustering peers in semantic groups by using IQ [Löser et al. 2003] and IQ and contextual information [Montanelli et al. 2010] in order to create a search space for query. Different from the referred works, our approach defines a set of quality criteria (reputation, relevance, query degradation) and contextual information (e.g., user preferences, peer availability) to be used in a combined way to enhance query routing processes. It also presents a model to represent these concepts that will be used in the approach development. 5. Current Stage of the Work At this moment, we are working on the formalization of the specified query routing process. A quality threshold will be defined to be used as a reference during the selection of relevant neighbor peers. The model defined to represent IQ and semantic information will be refined by specifying some rules/axioms for the inference of the semantic knowledge. To evaluate our proposal some experiments will be accomplished in a semantic-based PDMS, named SPEED [Pires et al. 2009]. References Arazy, O. and Kopak, R. (2011) “On the Measurability of Information Quality”. In Journal of the American Society for Information Science, v. 62, n.1, p. 89-99. Delveroudis, Y. and Lekeas, P. V. (2007) “Managing Semantic Loss during Query Reformulation in PDMS”. In SWOD IEEE, p.51-53. Duchateau, F. and Bellahsene, Z. (2010) “Measuring the Quality of an Integrated Schema”. In Conceptual Modeling – ER 2010, Lecture Notes in Computer Science, 2010. Green, J., Ives, Z.G. and Tannen, V. (2010) “Provenance in ORCHESTRA”. In IEEE Data Eng. Bull, v.33, n.3, p. 9-16. Heese, R., Herschel, S., Naumann, F. and Roth, A. (2005) “Self-extending Peer Data Management”. In Proceedings of the Datenbanksysteme in Business, Technologie und Web, v.65 of LNI. 25 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações Herschel, S. and Heese R. (2005) “Humboldt Discoverer: A Semantic P2P index for PDMS”. In Proceedings of the International Workshop Data Integration and the Semantic Web. Porto, Portugal. Kantere, V., Tsoumakos D., Sellis T. and Roussopoulos N. (2009) “GrouPeer: Dynamic Clustering of P2P Databases”. Information Systems Journal, v. 34, n. 1, p. 62–86. Löser, A., Wolpers, M., Siberski, W. and Nejdl, W. (2003) “Semantic Overlay Clusters within Super-Peer Networks”. In Proceedings of P2PDBIS. Berlin, Germany. Mandreoli, F., Martoglia, R., Penzo, W. and Sassatelli, S. (2009) “Data-sharing P2P Networks with Semantic Approximation Capabilities”. In IEEE Internet Computing, p. 60-70. Montanelli, S., Bianchini, D., Aiello, C., Baldoni, R., Bolchini, C., Bonomi, S., Castano, S., Catarci, T., Antonellis, V., Ferrara, A., Melchiori, M., Quintarelli, E., Scannapieco, M., Schreiber, F. and Tanca, L. (2010) “The ESTEEM platform: enabling P2P semantic collaboration through emerging collective knowledge”. In Journal of Intelligent Information Systems. v. 36, n. 2. Pires, C. E., Souza, D., Kedad, Z., Bouzeghoub, M., and Salgado, A. C. (2009) “Using Semantics in Peer Data Management Systems”. In Colloquium of Computation: Brazil/INRIA, Cooperations, Advances and Challenges (Colibri’09), Bento Gonçalves, Brazil. Roth, A. and Naumann, F. (2007) “System P: Completeness-driven Query Answering in Peer Data Management Systems”. In BTW, p. 1-4, Aachen, Germany. Souza, D., Arruda, T., Salgado, A. C., Tedesco, P. and Kedad, Z. (2009) “Using Semantics to Enhance Query Reformulation in Dynamic Environments. In Proc. of the 13th East European Conference on Advances in Databases and Information Systems (ADBIS’09), Riga, Latvia, p. 78-92. Souza, D., Pires, C. E., Kedad, Z., Tedesco, P. and Salgado, A.C. (2011) “A Semanticbased Approach for Data Management in a P2P System”. In LNCS Transactions on Large-Scale Data- and Knowledge-Centered Systems. Souza, D, Lóscio, B. F. and Salgado, A. C. (2012) “Combining Semantic Information and Information Quality on the Enrichment of web Data”. In: 8th International Conference on Web Information System and Technologies. (WEBIST), Porto, Portugal . Tanca, L., Bolchini, C., Quintarelli, E., Schreiber, F. A., Milano, P. and Orsi, G. (2011) “Problems and Opportunities in Context-Based Personalization”. In Proc. of the VLDB Endowment, v. 4, n. 11, p.10-13. Vieira, V., Tedesco, P. A. and Salgado, A. C. (2011) “Designing context-sensitive systems: An integrated approach. In Journal Expert Systems with Applications, v.38, n.2, p. 1119-1138 Wang, R. and Strong, D., (1996) “Beyond Accuracy: What Data Quality Means to Data Consumers”. Journal of Management Information Systems, v. 12, n. 4, p. 5-33. Zhuge, H., Liu, J., Feng, L., Sun, X., and He, C. (2005) “Query Routing in a Peer-ToPeer Semantic Link Network”. In Computational Intelligence, v. 21, n.2, p. 197-216. 26 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações Reescrita de Consultas em Federações de Dados Interligados usando uma Abordagem payasyougo para a Descoberta de Correspondências Danusa Ribeiro B. da Cunha, Bernadette Farias Lóscio Centro de Informática (CIn) Universidade Federal de Pernambuco (UFPE) Recife – Pernambuco – Brasil {drbc, bfl}@cin.ufpe.br Nível: Mestrado Ano de Ingresso no programa: 2012 Época esperada de conclusão: Março de 2014 Resumo De uma maneira geral, podemos dizer que a Web de Dados consiste de vários conjuntos de dados de domínios diversos passíveis de serem acessados por consultas SPARQL e interligados por meio de links RD F. Na Web de Dados, cada conjunto de dados pode estar associado a uma ontologia que, em geral, desempenha o papel do esquema da fonte de dados. Neste ambiente, se uma aplicação necessita consultar diferentes conjuntos de dados sem ter que formular uma nova consulta para cada um deles, pode ser necessário lidar com o problema de reescrita de consultas entre conjuntos de dados distintos e heterogêneos. Para realizar a reescrita entre os diversos conjuntos é necessário estabelecer correspondências entre eles levando-se em consideração os diversos tipos de heterogeneidade existentes. Neste contexto, nosso trabalho se propõe a realizar a reescrita de consultas em federações de dados interligados, onde as correspondências entre os esquemas (ontologias) dos conjuntos participantes da federação serão descobertas de forma incremental. Especificamente, fazemos uso de uma abordagem pay-as-you-go para descoberta de correspondências, a qual utiliza propriedades como owl:equivalentClass, owl:equivalentProperty e owl:sam eAs encontradas nas ontologias dos conjuntos de dados para a identificação das correspondências . Palavras-Chave Web Semântica, Linked Data, Web de Dados, Reescrita de Consulta, Pay-asyou-go, Dados interligados 27 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 1. Introdução e Motivação Ao longo dos anos, diferentes abordagens para integração de dados tem sido propostas, incluindo sistemas convencionais de integração de dados [Halevy et al. 2006a; Lóscio 2003], Sistemas de Gerenciamento de Dados P2P (PDMS) [Herschel & Heese 2005] e Dataspaces [Franklin et al. 2005]. Os sistemas de integração de dados convencionais, baseados na arquitetura de mediadores ou na arquitetura de Data Warehouse, caracterizam-se por ter um elevado custo nos estágios iniciais de implantação, uma vez que sua utilização requer a definição do esquema global (esquema de integração ou esquema de mediação) e do conjunto de correspondências (mapeamentos) entre o esquema global e os esquemas locais a serem integrados. Os PDMSs e os Dataspaces, por outro lado, caracterizam-se por adotar uma abordagem mais flexível e de maior escalabilidade que os demais. Independente da abordagem adotada, um dos principais desafios a serem solucionados quando se deseja oferecer uma visão integrada de dados distribuídos em múltiplas fontes de dados diz respeito à reescrita de consultas. Em sistemas que fazem uso de um esquema de mediação, o problema de reescrita de consultas consiste em como decompor uma consulta definida de acordo com o esquema de mediação em uma ou mais consultas a serem executadas nas fontes de dados locais. Um componente fundamental para a reescrita de consultas em tais sistemas de integração de dados é o conjunto de mapeamentos entre o esquema global e os esquemas locais. Tendo em vista que os esquemas podem ser complexos e heterogêneos, um dos grandes gargalos das soluções convencionais de integração de dados consiste em descobrir esses mapeamentos, pois esse processo geralmente é feito de forma manual ou semiautomática, demandando um elevado custo durante a inicialização do sistema. Neste trabalho, estamos interessados no problema de reescrita de consultas no contexto de integração de dados na Web de Dados [Bizer et al. 2009], onde as fontes de dados são conjuntos de dados RDF, os quais podem ser acessados a partir de consultas SPARQL e podem estar associados a uma ontologia que, em geral, desempenha o papel do esquema da fonte de dados. Em outras palavras, a integração de dados na Web de Dados diz respeito a prover uma visão integrada de dados distribuídos em diferentes conjuntos de dados RDF, interligados entre si e acessíveis por meio de consultas SPARQL. É importante destacar que, dada a natureza do ambiente, não devemos esperar que uma estratégia de reescrita seja aplicada sobre toda a Web de Dados, por questões de escalabilidade. Especificamente, neste trabalho propomos uma solução para o problema de reescrita de consultas em federações de conjuntos de dados interligados disponíveis na Web, ou seja, conjuntos de dados publicados de acordo com os princípios de Linked Data [Bizer et al. 2009]. De acordo com [Lóscio 2003], uma federação de dados é uma coleção de sistemas de bancos de dados cooperantes e autônomos que participam da federação para permitir um compartilhamento parcial e controlado de seus dados. Neste tipo de ambiente, se uma aplicação necessita consultar diferentes conjuntos de dados sem ter que formular uma nova consulta para cada um deles, pode ser necessário lidar com o problema de reescrita de consultas entre conjuntos de dados distintos e heterogêneos. Para solucionar tal problema, o foco do nosso trabalho é propor, implementar e validar uma abordagem para reescrita de consultas em federações de dados interligados, onde as correspondências entre os esquemas dos conjuntos de dados participantes da federação serão geradas de forma incremental, podendo, além disso, sofrer refinamentos em tempo de execução. 28 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 2. Fundamentação Teórica O termo Linked Data refere-se ao conjunto de melhores práticas para a publicação de dados estruturados na Web com o objetivo de criar uma Web de Dados. Tais práticas foram introduzidas por Tim Berners-Lee em [Bizer et al. 2009], são elas: (i) o uso de URIs para identificação dos recursos da Web; (ii) a utilização de tecnologias, tais como RDF e SPARQL, para descrição e realização de consultas sobre estes recursos, respectivamente; (iii) o reaproveitamento de URIs, de forma que seja possível estabelecer ligações entre os dados e facilitar a navegação entre eles. De acordo com [Bizer et al. 2009], a adoção das melhores práticas de publicação de dados ligados facilita a descoberta de informações relevantes para a integração de dados entre diferentes fontes, onde a integração destas fontes, expressas em RDF, é possível através da reescrita de consultas utilizando a linguagem SPARQL. 3. Caracterização da Contribuição Neste trabalho, propomos uma solução para o problema de reescrita de consultas no contexto de aplicações que oferecem acesso integrado a múltiplos conjuntos de dados interligados disponíveis na Web. Em nossa abordagem, consideramos a existência de um esquema de mediação, o qual deverá fornecer uma visão integrada dos dados, independente da localização e representação dos mesmos. Tanto o esquema de mediação quanto os conjuntos de dados têm uma ontologia representando seu esquema. A primeira é chamada de ontologia de mediação e as demais de ontologias locais. Além disso, assumimos a existência de correspondências entre o esquema de mediação e os esquemas dos conjuntos de dados participantes da federação. Estas correpondências são necessárias para permitir que dados, existentes nas múltiplas fontes de dados, sejam consultados por meio do esquema de mediação. Especificamente, propomos uma solução de reescrita que adota uma abordagem pay-as-you-go, ou seja, uma abordagem incremental, para a descoberta de correspondências entre os conjuntos de dados e o esquema de mediação da aplicação. Sendo assim, as correspondências necessárias para o processo de reescrita de uma consulta Q serão identificadas no momento da execução da consulta e de acordo com os conceitos que estão sendo consultados por Q . Neste caso, não será necessário conhecer previamente todas as correspondências entre os esquemas. O processo de descoberta de correspondências adotado neste trabalho consiste em realizar uma busca nas ontologias da federação (ontologias locais e de mediação) a fim de identificar propriedades como owl:equivalentClass, owl:equivalentProperty, rdfs:subClassOf , rdfs:subPropertyOf e owl:sa meAs, pois a partir destas poderemos estabelecer correspondências entre classes, propriedades e recursos dos conjuntos de dados com o esquema de mediação, utilizando-as no processo de reescrita de consultas. Dessa forma, reduziremos a complexidade do processo de identificação de correspondências entre os esquemas, uma vez que faremos uso de correspondências já definidas nas próprias ontologias participantes da federação. Além disso, com o uso da propriedade owl:sa meAs será possível resolver conflitos como os de sobreposição de URIs, ou seja, diferentes URIs fazendo referência a uma mesma entidade do mundo real. Neste trabalho, definimos uma federação de dados interligados I como uma tripla I = {S, M, C }, onde, S = {s1 ,...,sn} é um conjunto de dados interligados; M é o esquema de mediação; C = {c1 ,...,cn} é um conjunto de correspondências entre M e cada um dos conjuntos de dados participantes da federação, tal que c i é o conjunto de correspondências entre os conceitos de si e os conceitos de M. Sendo assim, dada uma federação de dados interligados I = {S, M, C}, neste trabalho estamos interessados em propor uma solução para o seguinte problema: dada uma consulta Q submetida em I de acordo com o esquema 29 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações de mediação M, como decompor Q em uma ou mais consultas a serem executadas sobre um ou mais conjuntos de dados c i considerando que nem todas as correspondências necessárias para a reescrita de Q estão disponíveis em C ? De maneira geral, o processo de reescrita de consultas proposto neste trabalho consiste das seguintes etapas: (i) ext ração dos termos da consulta: onde são extraídos os padrões de triplas da consulta submetida juntamente com os termos usados em cada padrão de tripla; (ii) busca de correspondências: de posse dos padrões de triplas, será realizada uma busca por correspondências existentes entre os termos da consulta e os termos das ontologias dos conjuntos de dados da federação; (iii) identificação de novas cor respondências: caso a etapa (ii) retorne vazia, será estabelecida, de maneira incremental, as correspondências entre o esquema de mediação e cada conjunto de dados que responde a consulta; iv) geração de subconsultas: feita a identificação das correspondências, novas consultas são criadas para serem submetidas aos conjuntos de dados que tiveram alguma correspondência identificada no passo anterior e v) integração dos resultados: será feita por meio do processo de fusão de dados, levando em consideração que esses dados serão apresentados de acordo com o esquema de mediação. Para ilustrar a abordagem proposta, considere o cenário descrito a seguir. Seja I uma federação de dados interligados construída sobre o domínio de dados bibliográficos, tal que S = {DBLP1, ACM2, DBpedia3}, M é uma ontologia de mediação onde parte dela está descrita em (a) da Figura 1 e cuja hierarquia de classes é apresentada em (b), e C é o conjunto de correspondências, inicialmente vazio, pois as correspondências serão identificadas em tempo de execução. C lasse Publication Person University Propriedades Identifier, Title, Abstract Name, Biography, HomePage, Author Name, Address, Country (a) (b) Figura 1. (a) Classes e Propriedades da ontologia de aplicação; (b) hierarquia de classes da ontologia de aplicação Seja a consulta q1 : “Retorne os títulos dos artigos publicados pelo autor Alon Y. Halevy. Além disso, recupere a homepage do autor bem como uma breve apresentação sobre o mesmo”. A consulta q1 , em SPARQL, de acordo com os termos da ontologia de mediação é apresentada a seguir: SELECT ?title, ?homepage, ?bio WHERE { ?publication Title ?title . ?publication Author ?author . ?author HomePage ?homepage . ?author Biography ?bio . ?author Name “Alon Y. Halevy” . } 1 http://dblp.rkbexplorer.com/ 2 http://acm.rkbexplorer.com/ 3 http://dbpedia.org/About 30 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações O passo inicial do processo de reescrita consiste em extrair os termos da consulta q1. Neste caso, são extraídos os seguintes termos {Title, Author, HomePage, Biography e Name}. Em seguida, devem ser identificadas as correspondências entre estes termos e os termos presentes nas ontologias dos conjuntos de dados da federação. A Tabela 1 apresenta as correspondências que foram identificadas em tempo de execução a partir da análise das propriedades de equivalência de classes e propriedades da ontologia de mediação (esquema de mediação) e das demais ontologias da federação. Tabela 1. Correspondências entre Esquema de Mediação e Conjuntos de Dados da Federação Ontologia de Domínio Name Biography HomePage Title ACM akt:full‐name ‐ ‐ akt:has‐title DBLP akt:full‐name ‐ ‐ akt:has‐title DBpedia dbpedia:name, foaf:surname, foaf:givenName rdf:comment foaf:page, foaf:homepage ‐ Uma vez identificadas as correspondências, a consulta q1 é então reescrita em três consultas qr1 , qr2 e qr3 sobre os conjuntos de dados ACM, DBLP e DBpedia. A Tabela 2 apresenta as três consultas reescritas juntamente com os respectivos resultados. Tabela 2. Consultas Reescrita e seus respectivos resultados Consulta qr1 Resultado PREFIX akt:<http://www.aktors.org/ontology/portal#> PREFIX akts: <http://www.aktors.org/ontology/support#> SELECT DISTINCT ?title WHERE { ?publication akt:has‐title ?title . ?publication akt:has‐author ?author . ?author akt:full‐name "Alon Y. Halevy".}Limit 5 Consulta qr2 PREFIX akt: <http://www.aktors.org/ontology/portal#> PREFIX akts: <http://www.aktors.org/ontology/support#> SELECT DISTINCT ?title WHERE { ?publication akt:has‐title ?title . ?publication akt:has‐author ?author . ?author akt:full‐name "Alon Y. Halevy".}Limit 5 Consulta qr3 PREFIX foaf: http://xmlns.com/foaf/0.1/> PREFIX dbpedia: <http://dbpedia.org/resource/> SELECT DISTINCT ?homepage, ?bio WHERE { ?y foaf:page ?homepage . ?y rdf:comment ?bio . ?y foaf:givenName “Alon Y.”} Binding Value 1 2 3 4 ?title ?title ?title ?title Guest Editorial Answering queries using views Queries independent of updates Logic‐based techniques in data… 5 ?title MiniCon: A scalable algorithm … 1 2 3 4 Binding ?title ?title ?title ?title Resultado Value Equivalence, Query‐Reachability … Constraints and Redundancy in… Exploiting Irrelevance… Queries Independent of Updates. 5 ?title Query Optimization by… Binding Value 1 ?homepage ?bio http://en.wikipedia.org/wiki/Al on_Y._Halevy Alon Yitzchack Halevy is.. Resultado Por fim, os resultados serão integrados por meio de um processo de fusão de dados [Mendes et al. 2012]. Esse resultado será apresentado para o usuário de acordo com os termos do esquema de mediação. Parte do resultado integrado pode ser visto na Figura 2. Biography HomePage Title Alon Yitzchack Halevy is a renowned Israeli‐American computer scientist and a leading researcher in the area of data integration. … http://en.wikipedia.org/wiki/Alon_Y._Halevy Guest Editorial, Answering queries using views, Queries independent of updates… Figura 2. Resultado Final Integrado 4. T rabalhos Relacionados A literatura apresenta diversos trabalhos que abordam questões relacionadas a nossa proposta como, por exemplo [Markis et al. 2012] e [Lee et al. 2010]. O primeiro realiza a reescrita de consultas SPARQL entre duas ontologias com o objetivo de integrar dados RDF e o último aplica a reescrita de consultas SPARQL sobre conjuntos Linked Data. Ambos trabalham com mapeamentos homogêneos, sem funções e com operações de comparação sobre a ontologia fonte. Diferentemente dessas abordagens, nosso trabalho realizará a reescrita de consultas em federações de dados interligados, considerando a existência de múltiplas ontologias heterogêneas e distribuídas. Além disso, como principal 31 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações diferencial, estamos estudando a viabilidade de utilizar uma abordagem pay-as-you-go para a geração de correspondências entre as ontologias para estabelecer os mapeamentos necessários que deverão ser utilizados na reescrita. 5. A valiação dos Resultados e Estado A tual do T rabalho A validação da abordagem proposta neste trabalho inclui a implementação de um protótipo, juntamente com a realização de um conjunto de experimentos, a fim de avaliar tanto a geração das correspondências sob demanda quanto a reescrita de consultas SPARQL aplicada ao cenário de federação de dados interligados. Atualmente, estamos investigando como será feita a geração de correspondências em tempo de execução, bem como o processo de reescrita propriamente dito. Além disso, estamos definindo o cenário para a realização de um estudo de caso aplicado no contexto de Linked Open Data . Ao final deste trabalho, as principais contribuições esperadas são: (i) um método para geração incremental de correspondências entre ontologias a partir do uso das propriedades owl:equivalentClass, owl:equivalentProperty, rdfs:subClassOf , rdfs:subPropertyOf ; (ii) a especificação do processo de reescrita de consultas SPARQL em federação de conjuntos de dados interligados e (iii) a implementação de um protótipo para validação das abordagens propostas. Referências [Bizer et al 2009] Bizer C., Heath T., Berners-Lee T. (2009) Linked data - the story so far. Int. J. Semantic Web Inf. Syst, 2009. [Franklin et al. 2005] Franklin, M., Halevy, A., Maier, D. “From Databases to Dataspaces: A New Abstraction for Information Management”. In: SIGMOD ’05: ACM SIGMOD international conference on Management of Data (2005) . [Halevy et al. 2006a] Halevy, A., Rajaraman, A., Ordille, J.: “Data integration: the teenage years”. In: VLDB’06: 32nd International Conference on Very Large Data Bases, ACM (2006). [Herschel & Heese 2005] Herschel, S., Heese, R. “Humboldt Discoverer: A Semantic P2P index for PDMS”. In: Proc. of the International Workshop Data Integration and the Semantic Web, Porto, Portugal, 2005. [Lee et al. 2010] Lee, J., Park, J. H., Park, M. J., Chung, C. W., Min, J. K. (2010). “An intelligent query processing for distributed ontologies”, Journal of Systems and Software, Volume 83, Issue 1, January 2010, Pages 85-95. [Lóscio 2003] Lóscio, B. F. “Managing the Evolution of XML-based Mediation Queries”. Ph.D. Thesis, Federal University of Pernambuco, Brazil, 2003. [Makris et al. 2012] Makris, K., Bikakis, N., Giodasis, N., Christodoulakis, S. (2012). “SPARQL-RW: Transparent Query Access over Mapped RDF Data Sources”. EDBT, 2012., Berlin, Germany. [Mendes et al. 2012] Pablo N. M., Hannes, M., Bizer, C. (2012). Sieve: linked data quality assessment and fusion. In Proceedings of the 2012 Joint EDBT/ICDT Workshops (EDBTICDT '12), ACM, New York, NY. 32 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações Towards Full-fledged XML Fragmentation for Transactional Distributed Databases Rebeca Schroeder1 , Carmem S. Hara (supervisor)1 Programa de Pós Graduação em Informática Universidade Federal do Paraná (UFPR) Caixa Postal 19.081 – 81.531-980 – Curitiba – PR – Brazil 1 {rebecas,carmem}@inf.ufpr.br Level: PhD Admission: 2010 Qualifying Exam: September 2012 (expected) Conclusion: February 2014 (expected) Steps completed: literature review and preliminary solution Future steps: complete solution and evaluation Abstract. In data distribution design, fragmentation has been widely applied to provide scalable and available database services. Recently, the advent of cloud computing and the dissemination of large-scale distributed systems have shown that the traditional solution for data distribution is not suitable. In this paper we tackle the fragmentation problem for transactional databases which are highly distributed. Our specific goal is to develop a fragmentation approach that avoids distributed transactions and, consequently, improve the system throughput and maximize storage. To this purpose, we analyze a transactional workload in order to pack the most correlated data in the same fragment or in a set of few fragments. We are particularly focused on the XML model since it is a flexible model to support several applications, including systems in the cloud. This paper presents the current state of our work, preliminary results of our contribution and future directions we intend to pursue. keywords: distribution design, fragmentation, XML, distributed transaction, cloud datastore, graph partitioning. 33 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 1. Introduction Cloud computing is transforming several aspects of computing and, mainly, providing new ways to deliver and handle services. Customers are attracted to on-demand services which may be available in real time and ready-to-go. Different service types are provided, from infrastructure to application services, including database as a service (DaaS). However, providing a full-fledged data management service for the cloud has not yet become a reality [Stonebraker et al. 2007, Agrawal et al. 2010]. The prospect of infinite storage capacity and processing power provided by the cloud has presented interesting new challenges to the database community and several open issues related to requirements of fundamental applications to the database industry [Abadi 2009]. The primary approach to leverage a scalable database service is through data fragmentation. By partitioning data and workload across a large number of sites, it is possible to speed up query processing, especially for OLAP systems where the goal is to maximize the intra-query parallelism. Many of these analytical systems have adopted cloud DBMSs that give up ACID guarantees in favor of availability and scalability [Stonebraker et al. 2007]. On the other hand, OLTP systems also need to be scalable but cannot give up transactions with strong consistency [Pavlo et al. 2012]. For these systems, the ability to provide transactions with ACID guarantees is closely related to the existence of a data fragmentation design which minimizes the execution of distributed transactions. Otherwise, it is hard to maintain strong consistency over data distributed across distant geographic sites. Moreover, distributed transactions add network messages, increase latency and, consequently, decrease throughput [Curino et al. 2010]. Even through it is not a new problem, the dissemination of cloud database systems has shown that the traditional solutions for data fragmentation are not enough [Pavlo et al. 2012, Yang et al. 2012]. In this paper, we tackle the fragmentation problem for XML data stored at distributed sites. XML may support several types of applications, including RDFbased systems [Abiteboul et al. 2011] and systems in the cloud [Abiteboul et al. 2008, 28msec 2012]. Most of the research efforts present heuristics for horizontal fragmentation of XML documents, especially for OLAP systems. They exploit simple selection predicates derived from the workload in order to generate fragments which maximize the intra-query parallelism [Cuzzocrea et al. 2009, Figueiredo et al. 2010]. They are based on partitioning methods where a fragment could be a document or a document subgraph. In general, XML documents are data-centric, and the semantics of data depends on the nested element structure. Thus, partitioning XML data involves fragmenting tightly-coupled documents which represent both the instance and the schema. We believe a finer-grained partitioning strategy must be provided to support more complex accesses over the schema, for example, structural joins. This kind of access pattern characterizes the main transactional workload for the database industry. We propose a workload-based approach for XML schema fragmentation. This schema-based strategy allows fragmenting data at design level, while avoiding exhaustive analysis at instance level. We adopt a graph-based technique where database items are represented by nodes and transactions are represented by edges connecting items accessed together by transactions. The goal of our fragmentation method is to find a fragmentation schema which minimizes the weight of cut edges while maximize storage. Intuitively, the cost of the cut edges is related to the number of distributed transactions. Hence, we 34 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações aim to minimize the execution of distributed transactions by placing the most related data in the same fragment. As our first effort, we present an approach to cluster related data items through a similar reasoning applied by vertical partitioning of relational databases. In addition, we state the future challenges we intend to pursue towards full-fledged XML fragmentation for transactional systems in highly distributed databases. The remainder of this paper is organized as follows. Section 2 highlights fragmentation issues and presents our proposal for XML fragmentation. In addition, we present preliminary results and work in progress for the thesis related to this work. Section 3 is dedicated to a comparative analysis of related work. We conclude in Section 4 by summarizing our preliminary contribution and future assignments. 2. XML Fragmentation In general, data distribution models support horizontal and vertical fragmentation. In relational databases, the horizontal approach generates fragments which have a subset of relation tuples, and the vertical fragmentation produces fragments which contain a subset of relation attributes. Most of the data distribution models for XML are analogous to the models for relational data. While vertical fragments are usually subtrees of an XML schema, there is no consensus about XML horizontal fragmentation. In [Figueiredo et al. 2010] and [Kling et al. 2010], horizontal fragments are sets of documents from an homogeneous collection of XML documents, whereas in [Gertz and Bremer 2003] and [Ma and Schewe 2010] they may be instances of elements or instances of subgraphs of the XML document. Fragmentation techniques are defined for specific workloads. For example, fragmentation approaches for analytical queries are focused on allowing parallel query scans over large datasets, especially through horizontal fragmentation [Cuzzocrea et al. 2009]. On the other hand, transactional workloads are usually supported by finer-grained partitioning to avoid distributed transactions. However, such fine-grained fragmentation has been supported by recent approaches that perform an exhaustive analysis on database instances [Curino et al. 2010, Pavlo et al. 2012, Yang et al. 2012]. Analyzing the whole database in a cloud infrastructure is hard and may be prohibitive. We are also focused on providing a fine-grained partitioning approach, however, our intention is to avoid such exhaustive process. We believe that an XML fine-grained fragmentation may be considered through a hybrid fragmentation process, where both vertical and horizontal techniques are applied. In this paper, we present our first effort in providing a suitable fragmentation approach for XML transactional systems in this context. Thus, our starting point is a vertical partitioning approach for XML schemas. Our vertical approach defines how an XML schema must be fragmented in order to cluster data items accessed together by transactions. This in turn determines how each XML document must be partitioned. Although an XML schema could represent a database with a few large XML documents, we are considering a context which is commonly found in enterprise applications: an XML database with many small XML documents [Chen et al. 2012]. It is also common in RDF datasets which usually have many small RDF files. Before introducing our vertical fragmentation approach, we present a definition for XML schema structures and the workload characterization method in the next section. 35 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações Figure 1. Structural Summary Figure 2. Affinity graph 2.1. XML Structure and Workload An XML schema is represented by a structural summary in which a directed cyclic graph models the set of XML elements and attributes. Figure 1 presents a structural summary where internal nodes represent XML complex elements and leaf nodes are attributes or simple elements. The parent-child relationships among nodes define the hierarchical structure for the schema, where article is the root element. We also annotate the graph with the storage size required for each node and the average number of occurrences expected for a subelement within its parent. For example, author is a multi-valued subelement of prolog, and each prolog instance contains 3 authors in average. The storage size of a leaf node consists of the expected size of their values. As an example, for the node email the expected storage size is 10. For an internal node, the size is given by the structure of its children, but not the actual values stored by them. In the example, contact consists of the storage size required for keeping a structure composed of email and phone. In our fragmentation approach, the number of occurrences and storage size are considered to pack data items in a given fragment size. We have defined a workload characterization method in order to relate data items according to a workload. These workload correlations are represented by an affinity graph. To this end, a node is created for each data item of the XML structure, where edges represent the usage of data items within a transaction. Thus, an edge connects two nodes if they are accessed by the same transaction. Edge weights denote the number of times the pair is accessed together. Figure 2 shows an affinity graph for the XML structure summary for a given workload. For a complete definition of our workload characterization method, please refer to [Schroeder et al. 2012]. Our goal is to generate an XML fragmentation schema by cutting an affinity graph. Figure 3 shows an example of fragmentation schema, where each fragment holds a subset of nodes of the affinity graph depicted in Figure 2. The strategy discussed in the next section heuristically minimizes the cost of the graph cut, while satisfying a storage threshold which represents the storage capacity for each fragment. Given that the cost of a graph cut is computed by the sum of the weights of the inter-fragment edges, our ultimate goal 36 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações Figure 3. Fragmentation schema Figure 4. Strongly correlated set is to pack the most correlated data items in the same fragment according to the workload. 2.2. Vertical Fragmentation for XML We propose a greedy algorithm where an XML structural summary is divided into multiple and disjoint fragments. Such algorithm, namely xAFFrag, has been proposed in [Schroeder et al. 2012] and introduces the concept of a strongly correlated set (scs) of nodes in order to identify suitable fragments. More specifically, scs(n) is defined for a node n in the XML structure and it determines which nodes have stronger affinity with n than with others in the graph. As an example, consider the connections of article with author and phone in Figure 4. According to our approach, author is in scs(article) because the edge (article,author) has the highest weight among all connections of author. On the other hand, phone is not in scs(article) given that its correlations with email and contact are stronger than with article. We denote by scs + the transitive closure of the scs relation. Computing scs for nodes in the schema is the basis of our fragmentation strategy. Given an affinity graph, we start processing edges in descending order of affinity weight. For example, if the graph of Figure 2 is considered as input, we must start by processing the edge (article, title) since it is the one with the highest weight. Thus, article and title are inserted in the first fragment, and we keep inserting nodes which are in scs+ (article). However, before inserting new nodes, we must check whether the fragment size exceeds the storage capacity for fragments in the system. We refer to this storage capacity as a storage threshold that is given as input to our process. In order to exemplify our algorithm, we consider that the storage threshold is set to 100. The size of a fragment is given by the sum of the expected number of occurrences of nodes multiplied by their sizes. For example, the size of the first fragment is set to 22 after the inclusion of article, title and prolog. Since we keep considering the scs + (article), we insert author and name and the size of the fragment is increased by 6 and 60, respectively. Observe that the multiple occurrence for author is considered to compute the storage size required for both nodes. Hence, the size for the first fragment is set to 88 and we stop to add nodes given that all nodes in scs + (article) were inserted. The same reasoning is applied to place all nodes in some fragment according to their scs and the storage threshold. After this initial step, the fragmentation schema generated is represented by Figure 3. Observe that even through section is in scs + (body), it is not assigned to the third 37 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações fragment. This is because the storage size required by section(800) would exceed the storage threshold. Thus, we assume that section generates a fragment by itself and each instance is assigned to a distinct fragment. Given that the query performance on distributed datastores has a direct correspondence with the number of data requests issued across the network, we also intend to minimize the number of fragments generated. In order to do so, the final step of xAFFrag algorithm maximizes storage by merging fragments if their sizes lie within the storage threshold. In our example, the size of fragments {contact, phone, email} and {body, abstract} are 66 and 31, respectively. Thus, they are merged and the final fragmentation schema generated is {{article, title, prolog, author, name}, {contact, phone, email, body, abstract}, {section}}. 2.3. Preliminary Results We have conducted an experimental study in a distributed datastore in order to determine the effect of our fragmentation approach by comparing xAFFrag to close related approaches. The first approach, namely MakePartition [Navathe and Ra 1989], is a traditional solution for vertical partitioning of relational databases which applies a similar reasoning based on affinity graphs. The second one, called XS, is a close related algorithm for fragmenting XML documents [Bordawekar and Shmueli 2008]. We apply the fragmentation approaches on the XML schema and workload provided by the XBench benchmark. From each approach, the XBench dataset was fragmented and stored in a cloud datastore. We execute XBench using six different cluster sizes of eight Amazon EC2 nodes allocated in a single region. In order to compare xAFFrag with XS and MakePartition, we have measured the system throughput and the query response time of a set of 11 XBench queries. The results showed that xAFFrag can improve query performance by 55% compared to XS. It shows that our approach is more effective in clustering related data in the same fragment. Besides, the system throughput achieved by xAFFrag is 22% higher than MakePartition, since our strategy to maximize storage decreases the number of requests issued across the network. Detailed information on the experiments can be found in [Schroeder et al. 2012]. 2.4. Horizontal Fragmentation for XML The horizontal partitioning is considered as our future step. The big challenge is to provide a non-exhaustive process to identify and represent selection operations in a big data environment. In order to support such operations, we intend to extend our graph model to represent affinities among sub-sets of data items. Thus, we can represent range of items accessed together and how they are related to other subsets of items. Besides, we believe that horizontal partitioning methods are more sensitive to changes in workload than vertical strategies. This is because changes in the volume of data accessed is more frequent than changes in the access pattern. To this end, we intend to provide an incremental solution to support such dynamic workloads. Besides the horizontal fragmentation, we are currently investigating graph cut approaches proposed in the literature in order to derive an analytical model for the problem 38 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações addressed in this paper. Given that the optimal solution must be achieved by this model, our goal is to provide an analytical method to evaluate our solution and compare it with related works. Many heuristics have been proposed for the general problem of partitioning graphs. Specially, the partitioning presented by this paper is closely related to the k-cut problem[Vazirani 2003]. There are several approximated algorithms proposed to solve this problem. However, the fragmentation problem adds complexity to the existing solutions, by considering storage maximization and XML constructs. We are currently investigating how to consider these constraints in order to optimize our algorithm. 3. Related Work The problem of finding an optimal fragmentation schema for a distributed database is known to be NP-hard [Kling et al. 2010]. The traditional search process used to find the optimal fragmentation schema is the what-if method [Agrawal et al. 2004, Pavlo et al. 2012]. What-if is an exhaustive process which compares several potential solutions with a cost model to estimate how well a DBMS will perform. Hence, the search space to find a suitable solution tends to be larger and heuristic-based approaches become more attractive, specially for very large databases. Horizontal partitioning is the common way to fragment a database and achieve a scalable service. However, the best approaches often depend on the application type. It is not different to fragment XML databases. For example, there are approaches providing heuristics for fragmenting XML analytical databases [Cuzzocrea et al. 2009, Figueiredo et al. 2010]. On the other hand, fragmentation methods for transactional databases are quite different. They usually require a complete analysis of the workload in order to identify access pattern and generate finer-grained fragments. Schism [Curino et al. 2010] addresses requirements to partition relational database with OLTP workloads. Similar to our approach, they intend to avoid distributed transactions. However, the entire database must be evaluated to identify tuples which are accessed together by transactions. We are also interested in generating fine-grained fragments according to the workload. Nevertheless, we target the XML model and avoid such exhaustive process. The current state of our method is similar to the traditional vertical partitioning algorithm MakePartition [Navathe and Ra 1989] proposed for relational databases. They are also based on affinity graphs to create fragments. However, the number of fragments generated for a given dataset tends to be larger given that they do not focus on maximizing the storage capacity of the fragments. Our preliminary results show that it decreases systems performance since the number of requests issued across the network is also larger. To the best of our knowledge, the work most related to ours is the XS algorithm [Bordawekar and Shmueli 2008]. They also work on a graph partitioning problem, however, our approach is more effective to cluster related data in the same fragment. It happens because their analysis only considers the affinity among elements in parent-child, previous-sibling and next-sibling relationships. 4. Conclusion We have presented the current state of our work to provide an effective fragmentation approach for highly distributed databases. Our workload analysis is applied to derive a 39 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações vertical fragmentation strategy for XML schemas which defines how to partition a set of XML documents. We make contributions for data-centric XML databases which are populated with many small XML documents. According to preliminary experiments, our approach is effective to improve the performance of distributed datastores by reducing the execution of distributed transactions, compared to close related approaches. There are several issues that deserve further investigation. As future work we intend to extend our solution for considering horizontal fragmentation techniques through a feasible and incremental solution for dynamic workloads. In this context, we also plan to consider a load balancing solution in the presence of skewed workloads. Acknowledgements: This work was partially supported by CNPq (Proc. 484366/2011-4-Ed.Universal) and by AWS in Education research grant award. References 28msec (2012). Sausalito: a scalable xml database designed for the cloud. Available at: http://www.28msec.com/. Abadi, D. J. (2009). Data management in the cloud: Limitations and opportunities. IEEE Computer Society Technical Committee on Data Engineering, 32:3–12. Abiteboul, S., Manolescu, I., Polyzotis, N., Preda, N., and Sun, C. (2008). Xml processing in dht networks. In Proceedings of the IEEE 24th ICDE, pages 606–615. Abiteboul, S., Manolescu, I., Rigaux, P., Rousset, M.-C., and Senellart, P. (2011). Web Data Management. Cambridge University Press. Agrawal, D., El Abbadi, A., Antony, S., and Das, S. (2010). Data management challenges in cloud computing infrastructures. In 6th International Conference on Databases in Networked Information Systems, pages 1–10. Springer-Verlag. Agrawal, S., Narasayya, V., and Yang, B. (2004). Integrating vertical and horizontal partitioning into automated physical database design. In Proceedings of ACM SIGMOD, pages 359–370. Bordawekar, R. and Shmueli, O. (2008). An algorithm for partitioning trees augmented with sibling edges. Inf. Process. Lett., 108(3):136–142. Chen, L. J., Bernstein, P., Carlin, P., Filipovic, D., Rys, M., Shamguvov, N., Terwilliger, J., Todic, M., Tomasevic, S., and Tomic, D. (2012). Mapping xml to a wide sparse table. In ICDE’12. Curino, C., Jones, E., Zhang, Y., and Madden, S. (2010). Schism: a workload-driven approach to database replication and partitioning. Proc. VLDB Endow., 3:48–57. Cuzzocrea, A., Darmont, J., and Mahboubi, H. (2009). Fragmenting very large xml data warehouses via kmeans clustering algorithm. Int. J. Bus. Intell. Data Min., 4:301–328. Figueiredo, G., Braganholo, V. P., and Mattoso, M. (2010). Processing queries over distributed xml databases. Journal of Information and Data Management, 3(1):455–470. Gertz, M. and Bremer, J. (2003). Distributed xml repositories: Top-down design and transparent query processing. Technical report, TR CSE-2003-20. Dep. of Computer Science, U. of California, USA. Kling, P., Özsu, M. T., and Daudjee, K. (2010). Distributed xml query processing: Fragmentation, localization and pruning. Technical report, University of Waterloo. Ma, H. and Schewe, K.-D. (2010). Fragmentation of xml documents. Journal of Information and Data Management, 1(1):21–34. Navathe, S. and Ra, M. (1989). Vertical partitioning for database design: a graphical algorithm. ACM SIGMOD International Conference on Management of Data, 18:440–450. Pavlo, A., Curino, C., and Zdonik, S. B. (2012). Skew-aware automatic database partitioning in shared-nothing, parallel oltp systems. In SIGMOD’12, pages 61–72. Schroeder, R., Mello, R. S., and Hara, C. S. (2012). Affinity-based xml fragmentation. In 15th International Workshop on the Web and Databases (WebDB 2012), Scottsdale, Arizona, USA. Stonebraker, M., Madden, S., Abadi, D. J., Harizopoulos, S., Hachem, N., and Helland, P. (2007). The end of an architectural era: (it’s time for a complete rewrite). In VLDB ’07, pages 1150–1160. Vazirani, V. V. (2003). Approximation Algorithms. Berlin: Springer. Yang, S., Yan, X., Zong, B., and Khan, A. (2012). Towards effective partition management for large graphs. In SIGMOD’12, pages 517–528, New York, NY, USA. ACM. 40 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações FSDedup A Framework for Signaturebased Deduplication in large datasets Guilherme Dal Bianco1, Renata Galante1, Carlos A. Heuser1 1 Instituto de Informática – Universidade Federal do Rio Grande do Sul (UFRGS) Caixa Postal 15.064 – 91.501970 – Porto Alegre – RS – Brazil {gbianco,galante,heuser}@inf.ufrgs.br Nível: Doutorado Ano de ingresso no programa: Agosto de 2009 Exame de qualificação: Agosto de 2011 Época esperada de conclusão: Agosto de 2013 Abstract. A main process in data integration is the record deduplication. Record deduplication aims at identifying which records represent the same underlying entity. In overall, deduplication demands the user intervention to identify which pairs represent a match or nonmatch. However, in large datasets the user intervention may result in large efforts. This thesis aims at reducing the nonspecialist user intervention focus on large scale deduplication. We propose a new framework, named FSDedup, where the user is not requested to direct intervention. For instance, the user is requested only to label a reduced set of pairs. Such set is automatically selected by our framework. The FSDedup removes the specialistuser to be able to anyone tune the entire deduplication process. FSDedup uses the SignatureBased Deduplication (SigDedup) algorithms like a “blackbox”. These algorithms are characterized by high efficiency and scalability in large datasets. However, a specialistuser intervention is requested to tune the SigDedup algorithms. This thesis aims at filling such gap, it presents a framework that does not demands user knowledge about dataset or thresholds in order to assure the effectiveness. Our approach is novel in the sense that addresses the entire deduplication process in large datasets. Keywords: Data Integration, Deduplication, Signaturebased Deduplication 41 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 42 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 43 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 44 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 45 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 46 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 47 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 48 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações Método de Balanceamento de Múltiplos Descritores Usando Condições de Contorno para Pesquisas por Similaridade Rodrigo Fernandes Barroso, Renato Bueno Departamento de Computação – Universidade Federal de São Carlos (UFSCar) São Carlos – SP – Brasil {rodrigo.barroso,renato}@dc.ufscar.br Nível: Mestrado Ano de ingresso no programa: 2011 Exame de qualificação: abril de 2012 Época esperada de conclusão: março de 2013 Resumo. Consultas em dados complexos enfrentam problemas semânticos que comprometem a qualidade dos resultados. Tais problemas são caracterizados pela divergência entre o que o dado representa e o que os algoritmos para sua manipulação interpretam. Na representação de dados complexos são utilizados descritores, que interpretam características intrínsecas em atributos qualificadores. A utilização de múltiplos descritores tende a melhorar a capacidade de discriminação dos dados, comparada a utilização de apenas um único descritor, pois as características presentes nos descritores se complementam. Além disso, em um conjunto de dados alguns subconjuntos podem apresentar características específicas essenciais para evidenciarem seus elementos do restante da relação, podendo ser melhor discriminados utilizando uma determinada métrica. Nesse trabalho pretendese utilizar condições de contorno para delimitar esses subconjuntos e então utilizar o melhor balanceamento de descritores para cada um deles, pretendendo com isso diminuir o “gap semântico” de consultas por similaridade. PalavrasChave: Combinação de múltiplos descritores, dados complexos, consultas por similaridade. 49 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 1. Introdução A necessidade de armazenar e manipular dados mais complexos vem sendo cada vez mais comum em diversas atividades [13]. Esses sistemas devem permitir, além de armazenar, gerenciar e recuperar os dados de forma eficiente e efetiva [5]. Esses tipos de dados são comumente chamados de dados complexos. Para comparar conjuntos de dados complexos usa-se a similaridade entre pares de elementos que indica o quão um objeto é semelhante ou distinto de outro. A comparação realizada proporciona um grau de similaridade entre cada par de elementos do conjunto, possibilitando, por exemplo, trazer os k elementos mais semelhantes com um elemento central de consulta. Este tipo de consulta é denominado Consulta por Similaridade, onde usualmente não são comparados os elementos de dados complexos em si, e sim características extraídas comumente no formato de um vetor, que determinam algum aspecto do elemento como por exemplo, em imagens pode-se extrair características de textura, forma ou cor e usá-las para comparar os elementos. Desta forma estas consultas também podem ser chamadas de Consultas Baseadas em Conteúdo ( Content-Based Retrieval – CBR ou ainda para imagens Content-Based I mage Retrieval – CBIR). Sobre essas características são aplicadas funções matemáticas para comparar pares de elementos denominadas funções de distância ou funções de similaridade [14]. Elas resultam em um valor numérico que determina o grau de semelhança ou diferença entre seus elementos. Técnicas atuais na literatura comprovam, que para diminuir o “gap semântico” de consultas por similaridade, é necessário utilizar mais de uma característica para comparar os elementos. Dentre estes trabalhos, [4] ressalta que através do inter-relacionamento entre a função de distância e vetor de característica a consulta obtém melhor resultado combinando os descritores. Em [3, 9] os autores mostraram que distintas características são melhor aplicadas a diferentes conjuntos de elementos, ou seja, nem sempre as mesmas características são a melhor opção para o conjunto todo pois existem características que melhor se aplicam para alguns subconjuntos de elementos, porém desta forma é necessário identificá-los. O presente trabalho propõe um método que utiliza do que iremos chamar de condições de contorno como identificadores destes subconjuntos, possibilitando então escolher o melhor balanceamento de múltiplos descritores para fazer a consulta por similaridade. Este artigo está estruturado da seguinte forma, a Seção 2 descreve trabalhos correlatos, enquanto a Seção 3 destaca a fundamentação teórica para o método proposto. A Seção 4 descreve detalhes do método, já a Seção 5 apresenta as considerações finais deste artigo. 2. T rabalhos Cor relatos A combinação de múltiplos descritores mostra-se com grande capacidade de melhorar os resultados de consultas por similaridade. Tal fato é explicado pelas características se complementarem ao fazer a identificação de atributos visuais das imagens, de forma semelhante ao comportamento humano para sua interpretação. Na pesquisa [2] foi utilizada a dimensão fractal para fornecer uma estimativa de um limite inferior para o número de características necessárias em uma consulta por similaridade, para nem superestimar e nem subestimar a contribuição de cada descritor no cálculo de similaridade. Para isto, as distâncias devem ser normalizadas entre os descritores individualmente e então atribuído a elas um peso. Os resultados são somados e o valor resultante representa a distância entre os elementos. Em [12] a combinação de múltiplos descritores é realizada baseado no aprendizado através da prática de retorno por relevância que interage o sistema com o utilizador (usuário). 50 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações A combinação é feita através de programação genética, o que proporcionou fazer uma combinação não linear de descritores, possibilitando obter funções mais complexas para calcular a similaridade entre os elementos. O método inicia-se com um grupo de combinações de descritores chamados indivíduos, onde é realizada então uma primeira consulta por similaridade que resulta em uma amostra de elementos. Posteriormente vão acontecendo interações com o usuário e a combinação dos descritores vai se adaptando as suas expectativas, ou seja, os indivíduos evoluem formando combinações de descritores que melhor atendam a necessidade do utilizador do sistema. 3. F undamentação T eórica 3.1. Consultas por similaridade Existem várias dificuldades em projetar um sistema de recuperação de imagem: primeiramente, porque a opinião sobre o que é "similar" comparado ao "não similar" pode ser subjetiva ou ter em pequenos detalhes esta diferenciação; o segundo motivo é pelo próprio modo da pesquisa por similaridade, que utiliza de vetores de características definindo que dados similares possuem vetores similares e nem sempre esta definição é compatível com a realidade. Estas dificuldades estão diretamente ligadas ao “gap semântico” destas pesquisas. A semelhança entre elementos é expressa pela função de distância tal que um baixo valor de distância corresponde a um grau elevado de semelhança, ao passo que dois elementos com um alto valor de distância são considerados com um baixo grau de semelhança [1]. Os elementos recuperados não são necessariamente iguais ao elemento de busca, ao invés disto, a pesquisa deve ser realizada de forma aproximada [3]. 3.2. Combinação de M últiplos Descritores A combinação de múltiplos descritores vem se tornando a principal prática em estudos de consultas por similaridade para diminuição do gap semântico. Estudos atuais [6, 7, 8, 10, 11, 12] mostraram que, características complementares contribuem para a representação do conteúdo do dado, possibilitando maior precisão em consultas por similaridade. Além disto, a prática envolve a atribuição de pesos a cada um dos descritores combinados e este balanceamento tende a melhorar o índice de precisão nas consultas. Em técnicas não supervisionadas para fazer o balanceamento de múltiplos descritores, [2] propôs o método para agregar descritores: uma imagem é representada pelas características , com as métricas , definidas sobre o domínio dos respectivos descritores. A composição da função de distância entre a imagem e é a combinação das distâncias dado por: é o peso respectivo dado ao descritor e as distâncias devem ser normalizadas onde (divididas pela distância máxima) para evitar prevalência de um descritor sobre outro. Assim, é possível identificar como cada descritor contribui para o cálculo de similaridade. São encontrados na literatura muitos trabalhos que fazem a combinação de múltiplos descritores para todos os elementos, ou seja, uma combinação para o conjunto todo. Como em [2] que propôs uma técnica de balanceamento de descritores baseada na dimensionalidade intrínseca (dimensão fractal) dos conjuntos de dados. Através da técnica é possível encontrar quais os melhores descritores para compor a combinação e quais são os pesos a serem atribuídos a cada um, ou seja, o melhor balanceamento de descritores para o conjunto todo. Além de obter melhor precisão em consultas por similaridades que utilizam apenas um descritor, a média da precisão das consultas obteve variações conforme a razão entre os pesos, 51 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações comprovando que o balanceamento é necessário pois também influencia nos resultados. 3.3. Condições de Contorno A utilização de condições de contorno foi estudada em [9], onde o autor conseguiu verificar que, em um mesmo banco de dados, existem subconjuntos de imagens que são melhor evidenciadas utilizando alguns descritores. Este quesito se faz muito importante para diminuição do “gap semântico”, pois comprovou que nem sempre uma única métrica pode atender o conjunto todo com a mesma precisão. Se levar em consideração todos os elementos do banco de dados, é grande a chance de encontrar alguns grupos que possuem características especificas que poderiam ser usadas para evidenciar seus elementos e assim aumentar a precisão das consultas por similaridade. Para delimitação dos subconjuntos, foi utilizado o “achado” radiológico, ou seja, a classificação ocorre de acordo com alguma característica visual encontrada pelo especialista. Através das condições de contorno foram feitos experimentos para encontrar o melhor descritor a ser usado na consulta por similaridade através de uma base de treinamento. Depois de determinado o melhor descritor, também chamado pelo autor de tríade, o mesmo passou a ser usado de acordo com cada “achado” aumentando assim a precisão da consulta para cada classe. 4. Balanceamento de múltiplos descritores usando condições de contorno Uma concepção preliminar do método proposto é descrita a seguir, onde objetiva-se usar as condições de contorno para possibilitar a utilização da melhor combinação de descritores balanceados. Um estudo preliminar recente [3] já mostrou a eficiência de utilizar balanceamentos distintos para subconjuntos (classes) existentes. Experimentos possibilitaram encontrar melhores pesos para balancear a combinação de Zernike (forma) com Haralick (textura). Este balanceamento como é mostrado no Gráfico 4.1, apresenta melhores índices de precisão para a “Classe 1” atribuindo aproximadamente o peso 8 vezes Haralick para cada 1 de Zernike, já na “Classe 9” os melhores índices de precisão foram alcançados a partir do peso 6 de Zernike para cada 1 de Haralick. G ráfico 4.1 – Média de Precisão dos experimentos realizados em [3]. Baseado neste estudo, pretendese propor um método que utilize as condições de contorno para buscar pelo melhor balanceamento de múltiplos descritores, e assim, utilizar este balanceamento ideal para usálo sempre nas consultas por similaridade. Primeiramente para encontrar o melhor balanceamento é necessário fazer experimentos em um ambiente de treinamento estruturado de acordo com a Figura 4.1. Nesta base, as 52 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações imagens devem ser préclassificadas de acordo com as condições de contorno desejadas, onde posteriormente serão feitos experimentos para combinar descritores variando a razão de seus pesos. A partir disto será possível encontrar o melhor balanceamento para cada condição de contorno. F igura 4.1 – Arquitetura do ambiente de treinamento do método proposto. Estes balanceamentos configurados pela base de treinamento poderão então ser utilizados. Para estas consultas por similaridade, devem ser informadas a imagem de consulta e a sua respectiva condição de contorno. Assim será possível utilizar o melhor balanceamento e aumentar a precisão da consulta. Esta arquitetura pode ser visualizada na Figura 4.2. F igura 4.1 – Arquitetura do ambiente utilização. 5. Considerações finais Este artigo propõe um método para diminuir o “gap semântico” de consultas por similaridade apoiando em duas práticas que se mostram muito eficientes da literatura. A primeira de utilizar condições de contorno que possibilitará utilizar as melhores características para grupos distintos do conjunto, a outra técnica de combinar múltiplos descritores melhora a representação do conteúdo da imagem, pois as características se complementam. Atualmente a arquitetura está sendo finalizada e já houve um início da execução de experimentos para apresentar qual será a contribuição do método e quais foram os índices de melhora na precisão de consultas por similaridade. Para verificação da eficácia, o método será comparado com práticas da literatura, dentre elas: a utilização de apenas um descritor para o conjunto todo, a utilização do melhor descritor para classes do conjunto [9] e a utilização do melhor balanceamento para o conjunto todo [2]. 53 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 6. Referências [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] BRAUNMÜLLER, Bernhard; ESTER, Martin; KRIEGEL, Hans-Peter; SANDER, Jörg; Multiple Similarity Queries: A Basic DBMS Operation for Mining in Metric Databases. IEEE Transactions on Knowledge and Data Engineering, Vol. 13, No. 1, 2001. BUENO, Renato; KASTER, Daniel S.; PATERLINI, Adriano A.; TRAINA, Agma J. M.; and TRAINA, Caetano, “Unsupervised scaling of multi-descriptor similarity functions for medical image datasets,” In 22th IEEE Intl. Symposium on Computer-Based Medical Systems (CBMS 2009). Albuquerque, New Mexico, USA: IEEE, 2009, pp. 1–8, 24. BUENO, Renato; KASTER, Daniel S.; RAZENTE, Humberto L.; BARIONI, Maria Camila N.; TRAINA, Agma J. M.; TRAINA, Caetano; , "Using Visual Analysis to Weight Multiple Signatures to Discriminate Complex Data," Information Visualization (IV), 2011 15th International Conference on , vol., no., pp.282-287, 13-15 July 2011. BUGATTI, Pedro Henrique; Análise da Influencia de funções de distância para o processamento de consultas por similaridade em recuperação a imagens por conteúdo. 2008. Dissertação (Mestrado em Ciência da Computação) – Instituto de Ciências Matemáticas e de Computação, Universidade de São Paulo, São Carlos, 2008. KEIM, Daniel; HECZKO, Martin; HINNEBURG, Alexander; and WAWRYNIUK, Markus; “MultiResolution Similarity Search in Image Databases”. In Proceedings of Multimedia Information Systems. 2002, 76-85. LIU, Pengyu; JIA, Kebin; WANG, Zhuozheng; , "A New Image Retrieval Method Based on Combined Features and Feature Statistic," Image and Signal Processing, 2008. CISP '08. Congress on , vol.2, no., pp.635-639, 27-30 May 2008. NIRMAL, A. J.; and GAIKWAD, V. B.; 2011. “Color and texture features for content based image retrieval system”. In Proceedings of the International Conference & Workshop on Emerging Trends in Technology (ICWET '11). ACM, New York, NY, USA, 19-21. PATIL, C.; and DALAL, V.; 2011. “Content based image retrieval using combined features”. In Proceedings of the International Conference & Workshop on Emerging Trends in Technology (ICWET '11). ACM, New York, NY, USA, 102-105. PONCIANO_SILVA, Marcelo; Processamento de consultas por similaridade em imagens médicas visando a recuperação perceptual guiada pelo usuário. 2009. Dissertação (Mestrado em Ciência da Computação) – Instituto de Ciências Matemáticas e de Computação, Universidade de São Paulo, São Carlos, 2009. RUI, Yong; HUANG, Thomas S.; ORTEGA, Michael; MEHROTRA, Sharad; "Relevance feedback: a power tool for interactive content-based image retrieval," Circuits and Systems for Video Technology, IEEE Transactions on , vol.8, no.5, pp.644-655, Sep 1998. SINGH, Raghavendra; KOTHARI, Ravi; "Relevance feedback algorithm based on learning from labeled and unlabeled data," Multimedia and Expo, 2003. ICME '03. Proceedings. 2003 International Conference on , vol.1, no., pp. I- 433-6 vol.1, 6-9 July 2003. TORRES, Ricardo da S.; FALCÃO, Alexandre X.; GONÇALVES, Marcos A.; PAPA, João P.; ZHANG, Baoping; FAN, Weiguo; and FOX, Edward A.; 2009. “A genetic programming framework for content-based image retrieval.” Pattern Recogn. 42, 2 (February 2009), 283-292. TRAINA, Caetano; TRAINA, Agma J. M.; FILHO, Roberto Santos; and FALOUTSOS, Christos; 2002. “How to improve the pruning ability of dynamic metric access methods”. In Proceedings of the eleventh international conference on Information and knowledge management (CIKM '02). ACM, New York, NY, USA, 219-226. ZEZULA, P.; AMATO, G.; DOHNAL, V.; BATKO, M.; Similarity Search, The Metric Space Approach. Springer Science + Business Media Inc.. 2006. 54 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações An Approach for Service Usage Profiles Discovery∗ Bruno Vollino1 , Karin Becker1 1 Instituto de Informática – Universidade Federal do Rio Grande do Sul (UFRGS) Caixa Postal 15.064 – 91.501-970 – Porto Alegre – RS – Brazil {bruno.vollino,karin.becker}@inf.ufrgs.br Nı́vel: Mestrado Ano de ingresso no programa: 2011 Época esperada de conclusão: Março de 2013 Abstract. Specially in large scale services, changes in the provider can result in a different impact over distinct groups of clients, according to their service usage. Therefore, the provider must analyze the external integration perspective when planning changes, what refers to the compatibility of changes over clients. In this work we propose an approach to discover service usage profiles, based on data mining, through the clustering of client applications accordingly to its usage data. The proposed approach can help in service evolution management, specifically in the assessment of external impact of changes. Finally, we present the current status of the research and the future works. Resumo. Especialmente em serviços web de larga escala, as mudanças feitas pelo provedor podem impactar de forma distinta seus diferentes grupos de clientes, conforme o uso. O provedor precisa, portanto, planejar mudanças sob a perspectiva da integração externa, o que significa avaliar a compatibilidade de mudanças em relação aos seus clientes. Este trabalho propõe uma abordagem para descobrir perfis de uso de serviços, baseada em mineração de dados, através do agrupamento de aplicações cliente de acordo com dados de uso. A abordagem proposta é capaz de auxiliar a gerência da evolução de serviços, mais especificamente na avaliação do impacto externo de mudanças. Ao final, são apresentados o estado atual da pesquisa e os trabalhos futuros. Palavras-chave: Web Service, Service Usage, Data Mining, Usage profile ∗ This research is financially supported by FAPERGS (Grant 11/1261-7), CNPq and CAPES - Brazil. 55 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 1. Introduction Web services are software components designed to provide a standardized and platform independent manner to interoperate systems, which allows the development of loosely coupled applications. The adoption of service-oriented computing is highly motivated by its ability to deal with changes. But services themselves also undergo changes, and providers want to continue supporting existing customers, as well as attracting new clients. If not carefully planned, changes that are incompatible with current usage can break clients. Examples of disruptive changes are the non-backward incompatible changes or the decommission of service versions [Andrikopoulos et al. 2012]. Typically, the assessment of change impact is based on the worst case scenario, i.e. potential impact [Andrikopoulos et al. 2012] [Wang and Capretz 2009]. But, particularly in a large-scale usage scenario, services can be used in many different ways. This leverages a need for methods and tools that support providers in decisions of which and how changes will be executed, based on the understanding of how changes will affect the current clients. We have proposed the analysis of client usage profiles to measure the impact of changes [Yamashita et al. 2012] and to support decision in evolution management [Silva et al. 2012]. Client profiles represent significant consuming patterns in terms of service features (e.g. usage of a specific set of operations). In this work, we present an approach to discover service usage profiles, by applying data mining techniques to cluster clients according to usage patterns. We discuss the knowledge discovery process over service interactions and the Profile Manager, a software component that supports this process. It handles the interception and logging of service requests, the creation of a clean and enriched Usage Database, the clustering of similar clients and their representation as profiles. The analysis of clients usage patterns have been studied for other purposes such as workflow discovery and service recommendation [Motahari-Nezhad et al. 2011, Shi et al. 2011, Zhang et al. 2011, Tang and Zou 2010]. The assessment of change impact only in the service level, based on business process data, was also explored [Wang and Capretz 2009]. The proposed approach differs from other works by exploring usage patterns in the feature level (e.g. operations, data types), and by addressing specific issues of the change management problem, such as the adequate data preparation and profile representation according to the management task. The use of usage data to cluster clients is also a differential, since that clients composition information is frequently unknown in large-scale services. The remaining of this paper is structured as follows. Section 2 discusses the related work. Section 3 describes in detail the proposed approach to discover service usage profiles. Section 4 draws conclusions and presents future work. 2. Related Work There exists a wide range of applications for usage mining in services. Examples are the prediction of development costs, performance monitoring, and services recommendation [Nayak 2008]. We include in this list the prediction of business costs of changes [Silva et al. 2012], quantification of external integration impact (compatibility of changes over clients) and identification of evolutive usage trends [Yamashita et al. 2012]. 56 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações The challenges in service mining are many. Experiments are frequently executed over synthetic data [Tang and Zou 2010, Zhang et al. 2011], due to the proprietary characteristics of service usage data [Nayak 2008]. The evaluation and validation of results is also difficult, due to the volume of data and the patterns complexity. The interception of service interactions is another issue, due to the distributed nature of services. The trade-offs of a diversity of monitors have been studied [Chuvakin and Peterson 2009]. Examples of usage mining applied to service recommendation include the discovery of similar users based on query-invocation relationships of a service registry [Zhang et al. 2011] and the clustering of clients based on their location and QoS statistics [Shi et al. 2011]. Other usage mining applications are the discovery of workflows in usage data [Motahari-Nezhad et al. 2011] and composition patterns [Tang and Zou 2010], and the quantification of change impact, as example, by clustering services based on services dependency patterns within business process descriptions [Wang and Capretz 2009]. To the best of our knowledge, there is no work similar to our proposal. We discover client clusters instead of workflows or composition patterns, and our cluster definition is based on usage, instead of query-invocation, QoS similarity or process information. 3. Profile Discovery Service usage profiles are abstract representations of groups of client applications with similar usage patterns. Given our focus is to assess the impact of changes in service evolution, we address usage patterns as the use of features of a specific service interface version by client applications. The term feature comes from the underlying service representation model we adopt [Yamashita et al. 2012], which divides a service description into smaller fragments related to the service as a whole, an operation description, or message/data type description. The profile structure is depicted in Fig. 1. It associates each profile with the features used and related metrics (e.g. number of requests), as well as with specific features of that service version and their related metrics (e.g. number of requests of an operation or the frequency with which a type was exchanged in messages). Figure 1. Usage Profile structure The logging of all requests to a service version generates a huge set of complex usage data. To find patterns in this data, we execute a knowledge discovery process, using clustering as the data mining technique [Han and Kamber 2006]. We have designed the Profile Manager software component to support this process, which is part of a change management framework [Yamashita et al. 2012]. It is integrated with a service version manager, from which it extracts meta-information about service structure and versioning. The Profile Manager, detailed in the remaining of this section, is shown in Figure 2. 3.1. Interaction Monitor This component is responsible for intercepting messages exchanged between client applications and the service versions, and logging them into interaction logs. There 57 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações Figure 2. Profile manager module are several alternatives for the monitoring infrastructure, each one imposing trade-offs in terms of scope of extractable data and performance of the monitoring capabilities [Chuvakin and Peterson 2009]. In our architecture, the Interaction Monitor resides in the server side, since a client side approach requires changes to the client and frequent consolidation of distributed data. We assume that the service has an authentication mechanism, to be able to associate interactions with its respective clients. For each client request or service response, we extract and log information about the features used: the service version, the operation called and the parameters exchanged. Notice that parameters usage influences the generated profiles, meaning applications usage patterns are compound of operations and the data types they exchange through messages. By now we cover only SOAP based services. We log the SOAP messages in a suitable XML file, by the use of a message handler. 3.2. Data Loader The Data Loader extracts the raw data from the interaction logs of the different versions of a service, cleans and transforms it, and loads the processed data in a Usage Database, as a graph, of which the schema is depicted in Fig. 3. Only the information about the services interactions and the types of parameters involved in the interaction are necessary, and thus their actual values are disregarded. The loader handles noise in the logs by removing incomplete log entries (e.g. failures), as well as requests that make an improper usage of the service (e.g. missing arguments). Finally, the loader enriches this data with web service versions structure as available in the Version Manager. The service, operation and parameters used in an interaction constitute a hierarchical structure. We use a graph database management system to store the service interactions and its structures efficiently. Figure 3. Usage Database schema The Usage Database facilitates the process of preparing data for accomplishing different analysis purposes. For instance, we can select the client interactions together with used features in three levels (service, operation and type), enabling the definition of usage profiles with distinct usage granularities. 58 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 3.3. Profile Generation The Profile Generator is responsible for clustering applications based on similar feature usage, and after post-processing the resulting clusters, creating service usage profiles. It extracts the relevant usage data from the database, and transform it for the application of the clustering algorithm. Given our interest on the evaluation of changes between two versions, we extract data corresponding to the features of a single service version. We also filter usage data collected in a certain time interval, because usage patterns may change over time. This data is aggregated and transformed in a tabular representation, where rows represent unique clients, and columns represents feature versions. Each row is thus an aggregation of all interactions of a same client with regard to the features. To represent the usage of features, one can choose between a binary or weighted approach. The latter represents the quantification of requests for that feature. The choice depends on the analysis requirements of the change management task (e.g. usage oriented compatibility, change impact assessment). Other standard preparation tasks can be applied for improving the results of clustering (e.g. normalization, outliers) [Han and Kamber 2006]. Then, clustering is applied over the prepared data. Various clustering algorithms exist, which handle similarity differently [Han and Kamber 2006], and require distinct parameters. The number of clusters must be inferred from usage data by the algorithm or in a pre-clustering step. Web services contain, in general, processes or workflows [Motahari-Nezhad et al. 2011], which are probably the most frequent patterns observed in the usage data. Distinct workflows must be well separated by the resulting clusters, perhaps the alternative flows must be not ignored. Thus, the algorithm must be low susceptible to noise, but sensible to lesser frequent workflow patterns. Once clusters are generated, their validity needs to be evaluated. Options are internal criteria such as inter and intra cluster distances, and external criteria (e.g. error measures for classification). Due to the lack of real data, we chose to evaluate the approach with a synthetic dataset containing predefined usage profiles, and use an external measure to assess clusters’ validity. The Profile Manager finally post-processes the discovered clusters to define usage profiles, which are representative summarizations of each cluster of client applications. Metrics can be associated to profiles or to the features used, which are extracted from the Usage Database (e.g. requests). The quality of the generated profiles can be evaluated by verifying how well they summarize usage data for the analysis purpose, e.g. compare impact calculated with profiles against impact calculated with the complete dataset. 4. Conclusions and Future Work This paper presented an approach for discovering service usage profiles based on usage data. The Profile Manager supports that process, which is integrated in a broader change management framework [Yamashita et al. 2012, Silva et al. 2012]. We are currently implementing the Profile Manager and testing data mining alternatives with synthetic usage datasets. We also plan to develop a semi-automatic validation method for usage profiles, so one can assess the validity before persisting results. The discovery of profiles is very sensitive to the choices for preprocessing data, 59 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações clustering and validating clusters. Clusters are dependent on how usage is characterized in the dataset: binary, weighted by use or weighted by usage relevance. The choice of either approach is based on the analysis requirements of the management task being executed. By selecting appropriate client representations and clustering algorithms, we plan to cover the tasks of usage oriented compatibility, change impact assessment and analysis of usage trends (profile evolution). So far, we obtained best results with density-based clustering algorithms, on small datasets. We are developing more elaborated experiments to select the best techniques and client representation for each task. The proposed approach is targeted at the assessment of change, such that the provider could decide about changes implementation according to their effect on clients, but this solution could also be leveraged for performance analysis (e.g overload balancing and message redirection), or for service recommendation. References Andrikopoulos, V., Benbernou, S., and Papazoglou, M. (2012). On the evolution of services. Software Engineering, IEEE Transactions on, 38(3):609–628. Chuvakin, A. and Peterson, G. (2009). Logging in the age of web services. Security & Privacy, IEEE, 7(3):82–85. Han, J. and Kamber, M. (2006). Data Mining: Concepts and Techniques. Morgan Kaufmann, San Francisco, CA, 2nd edition. Motahari-Nezhad, H., Saint-Paul, R., Casati, F., and Benatallah, B. (2011). Event correlation for process discovery from web service interaction logs. The VLDB Journal, 20(3):417–444. Nayak, R. (2008). Data mining in web services discovery and monitoring. International Journal of Web Services Research, 5(1):62–80. Shi, Y., Zhang, K., Liu, B., and Cui, L. (2011). A new qos prediction approach based on user clustering and regression algorithms. In Web Services (ICWS), 2011 IEEE International Conference on, pages 726–727. IEEE. Silva, E., Vollino, B., Becker, K., and Galante, R. (2012). A business intelligence approach to support decision making in service evolution management. In Services Computing (SCC), 2012 IEEE Ninth International Conference on, pages 41 –48. IEEE. Tang, R. and Zou, Y. (2010). An approach for mining web service composition patterns from execution logs. In Web Systems Evolution (WSE), 2010 12th IEEE International Symposium on, pages 53–62. IEEE. Wang, S. and Capretz, M. (2009). A dependency impact analysis model for web services evolution. In Web Services (ICWS), 2009 IEEE International Conference on, pages 359–365. IEEE. Yamashita, M., Vollino, B., Becker, K., and Galante, R. (2012). Measuring change impact based on usage profiles. In Web Services (ICWS), 2012 IEEE 19th International Conference on, pages 226 –233. IEEE. Zhang, Q., Ding, C., and Chi, C.-H. (2011). Collaborative filtering based service ranking using invocation histories. In Web Services (ICWS), 2011 IEEE International Conference on, pages 195–202. IEEE. 60 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações Methodological Guidelines and Adaptive Statistical Data Validation to Build Effective Data Warehouses Pedro L. Takecian , João E. Ferreira Department of Computer Science Institute of Mathematics and Statistics (IME) University of São Paulo (USP) São Paulo, SP – Brazil {plt,jef}@ime.usp.br Nı́vel: Doutorado Ano de ingresso no programa: 2009 Exame de qualificação: Maio de 2012 Época esperada de conclusão: Janeiro de 2014 Abstract. Over time, data integration involving data warehouses is becoming more difficult to develop and to manage due to the growing heterogeneity of data sources. Despite the significant advances in research and technologies, many integration projects are still too slow to generate pragmatic results and are often abandoned before that. The objective of this work is the specification of a developing strategy to build effective data warehouse integration systems with progressive increase of data quality. For the achievement of our goal, we propose some methodological guidelines for the construction of evolutionary integration systems and the development of a framework for automated statistical validation that will facilitate the enhancement of system’s data quality. Keywords: data warehouse, integration systems, data quality, decision support systems, database systems 61 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 1. Introduction Over the years, the number of applications that need to integrate data from several different sources has remarkably grown. In many cases, the model that best fits as a solution to the problem of data integration is the use of a data warehouse (DW) to gather data into a central repository. However, data integration involving DWs has become more difficult to develop and to manage due to the growing heterogeneity of data sources. Due to this factor, many integration projects are too slow to generate effective results and are often abandoned before that [Gartner 2005]. Often, when integration systems are finally available to the end users, the features implemented are already obsolete, while newer needs end up being postponed to future phases of development. The main reason for this negative scenario relates to the traditional way of constructing such a system, which does not provide rapid and partial deliveries of functionalities implemented. Overall, projects will only be available to the end user after being fully implemented, which can take years. Once integration systems are implemented and enter the routine of companies and research centers, there is another problem that must be faced: the reliability and quality of their stored data. Since these systems are often used for decision-making and for creating business management views, the quality of data used within them becomes critical for their use. Generally, validations of syntactic character are easily implemented, requiring no specialized tools. The same applies to some semantic validations. However, validations of statistical nature are usually neglected because they are difficult to implement, although quite important. In this type of validation, one can verify that the statistical parameters of batches of data that are candidates to be stored in the DW are in line with expectations and in accordance with the parameters of the data that already compose the repository. The objective of this PhD work is the specification of a developing strategy capable of promoting agile, continuous and consistent deliveries during the construction of DW integration systems with progressive increase of data quality. For the achievement of our goal, we propose some methodological guidelines for the construction of evolutionary integration systems based on the combined use of some development “good practices” and the construction of a framework for automated statistical validation that will facilitate the enhancement of system’s data quality. 2. Fundamentals 2.1. Data integration Data integration can be defined as the problem of combining data residing at different sources, providing the user with a unified view of these data [Lenzerini 2002]. The automation of data integration is a complex task, especially when it comes to heterogeneous data sources. Despite being an old problem in computer systems, there are still many gaps to be filled. Over time, many automating approaches have been proposed, but none of them has completely solved the problem and choosing the best option depends on each case and on the needs involved. Among the approaches used to build integrating systems, there are the DW architecture and the mediators architecture. In the proposed work, we will use the DW architecture to address the data integration problem. Here, the integration is done by collecting data from various sources into a single repository, governed by a single schema. In this case, data queries are submitted to a 62 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações single database, being answered efficiently. This feature makes this architecture ideal when the integration aims the analysis of large amounts of data. However, this architecture does not work well in those cases where one of the requirements is having the data constantly updated, because the task of populating and updating the central repository is expensive. If querying constantly updated data is a mandatory prerequisite, it is recommended the use of the mediators architecture. For this work, a DW architecture has been chosen because our interest is the integration of large amounts of data from heterogeneous sources in order to analyze them and, as hypothesis, we don’t have the need of readily updated data. Figure 1 shows a possible approach that can be used to integrate distinct data sources using a DW, and is composed by tasks that are usually performed in such a system. They are represented by rectangles, and will be briefly described below. Figure 1. General architecture of an integration process using a DW and tasks typically performed in such a system. Adapted from [Rainardi 2008] 1. Data extraction: extract data from (heterogeneous) data sources. 2. Data validation, correction and transformation: receives data from task 1, submitting them to simple syntactic and semantic validations. Corrections and transformations may be necessary. Then, data is placed in a temporary database known as stage, used to transform and prepare data before they are loaded in the Normalized Data Store (NDS). 3. Second phase of data validation, correction and transformation: this type of validation involves cross checking of input data with NDS data (for example, the verification if an input tuple already exists in the NDS). 4. Data mappings: given the correspondences between the attributes of source databases (DBs), mirrored in the stage area, and the attributes of the NDS, the mappings that take instances of source DBs to the destination DB are generated automatically or manually written. They will automate data transportation to the NDS. 5. Update of metadata: we can populate the metadata repository with data inferred from NDS, such as number of lines, average, maximum and minimum values. These data can be used for the execution of other tasks, like the validation steps. 6. Third phase of data validation: when the data are already incorporated into the NDS, it is important to apply periodically some kind of semantic validation, generally constituted by some global measurements on NDS data, to ensure the NDS integrity. 7. Data extraction: extracts data from NDS to populate the analytical databases. 63 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 8. Analytical data server: fed by analytical databases, this server is able to structure the data in order to allow the generation of structures that facilitate the visualization of data, such as OLAP cubes and managerial reports. 2.2. Data quality DWs are used to support decision making and the reliability of the decisions is directly related to the reliability of the data present on the related integration systems. To obtain reliable data, they must be submitted to a validation process. In databases context, we can define data validation as the process to which data are submitted to increase their quality and adequacy according to the system intended goals. Validations can be classified in two types: syntactic and semantic. Syntactic validation use to be easy to implement. Although the implementation of some semantic validations are not elaborate, their complexity can be increased when large amounts of data are involved. There are some tools (ETL tools) that provide to system developers some facilities to implement basic types of data validation and correction. However, for more complex validations, developers are still required to do manual implementations using query languages, such as SQL, and that task is quite cumbersome and difficult to maintain. The large number of validations to be implemented and the difficulty of the efficient implementation of more complex semantic validations are often responsible for late deliveries in integration projects. For this reason, several studies have been developed to automate data validations. However, there are still several gaps to be explored, as is the case of statistical validations (Section 3.1). 2.3. Classification Machine learning is an area of Artificial Intelligence that studies computer programs that improve their performance at some task through experience [Mitchell 1997]. Inside this area, we have a subarea called supervised learning. A supervised learning algorithm is responsible for, from the processing of training examples (a training example is a pair of a possible entry and its correct output), inferring a function that will behave the same way for unpredicted entries. If the output domain of such an algorithm is discrete, we have a classification problem and the outputs can be called classes. There are a considerable number of efficient and precise classification algorithms. In this work, one of our planned activities is the detailed study of classifiers in order to gather ideas and concepts to build the statistical validator intended in this PhD project. 3. Contributions Regarding integration systems, data quality and system development are closely related concepts. The more efficient the generation of system partial deliveries, the faster the end user can perform data analyses. From these analyses, the user is able to find inconsistencies that indicate the existence of possible errors. If there is an error in the implementation of the system or in the conceptual model, it can be corrected by developers prior to the next delivery. However, the error may be in the data. This means that such information has mistakenly entered in the system, signaling a failure in the validation process. A failure reveals that either there are errors in existing validation tasks or that new validations must be implemented. Thus, data analysis contributes to increase data quality. Looking from another perspective, it is also possible to say that the more reliable is the data present in the system, the greater is the confidence that can be placed in the analyses. In other words, data quality improves the analyses that, in turn, improve data quality. 64 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações In this work, we propose a way to develop integration systems that considers these two perspectives. On the one hand, we propose methodological guidelines to generate partial deliveries in a fast and effective manner. On the other hand, we will build an automatic statistical validation framework that will facilitate the implementation of complex validations, contributing to the increase of system’s data quality. 3.1. Development of a framework for automated adaptive statistical data validation in integration systems In today’s data integration tools, there is a gap in validation automation. It would be important to have a framework that could offer validations that, based on statistical measures of input batches of data and the data already validated and in the DW repository, could make decisions about the validity of those batches. Here are some examples of applications of such validations, considering the domain of blood donations in blood centers: 1. Number of tuples criterion: suppose that for a particular blood center, an integration system usually receives around 10,000 to 13,000 donations/month. Assuming that we have only one batch of data per month, we would like that, if we try to add a batch with only 5,000 donations, the loading process was stopped before the data enters in our repository, because it means a drop in donations number that is unlikely to happen. 2. Distribution of values of an attribute criterion: suppose that for a particular blood center, in a batch, we often receive donations from men and women in approximately the same proportion. If, in a given batch of data, the system receives only 10% of men between donors, the loading process should be stopped, due to the unusual behavior presented. 3. Correlation between attributes criterion: suppose that, in the DW data repository for a particular blood center, male patients have HIV infection rate higher than the infection rate of female patients. If this is reversed in an input batch, this may indicate a data error related to one of these fields and we would want the interruption of the loading process. For this type of validation, which involves statistical concepts such as the above cases, we will call statistical validation of batches of data. It is important to notice that if the validation process receives as input data isolated tuples or small amounts of data, it doesn’t make sense to use this type of validation. For example, considering the second case mentioned above, if the entry batch is composed of a single male donor, the batch shall consist of 100% male donors and will be mistakenly stopped by the validator, since that event would be unlikely to happen when dealing with large batches. This type of validation is therefore inappropriate for such cases. Thus, for this work, we assume that this type of validation will receive, as input, large enough batches of data, i.e., batches containing a significant amount of tuples to justify the use of statistical validation. Our main contribution in this work will be the offering of a framework that facilitates the use of statistical validations in integration tools. The implemented validator must be flexible enough to adapt to the data processed by it. This adaptive mechanism will be developed using machine learning techniques, and more specifically, classifiers. 3.2. Specification and description of methodological guidelines to the evolutive construction of integration systems In building integration systems whose data come from heterogeneous sources, “we cannot boil the ocean”. It is a hard task to understand all details of the available data in multiple 65 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações sources at once. To facilitate the construction of such systems, it is important to concentrate on the main entities that are common to all data sources. With these entities, we have a starting point to build a conceptual model, and from there, build a DW. With the first version of the DW built, it is possible to use it, populate it and generate some views and initial reports. The analysis of these views will then be useful to find errors in the concepts that have been modeled so far. From there, we can build a new version of the conceptual model, containing corrections of the errors that were found. After several cycles of analyses and development necessary to achieve a reasonably stable version of the DW, we can think about expanding the conceptual model in order to cover more entities and attributes, restarting the cycle of analyses and corrections. Considering the context in which development occurs in several cycles, the various stages of system correction and expansion will require from the system an architecture with high flexibility and low coupling. Considering these characteristics, it is important to adopt a modular architecture, which will provide better organization of the system. In a large-scale system, it would be easy to get lost in a large number of lines of code with hundreds of validation rules. Modularize the system so that the parts are grouped according to their functionality is an efficient way to accelerate the development and to facilitate the maintenance of the DW. The combined use of a modular architecture, a conceptual model and data analysis, used in a cyclic and interactive way, provides the reduction of the complexity of integration system development. In other words, considering these “best practices” mentioned above, in a quick and efficient manner, we will have a functional DW that contains data from the main entities stored and the possibility to generate, as soon as possible, management views and reports of such data. Thus, it will be possible to solve the primary cause of faults in the development of these systems, that is the delay in delivery of a working system. In this work, we intend to transform the combined use of these practices in methodological guidelines in order to provide guidance to developers who want to build integration systems based on DW in a practical and evolutionary way. For this, we will formalize this knowledge acquired with practice, turning the ideas into a series of steps to be followed. 4. Related Works In databases integration, there are several attempts in recent literature to improve data quality. Some authors [Galhardas et al. 2001] have attempted to develop declarative languages that are more expressive than SQL to describe validations and corrections as well as algorithms and models to execute them, aiming to reduce the amount of code that must be written to implement complex validations and corrections. Raman and Hellerstein have developed a data correction tool called Potter’s Wheel [Raman and Hellerstein 2001], which proposes an interactive approach for data correction, where the system tries to identify data discrepancies and the user, through a graphical environment, is able to see the corrections made by the system, adding others, refining existing ones or undoing changes as needed. Ribeiro et al [Ribeiro et al. 2011] use data provenance and machine learning techniques to improve DW data quality, trying to correct missing tuple values substituting them with inferred ones. Other works (e.g. [Monge 2000]) aim to identify and remove duplicate data from the input data. Although there are powerful tools in the area of data validation and correction, they usually cover only part of the problem and still require a lot of manual intervention [Rahm and Do 2000]. Thus, there are still many gaps to be explored. Another problem that stands out in this area, both by the inherent difficulty of 66 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações the problem, as the amount of existing work, is the attempt to automate the generation of data mappings between databases and develop the necessary correspondence between two database schemas. For the cases that involve a higher degree of complexity, there is no evidence that existing tools work properly and they usually experience failures in mappings generation. In this scenario, the ++Spicy [Marnette et al. 2011] tool has been referred to as having promising results. It is an evolution of Spicy [Bonifati et al. 2008b] and +Spicy [Mecca et al. 2009a] tools. It and its predecessors have had their ideas published in important academic vehicles, such as VLDB [Marnette et al. 2010, Marnette et al. 2011], SIGMOD [Mecca et al. 2009b] and EDBT [Bonifati et al. 2008a]. Created in 2011, ++Spicy is said to be able to generate optimized SQL or XQuery mapping code automatically. However, no studies have been done so far about the functionality provided by ++Spicy tool. Thus, we don’t know what problems were actually solved by it and which of them require more in-depth studies, being a likely source for future research. 5. First Results The project Retrovirus Epidemiology Donor Study - II (REDS-II) was funded by the National Hearth Lung and Blood Institute - USA and has begun with a North American network of blood centers, whose aim was to develop research projects focusing on transfusional safety. In 2005, three large Brazilian blood centers joined the project. In this context, we have assembled all the infrastructure of data organization of Brazilian blood centers involved in the project, as well as the generation of structures for data analyses. Two factors were decisive for our involvement in this project: the first one is the difficulty in the fact that each blood center has its own transactional system, suited to local needs, and the second one is the lack of appropriate systems in blood centers for data analysis. Thus, we were responsible to collect, clean, standardize and store the data coming from blood centers. Also, we would generate reports for statistical analyses and structures for multidimensional analyses that would enable blood centers to quickly obtain managerial views of the donation process, allowing them to improve it in several aspects. Therefore, we decided to build an integration system based on a DW, that would fulfill all these requirements. The development of this system was guided by an intuition that the combined use of the methods described in Section 3.2 facilitates the development of a DW system, exposing a set of best practices that, if used together, would accelerate the construction of the system, making it feasible considering the time constraints of current projects. The results obtained has confirmed the original intuition and will serve as a basis for a formalization of the employed methods and as a case study for the proposed framework for statistical validation. 6. Current Work and Future Directions Recently, we are writing a paper about the combined use of the best practices presented here. This paper has been already submitted and was conditionally accepted into an important academic journal [Takecian et al. 2012]. This paper is the first step into the formalization process that we intend to do, developing the methodological guidelines to be followed by other developers who want to build similar systems. At the same time, we are studying existing classification algorithms to enable the application of machine learning techniques into the statistical validator. As future steps, we intend to identify 67 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações which statistical parameters are important to construct the validator, and implement its algorithm into a framework that will provide the validation service to integration systems. References Bonifati, A. et al. (2008a). Schema mapping verification: the Spicy way. In Proc. of the 11th Int. Conf. on Extending Database Technol., pages 85–96, Nantes, France. Bonifati, A. et al. (2008b). The Spicy system: towards a notion of mapping quality. In Proc. of the 28th ACM SIGMOD Int. Conf. on Management of Data, pages 1289–1294, Vancouver, Canada. Galhardas, H. et al. (2001). Declarative data cleaning: language, model, and algorithms. In Proc. of the 27th Int. Conf. on Very Large Data Bases, pages 371–380, USA. Gartner (2005). Gartner says more than 50 percent of data warehouse projects will have limited acceptance or will be failures through 2007. http://www.gartner.com/ press_releases/asset_121817_11.html. Visited on May/2012. Lenzerini, M. (2002). Data integration: a theoretical perspective. In Proc. of the 21st ACM Symposium on Principles of Database Systems, pages 233–246, USA. Marnette, B. et al. (2011). ++Spicy: an open-source tool for second-generation schema mapping and data exchange. Proc. of the VLDB Endowment, 4(12):1438–1441. Marnette, B., Mecca, G., and Papotti, P. (2010). Scalable data exchange with functional dependencies. Proc. of the VLDB Endowment, 3(1):105–116. Mecca, G. et al. (2009a). Concise and expressive mappings with +Spicy. Proc. of the VLDB Endowment, 2:1582–1585. Mecca, G., Papotti, P., and Raunich, S. (2009b). Core schema mappings. In Proc. of the 35th ACM SIGMOD Int. Conf. on Management of Data, pages 655–668, USA. Mitchell, T. (1997). Machine Learning. McGraw-Hill, first edition. Monge, A. E. (2000). Matching algorithms within a duplicate detection system. IEEE Techn. Bulletin Data Eng., 23(4):14–20. Rahm, E. and Do, H. H. (2000). Data cleaning: problems and current approaches. IEEE Data Eng. Bulletin, 23. Rainardi, V. (2008). Building a Data Warehouse: With Examples in SQL Server. Apress. Raman, V. and Hellerstein, J. M. (2001). Potter’s Wheel: an interactive data cleaning system. In Proc. of the 27th Int. Conf. on Very Large Data Bases, pages 381–390. Ribeiro, L. S., Goldschmidt, R. R., and Cavalcanti, M. C. (2011). Complementing data in the ETL process. In Proc. of 13th Int. Conf. on Data Warehousing and Knowledge Discovery, pages 112–123. Takecian, P. L. et al. (2012). Good practices to reduce the complexity of data warehouse development for transactional blood bank systems. Decision Support Systems. In evaluation process. 68 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações Uma abordagem utilizando Business Intelligence para apoiar o processo de tomada de decisão na gestão da evolução de serviços web1 Ernando Silva1, Renata Galante (Orientadora)1, Karin Becker (Coorientadora)1 1 Instituto de Informática – Universidade Federal do Rio Grande do Sul (UFRGS) Caixa Postal 15.064 – 91.501970 – Porto Alegre – RS – Brasil {ernando.silva,galante,karin.becker}@inf.ufrgs.br Nível: Mestrado Ano de ingresso no programa: 2011 Época esperada de conclusão: Março de 2013 Resumo. A gestão da evolução de serviços web é uma tarefa complexa para um provedor de serviços, pois envolve a identificação das mudanças necessárias e a determinação do impacto das mesmas. Neste contexto, o provedor tem como objetivo a minimização dos impactos para os seus clientes diretos e indiretos. Na literatura, os trabalhos existentes geralmente focam em perspectivas técnicas e fora do contexto de portfólio de serviços. Este trabalho propõe uma abordagem utilizando o conceito de Business Intelligence (BI) para apoiar o processo de tomada de decisão na gestão do ciclo de vida de serviços, considerando a integração entre dados de uso dos serviços, dados sobre versões e dados relacionados a negócios. Abordamse também as perspectivas de análise dos diferentes stakeholders envolvidos, os níveis de tomada de decisão e as métricas que podem apoiar as decisões. Palavraschave: evolução de serviços web, gerenciamento de mudanças, Business Intelligence, impacto das mudanças, Data Warehouse. 1 Este trabalho é parcialmente financiado pelo CNPq e pela FAPERGS. 69 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 1. Introdução Serviços possibilitam o desenvolvimento de sistemas com baixo acoplamento de acordo o padrão arquitetural SOA (ServiceOriented Architecture). Amplamente adotados pela indústria como um padrão para o desenvolvimento de aplicações orientadas a serviço, serviços web são softwares que permitem a interoperabilidade entre sistemas distintos por meio de uma interface processável por máquina e com a utilização de padrões abertos. O provedor é a figura responsável por oferecer o serviço e por mantêlo, enquanto o cliente é o consumidor do serviço e utiliza as funcionalidades disponibilizadas pelo mesmo. Oportunidades como SaaS/PaaS/IaaS (Software, Platform, Infrastructure As A Service) motivam provedores a oferecer serviços web para clientes visando uso em larga escala. No contexto de serviços web, a implantação de mudanças, comum no ciclo de vida de softwares tradicionais, faz parte do ciclo contínuo de melhora dos serviços. As mudanças são motivadas por novos requisitos, oportunidades de negócios, novos regulamentos, etc. O processo de mudança pode envolver estrutura, semântica e atributos nãofuncionais de um serviço [Andrikopoulos, Benbernou e Papazoglou 2011]. Qualquer tipo de mudança que não seja cuidadosamente planejada pode se tornar incompatível e afetar os clientes que utilizam os serviços. Portanto, a gestão da mudança envolve o entendimento do impacto da mudança e a definição de estratégias que tornem a mudança retrocompatível (backwardcompatible change, tipo de mudança que não causa impactos em clientes). O versionamento (a criação, a configuração e a desativação de diferentes versões de um mesmo serviço) é uma estratégia usual para a realização de mudanças retrocompatíveis. Porém, a manutenção de inúmeras versões de serviços demanda recursos adicionais de infraestrutura, além de aumentar a necessidade de monitoramento e auditoria, fatores que tornam os custos nãolineares. Os provedores tentam manter a satisfação dos clientes e, concomitantemente, também procuram minimizar os custos relacionados à manutenção de diversas versões. Como ilustração de um cenário de mudança em um portfólio de serviços, podemos imaginar os dilemas enfrentados por provedores como a Amazon.com, por exemplo. Por meio do seu portfólio, ela provê diversos serviços web com diferentes focos (automatização de pagamentos, ecommerce, armazenamento, infraestrutura baseada em Cloud Computing, etc). Considerando os serviços A, B e C como interdependentes entre si (A consome B e C, e B consome C, de formas distintas), uma mudança incompatível no serviço B afeta o uso tanto dos clientes diretos do serviço B (que apenas consomem B) quanto dos clientes de A, que podem ser clientes indiretos de B (pois A consome B). Nesta situação, a simples análise do número de requisições que B atende pode não ser suficiente para entender o impacto da mudança, já que ela por si só não abrange os efeitos da mudança de acordo com o uso direto/indireto. O provedor de serviços necessita de outros mecanismos para entender o impacto da mudança, como o cruzamento entre informações sobre os padrões de uso do serviço B, o impacto direto/indireto e as penalidades estabelecidas pelos SLAs (Service Level Agreements – Acordos de Nível de Serviço), por exemplo. Há diferentes stakeholders (partes interessadas) relacionados ao processo de tomada de decisão dentro do ciclo de vida de um serviço. Tipicamente, os stakeholders 70 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações estão ligados a uma perspectiva de um provedor de serviços (provedores, desenvolvedores, arquitetos de serviços, etc) ou à perspectiva de um consumidor de serviços (cliente, integrador de serviços, etc). Em particular, o provedor precisa lidar com decisões complexas, tais como as ilustradas no cenário supracitado, que abrangem escolhas que vão além do impacto técnico, envolvendo variáveis e perspectivas de negócios. Não existe apoio para esse nível de tomada de decisão organizacional, o qual demanda a integração de informações e a representação de diferentes aspectos da provisão de serviços (uso, versões, dados financeiros, etc). O paradigma de BI (Business Intelligence Inteligência de Negócios) representa o uso de informações organizacionais internas e externas para o apoio à tomada de decisão, com a transformação de dados em informação e em conhecimento [Golfarelli 2004]. Data Warehouse (DW) representa um dos principais fundamentos de BI, como uma base de dados centralizada, com dados integrados, históricos, e orientada a assunto, a qual pode ser consultada por meio de ferramentas analíticas (e.g. dashboards, pivot tables, relatórios e alertas) [Kimball 2002]. Este trabalho tem como tema central a exploração das possibilidades de apoio à tomada de decisão dos provedores de serviços web em relação à evolução de serviços. Um ciclo de vida de serviço orientado a mudanças, integrado com métodos e ferramentas, é necessário como base para o planejamento das mudanças. Introduzse o conceito de BI como a base para a proposição de métricas de análise e construção de um ambiente de apoio à tomada de decisão na gestão da evolução de serviços. O trabalho está organizado da seguinte maneira: a Seção 2 destaca os trabalhos relacionados e elenca as principais abordagens que estão ligadas à gestão do ciclo de vida; na Seção 3 são apresentados alguns conceitos de BI e a abordagem sugerida neste trabalho, demonstrando também os resultados alcançados até o momento; por fim, a Seção 4 traz as conclusões parciais e os próximos passos para a dissertação. 2. Trabalhos Relacionados A maioria dos trabalhos abrange uma perspectiva técnica sobre evolução de serviços (e.g. [Papazoglou, Andrikopoulos e Benbernou 2011]), sendo que poucos envolvem o apoio à tomada de decisão, em particular em uma perspectiva de negócios. Em [Papazoglou, Andrikopoulos e Benbernou 2011] apresentase uma metodologia para o ciclo de vida de serviços orientada a mudanças, que visa oferecer uma base para lidar com as mudanças profundas, isto é, que impactam toda uma cadeia de serviços e seus respectivos clientes. Estes autores dividem o ciclo em fases interrelacionadas, compostas por uma série de atividades, para chegar à realização de mudanças. Porém, não há detalhamento dos stakeholders, nem dos requisitos de decisão ou de métricas que apoiem as decisões subjacentes a estas atividades. [Treiber et al. 2008] também identifica atividades inerentes ao ciclo de vida de serviços, muitas delas semelhantes ao trabalho de [Papazoglou, Andrikopoulos e Benbernou 2011], e relacionaas aos diferentes stakeholders, isto é, o Provedor, o Desenvolvedor, o Integrador de serviços e o Cliente. Contudo, os autores não discutem o tipo de apoio necessário à realização das mudanças. 71 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações O conceito de governança de serviços abrange a criação, a gestão e a aplicação de políticas e padronizações para todos os processos relacionados ao ciclo de vida de serviços e aplicações SOA. De acordo com [Woolf 2006], a governança em SOA tem o papel de definir quem é o responsável pela tomada de decisão, quais as decisões que precisam ser tomadas e as políticas para a tomada decisão. Contudo, não há consenso na literatura quanto à definição, ao papel e à estrutura da governança em SOA, nem das atividades e decisões que devem ser apoiadas [Niemann et al. 2010]. Os trabalhos citados forneceram subsídios para a identificação de necessidades de decisão inerentes à evolução de serviços web em uma perspectiva gerencial. Em [Silva et al. 2012], estabelecemos uma relação entre esses trabalhos, resultando na identificação de fases que agrupam atividades necessárias para a identificação, a análise, o desenvolvimento e a implantação de mudanças profundas. Os requisitos relacionados a tais atividades orientam a definição de um ambiente de apoio à tomada de decisão do provedor de serviços, proposto neste trabalho. 3. Apoio à Tomada de Decisão Utilizando Business Intelligence Este trabalho tem como objetivo propor uma abordagem para apoiar o processo de tomada de decisão do provedor de serviços web com a integração de diferentes fontes de dados por meio do processo de ETL. Este relacionamento de fontes heterogêneas dá o suporte necessário para diferentes perspectivas de análise. A Figura 1(a) representa a arquitetura de BI para apoio a decisões relacionadas à evolução de serviços. Esta arquitetura é composta pela Camada de Mineração do Uso, a Camada de Consolidação dos Dados e a Camada Analítica. A Camada de Mineração compreende o processo de coleta de logs de uso dos serviços e a detecção de perfis de uso utilizando técnicas de mineração de dados. Este processo amplia as possibilidades de análise relacionadas ao uso dos serviços [Silva et al. 2012]. O foco do presente trabalho envolve a Camada de Consolidação dos Dados, que integra as informações obtidas a partir da mineração do uso com os dados sobre a estrutura e os custos dos serviços, e a Camada Analítica, que engloba as diferentes possibilidades, perspectivas e níveis de detalhamento de análise a partir do DW. Figura 1. Representações da abordagem proposta: (a) a arquitetura de BI para o cenário de evolução de serviços; (b) o modelo dimensional proposto para o DW. 72 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações A Figura 1(b) detalha o modelo inicial proposto para o DW, que tem como objetivo representar e integrar as análises sob a perspectiva financeira e de uso dos serviços. As métricas, representadas pelos atributos das tabelas FATO_PRECO e FATO_USO, quantificam desde o número de requisições diretas/indiretas realizadas pelos clientes, até o preço, os gastos e o lucro gerado por cada serviço, informações que são alvo de análise e comparação no processo de tomada de decisão. Os provedores de serviços não possuem um ambiente que integre tais informações e que disponibilize as mesmas de uma maneira compreensível e em uma perspectiva de negócios. Também não há abordagens voltadas especificamente para essa necessidade específica de apoio à decisão. Por isso, este trabalho aborda o conceito de BI justamente com o intuito de suprir essa carência dos provedores de serviços. 3.1. Resultados Parciais A partir de uma revisão bibliográfica, que relacionou aspectos de governança, stakeholders e atividades realizadas no processo de mudança do serviço, foram identificados alguns requisitos de decisão do provedor de serviços. Tais requisitos deram embasamento para a elaboração de um cenário, no qual alguns dos dilemas relacionados à tomada de decisão sobre mudanças em um portfólio de serviços puderam ser analisados. Em conjunto com outro trabalho focado na mineração do uso de serviços para a geração das bases de perfis e de dados de uso, foi possível esboçar a abordagem central do trabalho, inserindo BI no apoio à tomada de decisão do provedor de serviços. Estes resultados estão relatados em [Silva et al. 2012]. Também foi desenvolvida uma prova de conceito de um ambiente de BI para o estudo de caso com dados sintéticos. A Figura 2 ilustra um dashboard construído para representar as diferentes métricas e perspectivas de análise que foram propostas inicialmente. O gráfico de pizzas, do lado esquerdo da figura, representa a proporção de requisições por serviço para cada perfil de uso (grupos de usuários). Já o gráfico de bolha (lado direito) relaciona informações sobre Lucro x Gastos x Requisições com cada perfil de uso em um serviço específico, indicando perfis estrategicamente prioritários e mais sensíveis aos impactos de uma possível mudança. Isso demonstra que análises Figura 2. Dashboard que relaciona informações sobre custos e utilização dos serviços. 73 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações desse tipo, assim como outras que também são estrategicamente importantes sob a perspectiva de negócios, podem ser apoiadas pelas métricas propostas. O ambiente proporcionado pela prova de conceito também nos permitiu identificar outros pontos que precisam ser analisados, definidos e detalhados na abordagem, como o modelo de preços dos serviços e a necessidade de inclusão de novas métricas e dimensões. 4. Conclusões Parciais e Trabalhos Futuros Este trabalho propôs uma abordagem de BI para apoio à tomada de decisão de um provedor de serviços durante a evolução de serviços em um portfólio. A relação entre as atividades recorrentes à gestão do ciclo de vida de serviços, os stakeholders envolvidos e os aspectos de governança de serviços auxiliou a detecção dos requisitos de decisão em diferentes níveis organizacionais. Um cenário e uma prova de conceito foram criados e explorados com o objetivo de verificar as possibilidades de análise empregando a arquitetura proposta. As próximas atividades envolvem a definição de um modelo de preços para as métricas de custo do serviço, a ampliação do conjunto de métricas para análise, a implementação do protótipo de BI e a validação do modelo com um estudo de caso que propicie o cruzamento de requisitos de decisão de um caso real e as métricas propostas. Referências Andrikopoulos, V., Benbernou, S. e Papazoglou, M. P. (2011) “On The Evolution of Services”, IEEE Transactions on Software Engineering, vol. 99, no. PrePrints. Golfarelli, M., Rizzi, S. e Cella, I. (2004) “Beyond data warehousing: what's next in business intelligence?”, 7th ACM International Workshop on Data warehousing and OLAP (DOLAP), 16. Kimball, R. e Ross, M. (2002), The Data Warehouse Toolkit 2nd ed., John Willey & Sons. Niemann, M., Miede, A., Johannsen, W., Repp, N. e Steinmetz, R. (2010) “Structuring SOA Governance”, International Journal of IT/Business Alignment and Governance (IJITBAG), 1(1), pp. 5875. Papazoglou, M.P., Andrikopoulos, V. e Benbernou, S. (2011) “Managing Evolving Services”, IEEE Software, vol.28, no.3, pp.4955. Silva, E., Vollino, B., Becker, K. e Galante, R. (2012) “A Business Intelligence Approach to Support Decision Making in Service Evolution Management”, In IEEE International Conference on Service Computing (SCC 2012). Treiber, M., Truong, H., Dustdar, S., Feuerlicht, G., Lamersdorf, W. (2008) “On Analyzing Evolutionary Changes of Web Services”, International Conference on ServiceOriented Computing. Woolf, B. (2006) “Introduction to SOA governance. Governance: The Official IBM Definition, and Why You Need It”, IBM, http://www.ibm.com/developerworks/library/arservgov/. 74 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações Algoritmos de bulk-loading para o método de acesso métrico Onion-tree Arthur Emanuel de Oliveira Carosia1 , Profa. Dra. Cristina Dutra de Aguiar Ciferri1 1 Pós-Graduação em Ciências de Computação e Matemática Computacional Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade de São Paulo (USP) São Carlos, SP, Brasil {arthuremanuel, cdac}@icmc.usp.br Nı́vel: Mestrado Ano de ingresso no programa: 2011 Exame de qualificação: Março de 2012 Época esperada de conclusão: Março de 2013 Resumo. A Onion-tree é um método de acesso métrico (MAM) voltado à indexação de dados complexos em memória primária que possui as seguintes propriedades principais: (i) um método de particionamento que controla o número de subespaços disjuntos gerados em cada nó; (ii) uma técnica de substituição que pode alterar os pivôs de um nó folha em operações de inserção; e (iii) algoritmos de consulta por abrangência e aos k-vizinhos mais próximos, de forma que esses algoritmos possam explorar eficientemente seu método de particionamento. Entretanto, a Onion-tree apenas oferece funcionalidades voltadas à inserção dos dados um-a-um em sua estrutura. Ela não oferece, portanto, uma operação de bulk-loading que construa o ı́ndice considerando todos os elementos do conjunto de dados de uma única vez. A principal vantagem da operação de bulk-loading é analisar os dados antecipadamente para garantir melhor particionamento possı́vel do espaço métrico. O projeto de mestrado visa suprir essa limitação, por meio da proposta de algoritmos para a operação de bulk-loading da Onion-tree, os quais explorarão as caracterı́sticas intrı́nsecas desse MAM. Palavras-Chave. Método de Acesso Métrico, Operação de bulk-loading, Oniontree Os autores agradecem o apoio financeiro das seguintes agências de fomento à pesquisa do Brasil: FAPESP, CNPq, e CAPES. 75 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 1. Introdução Um MAM (método de acesso métrico) visa prover acesso eficiente a um grande número de aplicações que exigem comparação entre dados complexos, tais como imagens, áudio e vı́deo. Para melhorar o acesso aos dados complexos, MAMs reduzem o espaço de busca, guiando a busca a porções do conjunto de dados nas quais os elementos armazenados têm, provavelmente, maior similaridade com o elemento da consulta. A medida de semelhança entre dois elementos pode ser expressa como uma métrica que se torna menor à medida que os elementos são mais semelhantes [Hjaltason and Samet 2003]. Portanto, os MAMs particionam o espaço métrico em subespaços para que as consultas não tenham que acessar o conjunto de dados completo. Formalmente, um espaço métrico é um par ordenado < S, d >, onde S é o domı́nio dos elementos de dados e d : S ⇥ S ! R+ é a métrica. Para qualquer s1 , s2 , s3 2 S, a métrica deve possuir as seguintes propriedades: (i) identidade: d(s1 , s1 ) = 0; (ii) simetria: d(s1 , s2 ) = d(s2 , s1 ); (iii) não-negatividade: d(s1 , s2 ) 0; e (iv) desigualdade triangular: d(s1 , s2 ) d(s1 , s3 ) + d(s3 , s2 ) [Chávez et al. 2001, Kaster et al. 2009]. Por exemplo, elementos do conjunto S ⇢ S, os quais podem ser representados por números, vetores, matrizes, gráficos ou mesmo funções, podem ser indexados com um MAM usando métricas tais como a distância Manhattan (L1 ) ou a distância Euclidiana (L2 ) [Wilson and Martinez 1997]. Procurar por elementos próximos a um elemento de consulta sq 2 S é um problema central em aplicações que gerenciam dados complexos. Os dois tipos mais úteis de consultas por similaridade são a de abrangência e a de k-vizinhos mais próximos [Traina-Jr et al. 2002], as quais são definidas a seguir. Dado um raio de consulta rq , a consulta por abrangência retorna cada elemento si 2 S que satisfaz à condição d(si , sq ) rq . Já dada uma quantidade k 1, a consulta aos k-vizinhos mais próximos retorna os k elementos em S que são os mais próximos do centro de consulta sq . Atualmente, a Onion-tree [Carélo et al. 2011] é o MAM baseado em memória primária mais eficiente para pesquisa por similaridade disponı́vel na literatura. Ela indexa eficientemente dados complexos por meio da divisão do espaço métrico em regiões (ou seja, subespaços) disjuntas, usando para isso dois pivôs por nó. Uma limitação da Oniontree é apenas oferecer funcionalidades voltadas à inserção dos dados um-a-um em sua estrutura. Ela não oferece, portanto, uma operação de bulk-loading que construa o ı́ndice considerando todos os elementos do conjunto de dados de uma única vez. A principal vantagem da operação de bulk-loading é analisar os dados antecipadamente para garantir melhor particionamento possı́vel do espaço métrico. O projeto de mestrado tem como objetivo propor algoritmos para a operação de bulk-loading da Onion-tree. Essa operação consiste na carga maciça de elementos para esse MAM e pode ser útil nos casos de reconstrução do ı́ndice ou inserção de uma grande quantidade de elementos simultaneamente. Garantindo melhor particionamento do espaço métrico por meio da operação de bulk-loading, visa-se obter um melhor desempenho no processamento das consultas por abrangência e aos k-vizinhos mais próximos. Este artigo está estruturado da seguinte forma. A Seção 2 descreve a Onion-tree, enquanto que a Seção 3 sintetiza trabalhos correlatos. A Seção 4 apresenta a proposta a ser desenvolvida e como essa será validada, enquanto que a Seção 5 discute atividades em 76 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações andamento. O artigo é concluı́do na Seção 6, com as considerações finais. 2. Onion-tree A Onion-tree [Carélo et al. 2011] é um MAM voltado à memória primária que divide o espaço métrico em diversas regiões disjuntas (mais do que 4 regiões), usando para isso dois pivôs por nó. Para prover uma boa divisão do espaço métrico, a Onion-tree introduz as seguintes caracterı́sticas principais. • Procedimento de expansão, o qual inclui um método de particionamento que controla o número de subespaços disjuntos gerados em cada nó da estrutura. Isso é feito permitindo que números crescentes de subespaços disjuntos sejam definidos pelos pivôs de um nó. A Figura 1a ilustra um exemplo de um procedimento de expansão, o qual incrementa o número de subespaços disjuntos iniciais (i.e. I, II, III e IV) em 3, gerando 7 subespaços disjuntos (i.e. I, II, III, IV, V, VI, VII). • Técnica de substituição, a qual pode alterar os pivôs de um nó durante operações de inserção, usando como base uma polı́tica de substituição que garante melhor divisão do espaço métrico, independente da ordem de inserção dos elementos. A Figura 1b ilustra a substituição do pivô s1 com o elemento si , e a nova divisão do espaço métrico gerada. • Algoritmos para a execução de consultas por abrangência e aos k-vizinhos mais próximos, de forma que essas consultas possam explorar eficientemente o método de particionamento da Onion-tree. A proposta desses algoritmos também inclui uma ordem de visita dos subespaços disjuntos em consultas aos k-vizinhos mais próximos, como ilustrado na Figura 1c. Figura 1. Visão geral das principais caracterı́sticas da Onion-tree. Uma questão importante relacionada ao procedimento de expansão é a definição do número de expansões que irão ser aplicadas aos nós. Existem duas diferentes polı́ticas: fixa ou variável. Enquanto que o primeiro gera uma estrutura chamada F-Onion-tree, que aplica o mesmo número de expansões a cada nó de acordo com um dado parâmetro, o segundo gera uma estrutura chamada V-Onion-tree, que aplica diferentes números de expansões a cada nó. 77 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 3. Trabalhos Correlatos Existem poucos trabalhos de bulk-loading na literatura que abordam métodos de acesso métricos. O algoritmo de bulk-loading da M-tree [Ciaccia and Patella 1998] gera agrupamentos de objetos escolhidos a partir de amostras coletadas do conjunto de dados. Inicialmente são escolhidos k elementos como amostras e cada um dos elementos restantes do conjunto de dados é associado à amostra mais próxima do conjunto de amostras, produzindo k conjuntos que irão compor a estrutura final. O algoritmo de bulk-loading da Slimtree [Vespa et al. 2007] constrói a estrutura no sentido top-down baseado em técnicas de amostragem e cria árvores balanceadas com reduzida sobreposição em cada nó. Esses trabalhos correlatos são direcionados para memória secundária, e visam reduzir a região de sobreposição dos nós. Em contrapartida, a Onion-tree é voltada à memória primária, não apresenta sobreposição em seus nós. Bercken and Seeger (2001) introduzem dois algoritmos de bulk-loading que podem ser aplicados para métodos de acesso baseados em árvore e quando o conjunto de dados não cabe completamente em memória primária. Nesses algoritmos, os elementos de uma amostra dos dados são inseridos em um ı́ndice mantido em memória primária, e cada nó folha do ı́ndice criado é associado a um bucket armazenado em disco. Os registros que não foram inseridos em memória primária após ela estar cheia são inseridos no ı́ndice, mas ao chegar aos nós folhas eles são associados aos buckets em disco. Esse trabalho correlato é baseado em uma forma de particionamento diferente da utilizada pela Onion-tree e portanto não pode ser aplicado a ela. Ademais, diferentemente da Oniontree, esse trabalho correlato considera que o ı́ndice será armazenado em disco. 4. Proposta 4.1. Descrição A Onion-tree é o MAM baseado em memória primária mais eficiente disponı́vel na literatura. Como uma de suas limitações, destaca-se o fato de que ela apenas oferece funcionalidades voltadas à inserção dos dados um-a-um em sua estrutura. Ou seja, a Onion-tree não oferece uma operação de bulk-loading que construa o ı́ndice considerando todos os elementos do conjunto de dados de uma única vez. Dentro deste contexto, o projeto de mestrado tem como objetivo propor algoritmos para a operação de bulk-loading para a Onion-tree, suprindo, portanto, essa sua limitação. No desenvolvimento do trabalho, estão sendo investigados diferentes aspectos, os quais são descritos a seguir: • Organização antecipada dos dados, de forma a definir qual a melhor ordem dos elementos a serem inseridos no ı́ndice. Essa organização está sendo feita de acordo com as caracterı́sticas da Onion-tree de balanceamento, particionamento do espaço métrico, número de expansões e polı́tica de substituição de pivôs, as quais, usadas como base, vislumbram garantir melhor desempenho no posterior processamento das consultas. • Desenvolvimento de algoritmos para a operação de bulk-loading para a Oniontree. Para o desenvolvimento desses algoritmos, estão sendo investigadas as abordagens top-down e bottom-up e a formas de realização do bulk-loading baseado em amostragem, vislumbrando identificar qual abordagem e a forma de realização que provêm o melhor algoritmo de bulk-loading para a Onion-tree. 78 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 4.2. Validação Quatro aspectos podem ser considerados na validação da proposta de bulk-loading: tipo de dado, origem dos dados, volume dos dados, e tipo e seletividade das consultas. Serão usados conjuntos de dados reais de imagens com diferentes volumes de dados e diferentes dimensionalidades. Exemplos de conjuntos de dados incluem os dados sobre a camada de Ozônio (archive.ics.uci.edu/ml/datasets/Ozone+Level+Detection), sobre as cidades brasileiras (www.ibge.gov.br), sobre histogramas de cores (kdd.ics.uci.edu) e sobre imagens de câncer de mama (www.kddcup2008.com). Os algoritmos para a operação de bulk-loading que forem desenvolvidos serão comparados ao algoritmo de inserção um-a-um provido pela Onion-tree. Até o presente momento, não existem trabalhos na literatura que realizem a operação de bulk-loading para a Onion-tree. Caso algum trabalho seja publicado, ele será usado nas comparações. Nos testes de desempenho, serão coletadas as medidas número de cálculos de distância e tempo gasto em segundos. Também será coletado o tamanho do ı́ndice em bytes. 5. Atividades em Andamento O primeiro algoritmo em desenvolvimento, chamado OnionGuloso, realiza a construção da estrutura no sentido top-down, ou seja, da raiz para as folhas. Ademais, ele é direcionado à construção da F-Onion-tree. Seu objetivo é construir a estrutura do ı́ndice distribuindo uniformemente ou aproximadamente uniforme os elementos do conjunto de dados entre as regiões do espaço métrico definidas pelo par de pivôs escolhido, de tal forma que a árvore fique totalmente balanceada ou quase balanceada. Com isso, a expectativa é que a estrutura resultante garanta melhor desempenho no processamento das consultas quando comparada com a estrutura gerada pela inserção dos dados um-a-um, o que geralmente leva a uma árvore desbalanceada. O algoritmo OnionGuloso testa, a cada nı́vel, todas as possibilidades de pares de elementos para determinar quais deles são os melhores pivôs de cada nó da estrutura. Os melhores pares de pivôs são escolhidos a partir da minimização de uma função objetivo, que verifica o quão distante está a distribuição dos elementos proporcionada pelo par de pivôs testados em relação à distribuição ideal. Para isso, inicialmente aplica-se o método utilizado para determinar quais os melhores pivôs por região da seguinte forma. Para cada par de elementos de uma dada região, verifica-se aquele par cuja quantidade de elementos que serão alocados em cada uma das regiões definidas pela Onion-tree seja uniforme ou aproximadamente uniforme, isto é, regiões com quantidades de elementos iguais ou quase iguais. Esse processo é feito inicialmente para o nó raiz e, assim que seus pivôs são determinados, ele é repetido recursivamente para cada uma das regiões geradas na estrutura. O mesmo processo se repete para cada nı́vel gerado na árvore até que cada uma das regiões possua apenas dois ou menos elementos. O algoritmo guloso possui alta complexidade, O(n3 ), desde que todos os pares possı́veis de pivôs são verificados em cada nı́vel. Ou seja, para cada vez que o algoritmo é invocado, a sua complexidade envolve a combinação dos n elementos dos dados de entrada dois a dois. Portanto, o tempo de execução do algoritmo para entradas muito grandes é elevado. No entanto, comparações entre o algoritmo OnionGuloso e o algoritmo de inserção um-a-um da Onion-tree realizadas por meio de testes de desempenho experimentais com os conjuntos de dados cidades brasileiras e imagens de câncer de 79 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações mama mostraram que: (i) a estrutura criada pelo algoritmo proposto apresentou redução em sua altura média de 22% até 40%; (ii) o desempenho no processamento da consulta aos k-vizinhos mais próximos apresentou um ganho de 20% até 60% em quantidade de cálculos de distância e de 25% a 61% em tempo gasto; e (iii) o desempenho no processamento de consulta por abrangência apresentou um ganho de 28% até 70% em quantidade de cálculos de distância e de 49% a 65% em tempo gasto. 6. Considerações Finais e Próximas Atividades A Onion-tree é um MAM voltado à memória primária que divide o espaço métrico em várias regiões disjuntas para prover indexação eficiente de dados complexos. O projeto de mestrado visa suprir uma de suas limitações, por meio da proposta de algoritmos para a operação de bulk-loading. As próximas atividades a serem realizadas envolvem o desenvolvimento de técnicas de amostragem para que o algoritmo OnionGuloso execute sobre uma entrada menor de dados, diminuindo sua complexidade. Para avaliar a qualidade da etapa de amostragem, serão feitos testes para comparar os resultados obtidos por meio dessa extensão com os resultados atualmente apresentados pelo algoritmo OnionGuloso. Outra atividade a ser desenvolvida é a criação de um algoritmo de bulk-loading que utilize a estratégia bottom-up, em contrapartida à abordagem top-down do algoritmo OnionGuloso. Referências Bercken, J. V. d. and Seeger, B. (2001). An evaluation of generic bulk loading techniques. In Proceedings of the 27th International Conference on Very Large Data Bases, pages 461–470. Carélo, C. C. M., Pola, I. R. V., Ciferri, R. R., Traina, A. J. M., Traina, Jr, C., and Ciferri, C. D. A. (2011). Slicing the metric space to provide quick indexing of complex data in the main memory. Information Systems, 36(1):79–98. Chávez, E., Navarro, G., Baeza-Yates, R. A., and Marroquı́n, J. L. (2001). Searching in metric spaces. ACM Computing Surveys, 33(3):273–321. Ciaccia, P. and Patella, M. (1998). Bulk loading the M-tree. In Proceedings of the 9th Australasian Database Conference, pages 15–26. Hjaltason, G. R. and Samet, H. (2003). Index-driven similarity search in metric spaces. ACM Transactions on Database Systems, 28(4):517–580. Kaster, D. S., Bugatti, P. H., Traina, A. J. M., and Jr., C. T. (2009). Incorporating metric access methods for similarity searching on oracle database. In Proceedings of the XXIV Brazilian Symposium on Databases, pages 196–210. Traina-Jr, C., Traina, A. J. M., Faloutsos, C., and Seeger, B. (2002). Fast indexing and visualization of metric data sets using Slim-trees. IEEE Transactions on Knowledge and Data Engineering, 14(2):244–260. Vespa, T. G., Jr., C. T., and Traina, A. J. M. (2007). Bulk-loading dynamic metric access methods. In Proceedings of the XXII Brazilian Symposium on Databases, pages 160– 174. Wilson, D. R. and Martinez, T. R. (1997). Improved heterogeneous distance functions. Journal of Artificial Intelligence Research, 6:1–34. 80 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações Indexação e Recuperação Multimodal de Vı́deo Mestrando: Ricardo Carlini Sperandio1 Orientador: Zenilton Kleber Gonçalves do Patrocı́nio Jr.1 Co-orientador: Hugo Bastos de Paula 1 Programa de Pós-Graduação em Informática Pontifı́cia Universidade Católica de Minas Gerais (PUC Minas) Belo Horizonte – Minas Gerais – Brasil 1 [email protected], {hugo,zenilton}@pucminas.br Nı́vel: Mestrado Ano de ingresso no programa: 2011 Exame de qualificação: maio/2012 Época esperada de conclusão: dezembro/2012 Resumo. O objetivo deste trabalho é investigar a indexação e recuperação de vı́deos por conteúdo utilizando informação multimodal. Para este fim os vı́deos serão descritos através da extração de caracterı́sticas de seu conteúdo visual e acústico. A indexação e recuperação destes vı́deos será feita por meio de uma nova estrutura de dados métrica, a Slim2 -tree, uma extensão da Slim-tree com suporte a multimodalidade. Espera-se que, com a realização de uma busca integrando várias modalidades de informação contidas no vı́deo, a recuperação de vı́deos baseada em conteúdo melhore o desempenho tanto em qualidade como em eficiência, viabilizando a realização de consultas em grandes bases de vı́deos. Palavras-chave: Recuperação de vı́deos, consultas multimodais, similaridade, métodos de acesso métricos, árvores métricas. 81 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 1. Introdução e Motivação Em face da utilização crescente de sistemas para a recuperação de vı́deos surge, então, a necessidade de prover mecanismos para o armazenamento, indexação e recuperação eficientes deste tipo de mı́dia. A forma comumente implementada para a consulta destes sistemas é realizada por meio da utilização de palavras-chave, em que a indexação e consulta é feita por meio de anotações e/ou metadados cadastrados previamente para cada um dos vı́deos da base de dados. Contudo, segundo [Shao et al. 2008], esta abordagem é inadequada para grandes bases de dados de vı́deos, pois envolve grande esforço humano na geração de anotações/metadados, além do fato de que descrições erradas e/ou incompletas podem impactar negativamente no resultado da busca. Sendo assim, a utilização do próprio conteúdo do vı́deo para a indexação e recuperação poderia contribuir para melhoria deste cenário, dando origem aos sistemas de recuperação de vı́deo por conteúdo (Content-Based Video Retrieval – CBVR) em bibliotecas digitais multimı́dia (Multimedia Digital Libraries – MM-DLs). A busca por similaridade é a base principal para funcionamento dos sistemas de recuperação baseados em conteúdo, sendo alvo de vários estudos nas últimas duas décadas [Almeida et al. 2010]. No caso de vı́deos digitais, a busca por similaridade tem geralmente focado exclusivamente no uso das informações visuais, negligenciando uma importante fonte de informação suplementar: a trilha acústica do vı́deo. O foco deste trabalho está na indexação e recuperação eficiente de vı́deos através do uso de informações multimodais para a caracterização de seus conteúdos. 2. Conceitos Básicos Esta seção apresenta os conceitos básicos utilizados nesse trabalho, provendo a fundamentação teórica para a proposta apresentada na seção 3. 2.1. Consulta Multimodal O suporte a consultas multimodais – aquelas que envolvem mais de um tipo de dado, como, por exemplo, o de natureza visual ou acústica – é de grande valia para se lidar com MM-DLs. Por exemplo, consultas como: “encontre vı́deos de telejornais com a presidenta Dilma Rousseff comentando sobre o encontro da Rio+20”, exigem mais de uma modalidade de dados. Em [Coimbra 2011], são discutidos métodos para a segmentação multimodal em MM-DLs de telejornais. A utilização de múltiplas modalidades permite ao sistema se beneficiar das vantagens de cada uma delas. Segundo [Yan and Hauptmann 2007] e [Atrey et al. 2010], a combinação de resultados de múltiplas modalidades pode melhorar consistentemente o tempo e a precisão da recuperação quando comparado à utilização isolada de cada modalidade. O uso de várias modalidades envolve a adoção de estratégias de fusão. Diferentes técnicas de fusão multimodal são descritas e analisadas em [Atrey et al. 2010]. 2.2. Métodos de Acesso Métricos A necessidade de se armazenar e recuperar informações mais complexas, como imagens, sons, vı́deos, entre outros, desencadeou uma série de estudos, uma vez que estes tipos de dados não obedecem uma “Relação de Ordem Total” – ROT [Vespa 2007, 82 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações p. 1]. As R-tree e kd-tree, entre outras, basearam-se no conceito de espaço vetorial [Gaede and Günther 1998]. Estas técnicas fazem uso das informações de coordenadas para agrupar e organizar pontos no espaço. Contudo para certos domı́nios de dados, como CBVR, seriam necessárias um grande número de dimensões no espaço vetorial, ocasionando um problema conhecido como “maldição da dimensionalidade” [Chávez et al. 2001]. Para estes tipos de dados foram desenvolvidos métodos de acesso métricos que suportam consultas por similaridade [Chávez et al. 2001], em que uma função de distância representa a (dis)similaridade dos dados. Segundo [Bugatti 2008], a escolha adequada desta função de distância melhora efetivamente os resultados das consultas por similaridade. Em [Zezula et al. 2010] são descritas diversas estruturas para indexação em espaços métricos. Estas estruturas são baseadas nas seguintes abordagens: determinar partições de objetos usando uma função de distância, sendo um dos elementos escolhido como representante (pivô) deste conjunto, ou dividir o conjunto original em conjuntos de tamanho fixo, sendo que para cada conjunto é escolhido um representante (pivô). Na busca, os representantes são utilizados para diminuir o escopo da busca através de um critério de poda obtido a partir do uso da desigualdade triangular. As primeiras estruturas métricas propostas, como a vp-tree e a FQ-tree, eram estáticas, não dando suporte a inserções nem remoções [Zezula et al. 2010]. Já a Mtree [Ciaccia et al. 1997] procurou resolver essa deficiência. Ela é uma árvore balanceada dinâmica, na qual os dados são armazenados nas folhas, de forma análoga à B+ -tree. Os nós internos têm apontadores que direcionam o acesso às folhas. Cada nó possui no máximo C objetos e no mı́nimo C2 objetos, sendo cada um deles chamado de representante (ou pivô), em torno do qual se estabelece o raio de cobertura do nó. Este paradigma se tornou muito popular, e muitas pesquisas estendendo a M-tree foram propostas. Para este trabalho, as duas extensões serão analisadas: a Slim-tree [Traina et al. 2000] e a M2 -tree [Ciaccia and Patella 2000], descritas nas seções 2.3 e 2.4, respectivamente. 2.3. Slim-tree A Slim-tree [Traina et al. 2000] é uma extensão da M-tree objetivando a minimização das sobreposições entre regiões. Assim como na M-tree o espaço é dividido em regiões e sub-regiões não disjuntas, definidas por um objeto representativo (Srep ) utilizado como referência para os demais objetos da sub-árvore, e um raio de cobertura que deve ser grande o suficiente para abranger todos os elementos armazenados na sub-árvore. Isso permite aos algoritmos de busca podar ramos inteiros da árvore, comparando a distância entre o objeto de consulta qo e Srep , com o raio de consulta rq e o raio da sub-árvore rs , valendo-se da desigualdade triangular. A Slim-tree foi criada para diminuir o grau de sobreposição entre os nós da árvore métrica. Para fazer a medição da sobreposição foram propostos o fat-factor e o bloatfactor, que representam o grau absoluto e relativo (à árvore ótima) de sobreposição de uma árvore, respectivamente. A diminuição da sobreposição é obtida pela utilização do algoritmo Slim-down que realiza a reinserção de objetos de forma conveniente para diminuir o raio de cobertura dos nós. A Slim-tree também propôs uma heurı́stica de inserção por mı́nima ocupação (minoccup) e o uso de Minimal Spanning Tree – MST durante a divisão de nó e escolha dos representantes. 83 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 2.4. M2 -tree A M2 -tree [Ciaccia and Patella 2000] foi desenvolvida para dar suporte a buscas “complexas” sobre objetos descritos por mais de um descritor de caracterı́stica. A abordagem combina em um único ı́ndice os dados descritos relativos aos múltiplos espaços métricos, permitindo inclusive a utilização de funções de distância distintas para cada espaço. Nesta abordagem cada objeto (oi ) pode ser representado por uma ou mais caracterı́sticas (oi [1] e oi [2]). O nó interno é estruturado para conter o valor associado para cada caracterı́stica (oi [n]), seus respectivos raios de cobertura (ric [n]) e distâncias (di [n]) para o objeto representativo do nó pai (pp ). O nó folha apresenta os valores das caracterı́sticas (oi [n]) e suas respectivas distâncias para o nó pai (di [n]), como visto na Figura 1(a). Outras estruturas para múltiplas caracterı́sticas foram propostas na literatura. A MOSAIC-tree [Goh and Tan 2000], onde múltiplas caracterı́sticas são indexadas em camadas. Para cada camada (representando uma caracterı́stica) é usada uma árvore multidimensional (R-tree), com os nós folha da camada superior apontando para a raiz da árvore seguinte na camada inferior. Há também estruturas derivadas da M2 -tree: a MFItree [He and Yu 2010] que indexa um único valor de distância, obtido através de uma combinação linear das distâncias entre as várias caracterı́sticas do objeto e seu respectivo pivô; e a TEMPOM2 -tree [Döller et al. 2012] que consiste em duas camadas, a primeira é uma M2 -tree, usada para indexar o vı́deo com base em suas caracterı́sticas de conteúdo, sendo os nós folhas apontadores para a segunda camada, que consiste na representação da segmentação temporal do vı́deo. Nó interno: p1 [1] r1c [1] d1 (p1 [1], pp [1]) p1 [2] r1c [2] d2 (p1 [2], pp [2]) ptr Nó interno: p1 [1] r1c [1] d1 (p1 [1], pp [1]) p1 [2] r1c [2] d2 (p1 [2], pp [2]) ne ptr Nó folha: oi [1] d1 (oi [1], p1 [1]) oi [2] d2 (oi [2], p1 [2]) Nó folha: oi [1] d1 (oi [1], p1 [1]) oi [2] d2 (oi [2], p1 [2]) (a) M2 -tree. (b) Slim2 -tree Figura 1. Representação dos nós da M2 -tree e da Slim2 -tree. 3. Proposta de implementação da Slim2 -tree Este trabalho propõe a implementação da Slim2 -tree, uma estrutura métrica para a recuperação multimodal de vı́deo, semelhante à Slim-tree, porém em que cada objeto é representado por múltiplas caracterı́sticas (de duas ou mais modalidades), de forma análoga à M2 -tree, apresentando ainda como informação adicional o número de entradas usadas (ne). As estruturas dos nós interno e folha são mostrados na Figura 1(b) cujas descrições de seus elementos são análogas as da M2 -tree. Se por um lado a M2 -tree pode contribuir para a melhoria da qualidade dos resultados, ela pode acarretar em um incremento do número de falsos-positivos, enquanto a Slim2 -tree procurará minimizar esse efeito através da redução da sobreposição dos hipervolumes. Nas seções 3.1, 3.2 e 3.3 são citadas as principais modificações propostas pela Slim2 -tree. 3.1. Inserção Multimodal A inserção na Slim-tree pode ser feita de três formas distintas: de forma aleatória, levandose em conta a menor distância (mindis); ou seleciona a sub-árvore com menor ocupação (minoccup). Distintos conteúdos do vı́deo são descritos por diferentes caracterı́sticas. 84 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações Para [He and Yu 2010] as distâncias individuais dessas caracterı́sticas devem ser normalizadas, tornando a medida final de similaridade uma distância uniforme para todas as caracterı́sticas. Entretanto este trabalho ainda não foi aplicado em problemas de busca multimodal. A variação multimodal – Slim2 -tree – analisa e leva em conta as múltiplas distâncias para cada caracterı́stica entre o objeto e um dado pivô, sendo alvo deste estudo a definição de uma “função de score” a ser utilizada na fusão das diferentes modalidades, que pode ser, por exemplo, a função min-max ou uma combinação linear entre as distâncias normalizadas de cada modalidade. 3.2. Slim-down Multimodal O Slim-down é um algoritmo proposto para diminuir o grau de sobreposição entre os nós da Slim-tree. Para cada nó folha é verificado se seu elemento mais distante está no raio de cobertura de outro pivô. Caso esteja, ele é movido do pivô atual para o outro, reduzindo com isso o raio da primeira folha. O alvo de estudo na variação multimodal é investigar como reduzir o tamanho dos hipervolumes associados as folhas da Slim2 -tree utilizando as múltiplas distâncias e a “função de score”. 3.3. Consulta Multimodal As consultas Range Query – RQ e k-Nearest Neighbor Query – kNNQ serão aplicadas simultaneamente nos diversos domı́nios de caracterı́sticas. A RQ é realizada tendo como delimitadores os raios associados a cada domı́nio. A polı́tica para a kNNQ será analisada conjuntamente com a “função de score” utilizada na inserção para fusão multimodal. 4. Situação Atual da Proposta e Resultados Esperados A metodologia proposta para a avaliação da Slim2 -tree consiste em indexar uma base de vı́deos utilizando caracterı́sticas visuais e acústicas. Para tal, na abordagem atual, os vı́deos são segmentados em clipes de duração fixa (p. ex. 1 s). Para cada clipe é extraı́do um quadro-chave (p. ex. o central) e este é redimensionado para uma resolução de 32×32 px, e o conteúdo acústico é reamostrado em 22,05 kHz monaural. O descritor global GIST [Oliva and Torralba 2001] é extraı́do para cada quadro-chave, resultando em um vetor de caracterı́sticas com 960 dimensões. Sobre os dados acústicos são calculados os coeficientes para a representação da fala baseados na percepção auditiva humana, Mel-frequency Cepstral Coefficients – MFCCs [Ganchev et al. 2005] com janelas de 40 ms e sobreposição de 25%, gerando para cada janela um vetor de caracterı́sticas com 13 dimensões, posteriormente os vetores de cada janela são concatenados em um único vetor de 377 dimensões. Em cada domı́nio os dados são normalizados e então indexados. Como na literatura não foi encontrada nenhuma estrutura de dados para indexação multimodal de vı́deos baseada nos conteúdos visual e acústico, os resultados da Slim2 -tree serão comparados com os apresentados pela M2 -tree1 e pelos apresentados pela utilização de duas Slim-trees (uma para cada modalidade com posterior fusão dos resultados). Espera-se que, com a realização de uma busca integrando várias modalidades de informação contidas no vı́deo, a recuperação de vı́deos baseada em conteúdo melhore o desempenho tanto em qualidade como em eficiência, viabilizando a realização de consultas em grandes bases de vı́deos. 1 A implementação a ser utilizada foi desenvolvida pelo autor desta proposta baseada nas polı́ticas padrão da M-tree, uma vez que não foi possı́vel o acesso à implementação original da M2 -tree. 85 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações Agradecimentos: Apoio financeiro recebido da CAPES e do FIP/PUC Minas. Referências Almeida, J., Valle, E., Torres, R. S., and Leite, N. J. (2010). DAHC-tree: An effective index for approximate search in high-dimensional metric spaces. JIDM, 1(3):375–390. Atrey, P. K., Hossain, M. A., El Saddik, A., and Kankanhalli, M. S. (2010). Multimodal fusion for multimedia analysis: a survey. Multimedia Systems, 16(6):345–379. Bugatti, P. H. (2008). Análise da influência de funções de distância para o processamento de consultas por similaridade em recuperação de imagens por conteúdo. Master’s thesis, Universidade de São Paulo. Chávez, E., Navarro, G., Baeza-Yates, R., and Marroquı́n, J. L. (2001). Searching in metric spaces. ACM Comput. Surv., 33(3):273–321. Ciaccia, P. and Patella, M. (2000). The M2-tree: Processing complex multi-feature queries with just one index. In 1st DELOS Workshop: ISSQDL. Ciaccia, P., Patella, M., and Zezula, P. (1997). M-tree: An efficient access method for similarity search in metric spaces. In Proc. 23rd VLDB’97, pages 426–435. Coimbra, D. B. (2011). Segmentação de cenas em telejornais: uma abordagem multimodal. Master’s thesis, Universidade de São Paulo, São Carlos. Döller, M., Stegmaier, F., Jans, S., and Kosch, H. (2012). TempoM2: A multi feature index structure for temporal video search. In AMM, volume 7131, pages 323–333. Gaede, V. and Günther, O. (1998). Multidimensional access methods. ACM Comput. Surv., 30(2):170–231. Ganchev, T., Fakotakis, N., and Kokkinakis, G. (2005). Comparative evaluation of various MFCC implementations on the speaker verification task. In Proc. SPECOM, pages 191–194. Goh, S.-T. and Tan, K.-L. (2000). MOSAIC: A fast multi-feature image retrieval system. Data & Knowledge Engineering, 33(3):219 – 239. He, Y. and Yu, J. (2010). MFI-tree: An effective multi-feature index structure for weighted query application. Comput. Sci. Inf. Syst., 7(1):139–152. Oliva, A. and Torralba, A. (2001). Modeling the shape of the scene: A holistic representation of the spatial envelope. International Journal of Computer Vision, 42(3):145–175. Shao, J., Shen, H. T., and Zhou, X. (2008). Challenges and Techniques for Effective and Efficient Similarity Search in Large Video Databases. PLDV, 1(2):1598–1603. Traina, C., Traina, A., Seeger, B., and Faloutsos, C. (2000). Slim-trees: High performance metric trees minimizing overlap between nodes. In 7th EDBT, pages 51–65. Vespa, T. G. (2007). Operação de carga-rápida (bulk-loading) em métodos de acesso métricos. Master’s thesis, Universidade de São Paulo, São Carlos. Yan, R. and Hauptmann, A. G. (2007). A review of text and image retrieval approaches for broadcast news video. Inf. Retr., 10(4-5):445–484. Zezula, P., Amato, G., Dohnal, V., and Batko, M. (2010). Similarity Search: The Metric Space Approach. Advances in Database Systems. Springer. 86 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações Indexação de Dados Biológicos baseado em Vetores de Sufixo Generalizados para Disco Felipe Alves da Louza1 , Profa. Dra. Cristina Dutra de Aguiar Ciferri1 1 Pós-Graduação em Ciências de Computação e Matemática Computacional Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade de São Paulo (USP) São Carlos, SP, Brasil {louza, cdac}@icmc.usp.br Nı́vel: Mestrado Ano de ingresso no programa: 2012 Exame de qualificação: Junho de 2012 Época esperada de conclusão: Julho de 2013 Resumo. Com o avanço tecnológico, a quantidade de dados biológicos coletados, armazenados e disponı́veis para análise tem aumentado exponencialmente. Esses dados referem-se às sequências biológicas de DNA, RNA e de proteı́nas e são armazenadas em bancos de dados biológicos (BDBs) como cadeias de caracteres. O casamento exato de cadeias de caracteres desempenha um papel importante em pesquisas por similaridade em BDBs, atuando como um filtro na etapa de alinhamento de sequências biológicas. Além disso, para auxiliar essas pesquisas, existem os ı́ndices e, dentro desse contexto, o vetor de sufixo é uma estrutura de dados muito utilizada. Desafios relacionados ao uso de vetores de sufixo na indexação de BDBs referem-se à construção do ı́ndice para grandes cadeias, ao armazenamento e à manipulação eficiente de sua estrutura em memória externa (ou seja, disco), e à indexação de conjuntos de cadeias por meio de vetores de sufixo generalizados. Na literatura, trabalhos correlatos que usam vetores de sufixo apresentam as seguintes limitações. Por um lado, trabalhos que usam vetores de sufixo generalizados são direcionados apenas à memória primária. Por outro lado, trabalhos voltados à manipulação de vetores de sufixo em disco não enfocam vetores de sufixo generalizados. Essas limitações motivam o desenvolvimento deste projeto de mestrado, o qual tem por objetivo investigar a indexação persistente de dados biológicos baseado em vetores de sufixo generalizados. Palavras-Chave bancos de dados biológicos, ı́ndices, vetores de sufixo para disco, vetores de sufixo generalizados. Os autores agradecem o apoio financeiro das seguintes agências de fomento à pesquisa do Brasil: FAPESP, CNPq, CAPES. 87 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 1. Introdução A quantidade de dados biológicos coletados, armazenados em banco de dados biológicos (BDBs) e disponı́veis para análise tem aumentado exponencialmente devido ao avanço tecnológico. Esses dados referem-se às sequências biológicas de DNA, RNA e de proteı́nas e são armazenados nos bancos de dados biológicos (BDBs) como cadeias de caracteres. Diversos avanços na medicina têm sido obtidos por meio da pesquisa por similaridade em sequências biológicas [Gusfield 1997]. Surge, então, o desafio de pesquisar eficientemente BDBs. Em geral, pesquisas por similaridade em sequências biológicas são realizadas por meio do alinhamento dessas sequências. No entanto, métodos para alinhamento são computacionalmente caros, e raramente aplicados diretamente a BDBs. O casamento exato de cadeias de caracteres desempenha um papel importante em pesquisas por similaridade em BDBs, atuando como um filtro na etapa de alinhamento de sequências biológicas. Por exemplo, essa estratégia é utilizada pela ferramenta BLAST [Altschul et al. 1990], uma das mais importantes ferramentas de pesquisa por similaridade em BDBs. Para auxiliar pesquisas por similaridade, existem os ı́ndices, os quais conduzem as buscas a porções do conjunto de dados nas quais as sequências armazenadas têm maior probabilidade de serem similares à consulta. Na literatura, diferentes estruturas de dados têm sido usadas para indexação de cadeias de caracteres, entre elas, destaca-se a tabela hash, a árvore de sufixo e o vetor de sufixo [Gusfield 1997]. Nesse trabalho, enfoca-se o uso de vetores de sufixo, desde que essa estrutura é mais econômica em termos de espaço do que árvore de sufixo, e não é limitada à indexação de subcadeias de tamanho especı́fico como a tabela hash. Um vetor de sufixo AT para uma cadeia T [1, n], com n caracteres, é um vetor de inteiros i ∈ [1, n] com todos os sufixos T [i] ordenados lexicograficamente [Manber and Myers 1993]. Uma vez construı́do AT , consultas por subcadeias em AT podem ser realizadas eficientemente. Adicionalmente, vetores de sufixo podem ser generalizados para indexar conjuntos de cadeias. Um vetor de sufixo generalizado GC para um conjunto C = {T1 , . . . , Tr }, com r cadeias, possibilita a busca por similaridade em subcadeias de C e também a comparação entre todas as cadeias Ti ∈ C [Gusfield 1997]. Este projeto de mestrado visa investigar a indexação persistente de dados biológicos baseado em vetores de sufixo generalizados. Mais detalhadamente, o projeto pretende desenvolver algoritmos relacionados à manipulação dos vetores de sufixo em disco e considerar extensões de suas estruturas de dados para indexar conjuntos de cadeias armazenadas em BDBs, por meio de vetores de sufixo generalizados. Pretendese investigar, portanto, a construção e a manipulação de vetores de sufixo generalizados armazenados em disco, e a realização de pesquisa por similaridade sobre esses vetores de sufixo generalizados persistentes. Este artigo está organizado como segue. Na Seção 2 são descritos fundamentos relacionados aos vetores de sufixo. Na Seção 3 são descritos trabalhos correlatos. Na Seção 4 é apresentada a proposta deste trabalho junto com os objetivos e a validação. Na Seção 5 são discutidas as atividades em andamento. O artigo é finalizado na Seção 6 com as considerações finais e as próximas atividades. 88 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 2. Vetor de Sufixo Sejam Σ = {α1 , α2 , . . . , ασ } um alfabeto com σ caracteres e uma ordem linear α1 < α2 < . . . < ασ definida, Σ∗ o conjunto das cadeias construı́das a partir de Σ, e $ ∈ / Σ um caractere que representa o final de uma cadeia, com $ < αi , ∀αi ∈ Σ. Seja S ∈ Σ∗ uma cadeia de carecteres, S[i, j] (1 ≤ i ≤ j ≤ n) é uma subcadeia de S que começa na posição i e termina na posição j. Dessa forma, S = S[1, n] = s1 s2 . . . sn . Em particular, S[i, n] é um sufixo de S que começa na posição i, denotado por S[i]. Seja T ∈ Σ∗ , a cadeia S é menor (lexicograficamente) que T , denotado por S ≺ T , se existir um ı́ndice j ≤ min{n, m} tal que: s1 . . . sj−1 = t1 . . . tj−1 , e sj < tj . Um vetor de sufixo para um texto T [1, n], denotado por AT , é um vetor de n inteiros, pertencentes ao intervalo [1, n], com todos os sufixos T [i] ordenados lexicograficamente (1 ≤ i ≤ n) [Manber and Myers 1993]. O vetor de sufixo AT pode ser visto como a permutação de todos os elementos {1, 2, . . . , n}. O vetor de sufixo é definido formalmente na Definição 1. Definição 1 Um vetor de sufixo AT , para um texto T [1, n] ∈ Σ∗ , é um vetor de inteiros AT = [j1 , j2 , . . . , jn ] , de f orma que : T [j1 ] ≺ T [j2 ] ≺ . . . ≺ T [jn ] A etapa de consulta em um vetor AT pode ser realizada por meio de uma busca binária em AT , uma vez que AT contém todos sufixos de T [1, n] ordenados. Por exemplo, considere o vetor de sufixo AT , para T = GAT AGA$ ilustrado na Figura 1. A busca pelo padrão P [1, 3] = AGA em AT é realizada em 3 passos, representados pelas setas ao lado direito de AT . No passo i = 1, compara-se P com AT [4], e no caso, P ≺ T [AT [4]]. Com isso, no passo i = 2, compara-se P com AT [2] e, como P % T [AT [2]], no passo i = 3 compara-se P com AT [3] e P =3 T [AT [3]] = AGA$, encontrando-se a ocorrência de P em AT [3], isto é, P ocorre em T [4]. i AT [i] 1 7 2 6 3 4 2 4 5 5 6 1 7 3 T [AT [i]] $ A$ ←2 AGA$ ←3 ATAGA$ ←1 GA$ GATAGA$ TAGA$ Figura 1. Busca por P [1, 3] = AGA em AT para T = GAT AGA$ Vetores de sufixo podem ser generalizados para indexar conjuntos de cadeias de caracteres [Gusfield 1997]. Seja C = {T1 , . . . , Tn } um conjunto com n cadeias, o vetor de sufixo generalizado para o conjunto C, denotado por GC , é um vetor com todos os sufixos Tj [i] de todas as cadeia Tj ∈ C ordenados lexicograficamente. Cada sufixo é representado por um par de inteiros (i, j), denotando o sufixo i da cadeia Tj , isto é, o sufixo Tj [i]. Vetores de sufixo generalizados podem ser utilizados para encontrar subcadeias em comum e determinar a maior subcadeia entre todas as cadeias Tj ∈ C. 3. Trabalhos Correlatos Na literatura, diversos trabalhos tem sido propostos voltados à melhoria do desempenho da etapa de construção de vetores de sufixo em memória, sendo que uma revisão des89 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações ses trabalhos pode ser encontrada em Puglisi et al. (2007). Já trabalhos relacionados à etapa de consulta, com destaque para Abouelhoda et al. (2004) e Choi e Park (2004), utilizam estruturas auxiliares para melhorar essa etapa. Por fim, trabalhos que enfocam indexação por meio de vetores de sufixo generalizados, tais como as propostas de Pinho et al. (2009) e Arnold e Ohlebusch (2011), consideram a estrutura apenas em memória primária. No entanto, trabalhos correlatos que enfocam a memória primária, em sua maioria, executam muitos acessos aleatórios à memória, o que impossibilita sua adaptação direta para manipulação de vetores de sufixo em disco. Assim, vetores de sufixo em memória primária são raramente utilizados para o processamento de grandes cadeias de entrada [Dementiev et al. 2008]. Diferentemente desses trabalhos correlatos, este projeto de mestrado visa a proposta de um ı́ndice biológico persistente, ou seja, para disco. Com relação aos trabalhos correlatos voltados à construção de vetores de sufixo em disco, o trabalho de Gonnet et al. (1992) descreve a primeira proposta para construir vetores de sufixo em disco. O trabalho de Crauser e Ferragina (2002) estende e compara soluções já existentes de construção em memória primária para a construção em disco. Entretanto, essas soluções não são eficientes e os testes realizados consideram apenas pequenas cadeias de entrada. Em contrapartida, o trabalho de Dementiev et al. (2008) introduz algoritmos mais eficientes, considerando cadeias de entrada de até 4GB. Por fim, o trabalho de Ferragina et al. (2012) propõe um algoritmo que utiliza pouca memória auxiliar e é mais rápido, na prática, do que os investigados posteriormente. A etapa de consulta torna-se ainda mais importante em vetores de sufixo em disco. Desde que a pesquisa sobre vetores de sufixo envolve busca binária, há o problema do grande número de acessos a disco durante essas consultas. Trabalhos que tratam da eficiência do processamento de consultas sobre vetores de sufixos em disco são descritos por Baeza-Yates et al. (1996), Sinha et al. (2008) e Moffat et al. (2009). Esses trabalhos buscam prover uma melhor organização da estrutura de dados em disco para favorecer leituras sequenciais. No entanto, no contexto de bioinformática, trabalhos correlatos que enfocam vetores de sufixo para disco limitam-se à indexação de apenas uma sequência biológica pertencente ao BDB. Esse projeto de mestrado visa suprir essa limitação, por meio da proposta de um ı́ndice biológico generalizado persistente. 4. Proposta 4.1. Descrição Este projeto de mestrado visa a indexação persistente de conjuntos de cadeias utilizando vetores de sufixo. Pretende-se propor algoritmos relacionados aos vetores de sufixo para disco considerando extensões de suas estruturas de dados para indexar conjuntos de sequências armazenadas em BDBs. Em detalhes, pretende-se investigar a construção e a manipulação de vetores de sufixo generalizados armazenados em disco, e a realização de pesquisa por similaridade sobre esses vetores de sufixo generalizados persistentes. 4.2. Validação A validação dos resultados obtidos será realizada por meio de testes de desempenho visando comparar as estratégias propostas com trabalhos correlatos existentes na literatura, em especial os trabalhos de Ferragina et al. (2012) e Moffat et al. (2009), os quais constituem, respectivamente, o estado da arte na etapa de construção e de consulta em vetores 90 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações de sufixo em disco. Quatro aspectos devem ser considerados nos testes de desempenho do ı́ndice proposto: (i) tempo gasto para construir o ı́ndice; (ii) quantidade de memória auxiliar utilizada pelo algoritmo de construção; (iii) espaço necessário em disco para armazenar a estrutura de dados construı́da; e (iv) tempo gasto para realizar consultas. Os tipos de dados a serem usados serão dados relacionados às sequências biológicas armazenadas em BDBs. Os tipos de dados a serem usados serão dados relacionados às sequências biológicas armazenadas em BDBs. Os dados serão reais, obtidos em BDBs públicos disponı́veis na WEB, como os obtidos em http://www.ncbi.nlm. nih.gov/. Os testes realizados sobre o ı́ndice enfocarão aspectos de construção do ı́ndice e de realização de consultas. Com relação à construção do ı́ndice, será coletado o espaço em bytes ocupado pelo ı́ndice, o espaço utilizado como memória auxiliar, e o tempo gasto em segundos para a sua construção. Com relação ao processamento de consultas, as análises serão realizadas em termos do tempo gasto em segundos e do número de acessos a disco. 5. Atividades em Andamento As atividades de mestrado em andamento estão concentradas na etapa de construção do ı́ndice e na proposta de sua estrutura de dados. A etapa de construção está sendo desenvolvida considerando a indexação de conjuntos com grandes cadeias de entrada, as quais excedem a capacidade da memória primária disponı́vel. O algoritmo de construção preliminar proposto é composto pelas seguintes etapas: (i) divisão das cadeias de entrada em partições que caibam em memória primária; (ii) construção de ı́ndices parciais referentes a cada partição; e (iii) união dos ı́ndices gerados. Em especial, a etapa de união dos vetores parciais vislumbra a incorporação da abordagem external memory two-phase multi-way merge-sort (2PMMS) [Garcia-Molina et al. 1999], considerando otimizações especı́ficas para ordenação de sufixos. Três aspectos importantes estão sendo enfocados no desenvolvimento do algoritmo de construção proposto. O primeiro refere-se a minimizar a quantidade de memória auxiliar utilizada com o objetivo de maximizar a quantidade de memória primária disponı́vel e, consequentemente, diminuir o número de partições, além de reduzir o número de I/Os ao disco. O segundo refere-se à incorporação de um buffer-pool para armazenar estruturas auxiliares, como as propostas nos trabalhos correlatos, com o objetivo de manipular tais estruturas em memória primária e em disco. O terceiro aspecto corresponde ao aumento do tamanho da estrutura para armazenar o vetor de sufixo generalizado em disco. Em vetores de sufixo convencionais, não-generalizados, usa-se apenas uma variável inteira para cada sufixo indexado. Em contrapartida, vetores de sufixo generalizados devem considerar o armazenamento de duas variáveis inteiras para cada sufixo, as quais representam o sufixo e sua respectiva cadeia. 6. Considerações Finais e Próximas Atividades O vetor de sufixo é uma estrutura de dados muito utilizada em problemas que envolvem indexação e casamento exato de cadeias de caracteres. Entretanto, no contexto de indexação de BDBs, seu uso é limitado devido ao fato de que trabalhos que envolvem vetores de sufixo para disco consideram a indexação de apenas uma cadeia, e trabalhos que envolvem indexação de conjuntos de cadeias consideram apenas a estrutura em memória 91 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações primária. Dessa forma, este projeto de mestrado concentra-se na proposta de um ı́ndice para BDBs baseado em vetores de sufixo generalizados para disco. As próximas atividades a serem realizadas envolvem a finalização da proposta do algoritmo de construção do ı́ndice, a implementação desse algoritmo e a validação por meio de comparação com os trabalhos correlatos. Em seguida, será focada a etapa de consulta, juntamente com a elaboração de uma proposta otimizada à indexação de BDBs, além da implementação e validação dessa proposta. Referências Abouelhoda, M. I.Kurtz, S. and Ohlebusch, E. (2004). Replacing suffix trees with enhanced suffix arrays. Journal of Discrete Algorithms, 2(1):53–86. Altschul, S. F., Gish, W., Miller, W., Myers, E. W., and Lipman, D. J. (1990). Basic local alignment search tool. Journal of Molecular Biology, 215(3):403–410. Arnold, M. and Ohlebusch, E. (2011). Linear Time Algorithms for Generalizations of the Longest Common Substring Problem. Algorithmica, 60(4):806–818. Baeza-yates, R., Barbosa, E. F., and Ziviani, N. (1996). Hierarchies Of Indices For Text Searching. Rockefeller University, 21:11–13. Crauser, A. and Ferragina, P. (2002). A Theoretical and Experimental Study on the Construction of Suffix Arrays in External Memory. Algorithmica, 32(1):1–35. Dementiev, R., Kärkkäinen, J., Mehnert, J., and Sanders, P. (2008). Better external memory suffix array construction. ACM Journal of Experimental Algorithmics, 12:1–24. Ferragina, P., Gagie, T., and Manzini, G. (2012). Lightweight Data Indexing and Compression in External Memory. Algorithmica, 63(3):707–730. Garcia-Molina, H., Widom, J., and Ullman, J. D. (1999). Database System Implementation. Prentice-Hall, Inc., Upper Saddle River, NJ, USA. Gonnet, G. H., Baeza-yates, R., and Snider, T. (1992). New indices for text: PAT Trees and PAT arrays, pages 66–82. Prentice-Hall, Inc., Upper Saddle River, NJ, USA. Gusfield, D. (1997). Algorithms on strings, trees, and sequences: computer science and computational biology. Cambridge University Press, New York, NY, USA. Manber, U. and Myers, E. W. (1993). Suffix Arrays: A New Method for On-Line String Searches. SIAM Journal on Computing, 22(5):935–948. Moffat, A., Puglisi, S. J., and Sinha, R. (2009). Reducing Space Requirements for Disk Resident Suffix Arrays. In Proceedings of the 14th International Conference on Database Systems for Advanced Applications, pages 730–744. Pinho, A., Ferreira, P., Garcia, S., and Rodrigues, J. (2009). On finding minimal absent words. BMC Bioinformatics, 10(1):137. Puglisi, S. J., Smyth, W. F., and Turpin, A. H. (2007). A taxonomy of suffix array construction algorithms. ACM Computing Surveys, 39(2):1–31. Sinha, R., Puglisi, S. J., Moffat, A., and Turpin, A. (2008). Improving suffix array locality for fast pattern matching on disk. In Proceedings of the ACM SIGMOD International Conference on Management of Data, pages 661–672. 92 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações BenchXtend: a tool to benchmark and measure elasticity of cloud databases Rodrigo Felix de Almeida 1 , Supervised by: Javam C. Machado 1 Mestrado e Doutorado em Ciencia da Computação (MDCC) Universidade Federal do Ceará(UFC) – Fortaleza, CE – Brasil 1 [email protected], [email protected] Level: MSc. Admission: 2011 MSc. Proposal: September 2012 Conclusion expected to: March 2013 Steps Completed: Literature review and problem definition Future Steps: Complete definition, implementation and evaluation of the solution Abstract. The rapid adoption of cloud computing infrastructures by the main players of IT industry has leveraged a wide range of researching challenges and opportunities. Particularly in the database area, many data systems have emerged with remarkable differences when compared to traditional relational databases. Altogether with these changes comes the need of evaluating them. However, traditional benchmark tools for database systems, like TPC-C, are not sufficient to analyze all the features and specificities of data systems in cloud computing. Some tools, like YCSB, cover some specificities of cloud computing. However, to be more realistic, such tools should change the number of clients during the workload, to measure elasticity. Besides, metrics are needed to provide an evaluation indicator both from consumer and provider perspective, focusing on their specific requirements. In this work we present BenchXtend, a tool to benchmark and measure elasticity of databases on cloud infrastructures. As part of this tool, we define some metrics from the consumer and provider perspectives to measure elasticity. Finally, we evaluate our solution and our metrics. keywords: benchmark, metrics, elasticity, database, cloud 93 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações 1. Introduction and Motivation Scalability, elasticity, and pay-per-use pricing model are the major reasons for the successful and widespread adoption of cloud infrastructures. Since the majority of cloud applications are data-driven, database management systems (DBMSs) powering these applications are critical components in the cloud software stack [Elmore et al. 2011]. There is currently a lot of interest in elastic database systems [Minhas et al. 2012]. Elasticity adjusts the system capacity at runtime by adding and removing resources without service interruption in order to handle the workload variation. Stateful systems, such as DBMSs, are hard to scale elastically because of the requirement of maintaining consistency of the database that they manage [Minhas et al. 2012]. As cited by [Cooper et al. 2010], many novel database systems have emerged to fulfill some needs of cloud applications. These new database systems present several differences when compared to traditional relational systems, regarding to their data models, consistency, replication strategy and so on. Even though elasticity is often associated with the scale of the DBMS, a subtle difference exists between elasticity and scalability [Islam et al. 2012]. Scalability is defined as the ability of a system to meet a larger workload requirement by adding a proportional amount of resources. This is part of what elasticity needs, but perfect scalability does not ensure perfect elasticity. Time is a central aspect in elasticity, which depends on the speed of response to changed workload, while scalability allows the system to meet the changed load as long as it needs. Furthermore, good elasticity requires the system to reduce allocated resources when workload decreases, while scalability just considers growth. There are some DBMSs that implement elasticity [HBase 2012] [Chang et al. 2006] [Cooper et al. 2008] [DeCandia et al. 2007]. However, consumers and providers want to answer the question: how to measure elasticity of a given database system?. On one hand, consumers want to compare some data services in cloud to choose one that fits better to their needs and restrictions. On the other hand, providers want to meet the Service-Level Agreement (SLA) regarding to the database systems with the minimum amount of resources and cost. There are some studies on how to measure elasticity [Cooper et al. 2010] [Islam et al. 2012] [Dory et al. 2011]. However, these studies do not address important issues like considering DBMS-specific aspects, analyzing under-provisioning scenario and measuring elasticity when the number of emulated clients varies during workloads. Changing the number of clients during workload process, both increasing and decreasing it, illustrates a more realistic scenario for many applications, like e-commerce web sites, in which this number goes up and down continuously. In this paper we present an approach for measuring elasticity of database systems in the cloud, from two perspectives: the consumer one and the provider one. To the best of our knowledge, this is the first paper to formulate and explore the problem of how to measure elasticity for databases in the cloud with metrics oriented for database-specific aspects. In addition, we present BenchXtend, a tool to measure elasticity of Online transaction processing (OLTP) databases on cloud infrastructures. This tool extends YCSB [Cooper et al. 2010] benchmark and aims to (i) calculate more metrics to measure elasticity of relational and non-relational database systems and to (ii) provide a more realistic workload allowing to change the number of clients during a workload execution. The major contributions of this paper are (i) definition of metrics to measure elas94 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações ticity of database systems in cloud, (ii) presentation of two different perspectives (consumer and provider) for elasticity, (iii) implementation of a tool to calculate the metrics and to variate (up and down) the number of active clients while executing a workload, and, finally, (iv) evaluation of the tool and metrics. 2. Our Proposed Approach Our proposal is divided in two parts: (i) implementation of a tool to extend a benchmark to measure elasticity in database systems and (ii) definition of a set of metrics to measure database-system elasticity in cloud from different perspectives. We implement the BenchXtend tool that extends YCSB [Cooper et al. 2010] to provide a more realistic behavior, allowing us to change the number of clients while running a workload, as well as to calculate the metrics proposed in this work. The number of clients can be changed in three different ways: (i) manually, (ii) programmatically and (iii) automatically according to a probability distribution. The first way allows the user to manually add (or remove) a client while performing the benchmarking execution. In the second way, the user defines a text file setting the number of clients throughout a time term. The third way varies automatically the number of clients according to a probability distribution, like Poisson. Even though we provide a Poisson implementation, the solution architecture is designed to allow a user to implement his own distribution method to customize the variation of clients. Our approach to define metrics for elasticity extends the work proposed by [Islam et al. 2012] focusing on database systems. We use a penalty model approach to measure imperfections in elasticity for database systems. Similarly to [Islam et al. 2012], our elasticity model is composed of two parts: penalty for over-provisioning and penalty for under-provisioning. Unlike [Islam et al. 2012], we explore database system features and present both the consumer and provider perspective. [Islam et al. 2012] presents the importance of analyzing the consumer point of view. We consider a scenario where a consumer accesses a database system as a service in a Platform-as-a-service (PaaS) provider. In a PaaS provider, a consumer is allowed to deploy his applications onto the cloud infrastructure using programming languages, libraries, services, and tools supported by the provider. However, he does not manage the underlying cloud infrastructure. We do not consider a Software-as-a-service (SaaS) scenario, because, in general, the consumer has no access or control to the database system. Infrastructure-as-a-service (IaaS) scenario is not considered either because the SLA is usually based only on infrastructure resources, removing from the provider the responsibility of guaranteeing quality of any software service. 2.1. Consumer perspective From a PaaS-consumer perspective, a database system is elastic if, regardless the number of queries submitted to the system, it satisfies the SLA. We assume the maximum response time is defined by query group. A query group is a sequence of queries (maybe including repeated ones) that together represent a meaningful action for the consumer. This response time is set in the SLA and there is no penalty related to the underlying infrastructure, like number of replicas or dedicated memory. Techniques adopted by a DBMS, like replicating or initiating new machines are transparent for a PaaS consumer. Thus, we propose metrics that abstract techniques like those. 95 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações Under-provisioning penalty (underprovp ): The strategy for underprovp is based on a previous work [Sousa et al. 2012], which defines the concept of penalties for database services in the cloud. In this case, the resources allocated to the consumer are underprovisioned, ie. insufficient to keep up with demand, generating an increase in the response time and consequently causing a penalty. This penalty is for violating the SLA. Penalties due to under-provisioning are directly related to bad elasticity, since, if the system had a good one, it would have scaled up to address the increase of demand to avoid penalties. We define this metric as the sum of the ratio execution time by expected time, divided by the total n of query groups. The expected response time (expectedrt ) is defined by query group in the SLA. This time represents the maximum time a query group should take to meet the SLA agreed between consumer and provider. The violated execution time (violatedet(i) ) represents the total time spent by all queries of a query group i that did not meet the SLA. To calculate underprovp , we propose the following formula: underprovp = n X violatedet(i) expectedrt(i) i=1 n (1) [Sousa et al. 2012] multiplied a similar ratio by the revenue, which is the value paid by the consumer to the supplier by service. However, for sake of simplicity and to provide a dimensionless value, we do not multiply by the revenue here. The higher underprovp is, the less elastic the database system is, because more violated is always greater than 1, since it is applied querie groups violated the SLA. expectedet(i) rt(i) only for violated groups, and measures the difference between defined and executed time. 2.2. Provider perspective From a customer perspective, we presented underprovp metric. For a PaaS provider, besides measuring that, it is also essential to evaluate how efficient the database system is to use only the minimum necessary amount of resources to meet the SLA. Thus, from a provider perspective, our approach proposes under-provisioning penalty (underprovp ) exactly as showed in the last section, based on observed SLA, and over-provisioning penalty (overprovp ), based on the charged level of resources. Finally, we put underprovp and overprovp together to get a single dimensionless value for elasticity in DBMSs. Over-provisioning penalty (overprovp ): When there is over-provisioning, the provider offers more resources than necessary to meet a demand. Thus, the provider is subject to a higher operating cost than the necessary to meet the SLA. In this situation, the database system has a number of resources (i.e. nodes) that are running a given workload, but this amount is higher than necessary. Unlike the penalty for under-provisioning, this metric does not make sense from a consumer perspective, since for a PaaS consumer there is no problem to have more available resources if that does not imply in a cost increase. We can measure the capacity of retraction of resources according to a workload. We define this metric as the sum of the ratio expected time by execution time, divided by the total of queries. Unlike underprovp , overprovp considers the execution time of queries performed when the database system is over-provisioned. Besides, overprovp moves the expectedrt to the numerator since in an over-provisioning scenario the execution time is supposed to be lower than the expected one. We suggest a factor to define if a query 96 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações group must be considered or not for this metric. This factor is necessary because it provides a range in which query group response times are lower than the expected, but not too much to illustrate an over-provisioning scenario. If the following inequation is true, the query group is included in the overprovp calculation: expectedrt > query group response time (2) The query group execution time (querygroupet ) is the time spent by a query group i that satisfies the above inequation. We calculate overprovp in the following way: overprovp = n X expectedrt(i) querygroupet(i) i=1 n (3) In the work [Sousa et al. 2012], the authors multiplied a similar ratio by the cost, which is the value to perform a service using a specified SLA. For the same reasons we did not consider the revenue for underprovp , we do not consider cost for overprovp . Elasticity for Database System (elasticitydb ): From a provider perspective, elasticity of the database system is given by the sum of the penalties from both over- and underprovisioning for a time interval, according to the below formula. The penalty due to over-provisioning should be less than the under-provisioning one, since that affects only one of the parties. However, depending on the scenario, the provider could need to define different weights for the under- and over-provisioning penalties. Therefore, we included the variables x and y to allow the provider to adjust the weights. elasticitydb = x ⇤ underprovp + y ⇤ overprovp x+y (4) Lower value of elasticitydb indicates a more elastic DBMS, since it makes better use of resources while meeting the SLA. Our metric meets tests of reasonableness, such as (i) elasticity is non-negative and (ii) elasticity captures both over- and under-provisioning. 3. Present Stage of Work We already defined metrics for elasticity based on penalties, executed simple experiments, started to analyze the YCSB [Cooper et al. 2010] code to extend it. Next steps are to design the solution architecture and to actually implement the tool. Finally, we intend to perform a representative suite of experiments to evaluate our solution. 4. Related Work [Islam et al. 2012] propose ways to quantify the elasticity concept in a cloud. They define a measure that reflects the financial penalty to be paid to a consumer, due to under (leading to unacceptable latency or throughput) or over-provisioning (paying more than necessary for the resources). Nevertheless, it does not take into account DBMSs features such as query response time or throughput. In addition, it uses only a resource oriented approach. [Dory et al. 2011] provide definitions of elasticity for database and a methodology to evaluate the elasticity. However, these definitions deal only with under-provisioning scenarios and do not address issues of SLA, penalties, and resources. In addition, the 97 Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Workshop de Teses e Dissertações authors do not explain clearly the way they calculated the metrics presenting a mathematical background to support their decisions. [Konstantinou et al. 2011] presents a cloudenabled framework for adaptive monitoring of NoSQL systems. However, they do not have a definition for elasticity and do not deal with situations of under-provisioning. [Cooper et al. 2010] present the metrics named elastic speedup and scaleup. The first metric illustrates the latency variation as new machines are instantiated. The second one is a traditional metric and does not encompass elasticity aspects. Even though these metrics can be useful, they do not illustrate the consumer perspective and do not consider the variation of clients accessing an application. The tool presented by [Cooper et al. 2010] is able to benchmark a database system, but does not allow to vary of clients to emulate a more realistic behavior. 5. Conclusion and Future Work In this work, we presented a tool to benchmark database systems in a cloud, as well as its metrics for elasticity. Our approach allows to benchmark appropriately different database systems. We suggested metrics both from consumer and provider perspectives. As future work, we intend to design and implement the BenchXtend tool to calculate the metrics and to help performing our experiments. References Chang, F., Dean, J., Ghemawat, S., Hsieh, W. C., Wallach, D. A., Burrows, M., Chandra, T., Fikes, A., and Gruber, R. E. (2006). Bigtable: A distributed storage system for structured data. In In Proceedings of the 7th Conference on Usenix Symposyum on Operating Systems Design and implementation - Vol. 7. Cooper, B. F., Ramakrishnan, R., Srivastava, U., Silberstein, A., Bohannon, P., Jacobsen, H.-A., Puz, N., Weaver, D., and Yerneni, R. (2008). Pnuts: Yahoo!’s hosted data serving platform. Proc. VLDB Endow., 1(2):1277–1288. Cooper, B. F., Silberstein, A., Tam, E., Ramakrishnan, R., and Sears, R. (2010). Benchmarking cloud serving systems with ycsb. In SoCC, pages 143–154. DeCandia, G., Hastorun, D., Jampani, M., Kakulapati, G., Lakshman, A., Pilchin, A., Sivasubramanian, S., Vosshall, P., and Vogels, W. (2007). Dynamo: amazon’s highly available key-value store. In IN PROC. SOSP, pages 205–220. Dory, T., Mejas, B., Roy, P. V., and Tran, N.-L. (2011). Measuring elasticity for cloud databases. In Proceedings of the The Second International Conference on Cloud Computing, GRIDs, and Virtualization. Elmore, A. J., Das, S., Agrawal, D., and El Abbadi, A. (2011). Zephyr: live migration in shared nothing databases for elastic cloud platforms. In SIGMOD ’11, pages 301–312. HBase (2012). Apache hbase. http://hbase.apache.org/. Islam, S., Lee, K., Fekete, A., and Liu, A. (2012). How a consumer can measure elasticity for cloud platforms. In ICPE’12 - Second Joint WOSP/SIPEW International Conference on Performance Engineering. Konstantinou, I., Angelou, E., Boumpouka, C., Tsoumakos, D., and Koziris, N. (2011). On the elasticity of nosql databases over cloud management platforms. In CIKM ’11, pages 2385–2388. Minhas, U. F., Liu, R., Aboulnaga, A., Salem, K., Ng, J., and Robertson, S. (2012). Elastic scale-out for partition-based database systems. In SMDB ’12, ICDE Workshops. Sousa, F. R. C., Moreira, L. O., Santos, G. A. C., and Machado, J. C. (2012). Quality of service for database in the cloud. In CLOSER ’12, pages 595–601. 98