• Nenhum resultado encontrado

Algoritmos dos operadores StreamPref

Algoritmo 37 Ű IncBestSeq(nd) Entrada: Nó nd

8.1 Primeira etapa de experimentos

Esta seção apresenta os experimentos conduzidos na primeira etapa do trabalho descrito nesta tese (RIBEIRO; PEREIRA; DIAS, 2016). Os experimentos visam comparar o desempenho dos algoritmos para processamento de consultas com preferências condicionais em bancos de dados tradicionais. A comparação leva em consideração os algoritmos do estado-da-arte BNL** e R-BNL** propostos por Pereira e Amo (2010) e as otimizações BNL-KB, R-BNL-KB, PartitionBest e PartitionTopk descritas no Capítulo 3. Os intervalos de conĄança destes experimentos são apresentados no Apêndice C.

Os experimentos foram realizados sobre bases de dados sintéticas geradas pelo TPC Benchmark H (TPC-H) (TPC, 2014)3. As consultas do benchmark usadas nos experimentos passaram por algumas modiĄcações para que os algoritmos pudessem ser avaliados. As modiĄcações foram as seguintes:

1) Remoção das funções de agregação desnecessárias para as comparações realizadas; 2) Inclusão da cláusula ACCORDING TO PREFERENCES contendo as preferências;

3) Mudanças da cláusula WHERE para conter menos restrições impostas pelas seleções. As consultas Q3, Q5, Q10 e Q18 foram usadas nos experimentos devido à expressiva variação no número de tuplas submetidas aos operadores de preferência. No caso do tamanho padrão de banco de dados, estes números são 698, 7596, 18644 e 34363 para as consultas Q3, Q5, Q10 e Q18,respectivamente.

As regras de preferências dos experimentos foram construídas levando em conside- ração o número de regras e o nível de preferência máximo. A escolha destes parâmetros se deve à sua interferência no desempenho dos algoritmos. Enquanto o número de regras afeta o número de comparações diretas entre tuplas, o nível de preferência máximo está relacionado ao número de chamadas recursivas do teste de dominância baseado em busca e ao número de comparações da base de conhecimento.

A Tabela 4 apresenta todos os parâmetros usados nos experimentos juntamente com seus valores padrões e variações. As notações vDB, vQUE, vLEV, vRUL e vTOP são usadas para indicar a variação de valores nos parâmetros DB, QUE, LEV, RUL e TOP, respectivamente.

Os experimentos com variações nos parâmetros da Tabela 4 permitem comparar o desempenho e a escalabilidade dos algoritmos. Os parâmetros LEV e RUL inĆuenciam diretamente a eĄciência dos algoritmos ao lidar com diferentes tipos de preferências. Já o parâmetro TOP permite avaliar os algoritmos que processam o operador TOPK (para

8.1. Primeira etapa de experimentos 153 Tabela 4 Ű Parâmetros dos experimentos com os algoritmos BNL**, BNL-KB e

PartitionBest

Parâmetro Valor Padrão Variação

Tamanho da base em MB (DB) 32 16, 32, 64, 128, 256, 512 e 1024 Consulta (QUE) Q5 Q3, Q5, Q10 e Q18 Número de regras (RUL) 6 6, 10, 20, 30 e 40 Nível de preferência máximo (LEV) 2 1, 2, 3, 4, 5 e 6 Número de top-k tuplas (TOP) -1 -1, 10, 100, 1000 e 5000

k > −1). Quando TOP=-1, o operador BEST é utilizado. Os parâmetros DB e QUE estão relacionados com a escalabilidade dos algoritmos, ou seja, como os algoritmos se comportam para processar diferentes volumes de tuplas.

1 2 3 4 5 6

0 1000 2000

Nível de Preferência (LEV)

T emp o de ex ec ução (segundos) -1 10 100 1000 5000 0 2000 4000

Top-k tuplas (TOP)

BNL** BNL-KB PartitionBest

6 10 20 30 40

0 2000 4000

Número de Regras (RUL) Figura 37 Ű Experimentos com os algoritmos BNL**, BNL-KB e PartitionBest variando

