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ós­Graduação em Informática Aplicada Universidade de Fortaleza – (UNIFOR) Caixa Postal 1258 – 60.811­341 – 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, elevando­o 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, pretende­se 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. Palavras­Chave: 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 pay­as­you­go 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 (EDBT­ICDT '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
FS­Dedup ­ A Framework for Signature­based 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.501­970 – 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 non­match. However, in large datasets the user intervention may result in large efforts. This thesis aims at reducing the non­specialist user intervention focus on large scale deduplication. We propose a new framework, named FS­Dedup, 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 FS­Dedup removes the specialist­user to be able to anyone tune the entire deduplication process. FS­Dedup uses the Signature­Based Deduplication (Sig­Dedup) algorithms like a “black­box”. These algorithms are characterized by high efficiency and scalability in large datasets. However, a specialist­user intervention is requested to tune the Sig­Dedup 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, Signature­based 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 pretende­se 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. Palavras­Chave: 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, pretende­se 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.501­970 – 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. Abordam­se 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. Palavras­chave: 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 (Service­Oriented 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ão­funcionais 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 (backward­compatible 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ão­lineares. 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, e­commerce, 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. Introduz­se 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] apresenta­se 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 inter­relacionadas, 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 relaciona­as 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), 1­6. 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. 58­75. Papazoglou, M.P., Andrikopoulos, V. e Benbernou, S. (2011) “Managing Evolving Services”, IEEE Software, vol.28, no.3, pp.49­55. 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 Service­Oriented 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/ar­servgov/. 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