os parâmetro LEV, TOP e RUL

Os resultados dos experimentos com variações nos parâmetros LEV, TOP e RUL são mostrados na Figura 37. Considerando a variação no nível de preferência máximo (DB=32, vLEV, RUL=6, QUE=Q5, TOP=-1), o algoritmo BNL-KB é mais impactado pelo aumento no nível de preferência máximo. A medida que o nível de preferência máximo aumenta, o tamanho da base de conhecimento também aumenta pelo fato de existirem mais comparações por transitividade. Isto eleva o tempo de execução do algoritmo BNL-KB, pois este algoritmo precisa varrer a base de conhecimento para cada par de tuplas a ser comparado (pelo teste de dominância).

Já os algoritmos BNL** e PartitionBest sofrem pouco impacto com a variação do parâmetro LEV. O teste de dominância baseado em busca do algoritmo BNL** possui o custo de O(mm) apenas no pior caso. Mesmo com o aumento do nível de preferência máximo, na maioria das comparações, não é necessário realizar todas as recursões do teste de dominância baseado em busca. Com isto, o tempo de execução do algoritmo BNL** permanece praticamente constante para todos os níveis de preferência máximo testados. No caso do algoritmo PartitionBest, o crescimento da base de conhecimento não causa grande aumento no tempo de execução porque a base de conhecimento é varrida uma única vez.

Quanto ao experimento com variação no número de top-k tuplas (DB=32, LEV=2, RUL=6, QUE=Q5, vTOP), os algoritmos apresentam melhor desempenho para TOP=-1. Quando TOP=-1, signiĄca que o operador BEST foi usado. Nesta situação, apenas as tuplas dominantes (com nível zero) são retornadas e não há necessidade de processar as tuplas de outros níveis. Novamente, o algoritmo PartitionBest apresentou melhor desempenho pelo fato da técnica de particionamento necessitar de menos varreduras no banco de dados.

No experimento com variação no número de regras (DB=32, LEV=2, vRUL, QUE=Q5, TOP=-1), é possível observar que o desempenho dos algoritmos BNL decai a medida que o número de regras aumenta. Quanto maior o número de regras, maiores as chances de duas tuplas serem comparáveis, o que torna o teste de dominância mais lento. Este problema não acontece com o algoritmo PartitionBest. Apesar da base de conhecimento se tornar maior com o aumento no número de regras, seu desempenho praticamente não é afetado.

16 32 64 128 256 512 1024 100

103 106

Tamanho do banco de dados em MB (DB)

T em p o de ex ecução (segundos) BNL** BNL-KB PartitionBest Q3 Q5 Q10 Q18 10−1 101 103 Consulta (QUE)

Figura 38 Ű Experimentos com os algoritmos BNL**, BNL-KB e PartitionBest variando os parâmetros DB e QUE

Os gráĄcos da Figura 38 mostram como os algoritmos escalam de acordo com as variações no tamanho do banco de dados (vDB, LEV=2, RUL=6, QUE=Q5, TOP=-1) e nas consultas (DB=32, LEV=2, RUL=6, vQUE, TOP=-1). O eixo do tempo de execução está em escala logarítmica pelo fato dos algoritmos BNL** e BNL-KB apresentarem tempos de execuções muito próximos. Estes experimentos evidenciam a diferença de complexidade entre os algoritmos BNL e o algoritmo PartitionBest. A complexidade dos algoritmos BNL é quadrática em relação ao número de tuplas. Os bancos de dados maiores possuem mais tuplas, isto causa um impacto maior nestes algoritmos. Por outro lado, a complexidade do algoritmo PartitionBest é linear em relação ao número de tuplas. Portanto, o crescimento do tamanho do banco de dados causa menos impacto no tempo de execução do algoritmo PartitionBest.

O desempenho dos algoritmos com a variação nas consultas também é afetado pela complexidade. O algoritmo PartitionBest sofre pouco impacto com o aumento de tuplas recebidas enquanto os algoritmos BNL apresentam maior tempo de execução a medida que o número de tuplas recebidas aumenta.