propostadeinserÇÃoemlotede … · 2015. 8. 17. · quantificar quão similar os elementos são a...

94
HAYATO FUJII PROPOSTA DE INSERÇÃO EM LOTE DE ELEMENTOS EM ARVORES MÉTRICAS DISTRIBUIDAS LONDRINA–PR 2014

Upload: others

Post on 20-Nov-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

HAYATO FUJII

PROPOSTA DE INSERÇÃO EM LOTE DEELEMENTOS EM ARVORES MÉTRICAS

DISTRIBUIDAS

LONDRINA–PR

2014

Page 2: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio
Page 3: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

HAYATO FUJII

PROPOSTA DE INSERÇÃO EM LOTE DEELEMENTOS EM ARVORES MÉTRICAS

DISTRIBUIDAS

Trabalho de Conclusão de Curso apresentadoao curso de Bacharelado em Ciência da Com-putação da Universidade Estadual de Lon-drina para obtenção do título de Bacharel emCiência da Computação.

Orientador: Prof. Dr. Daniel dos Santos Kas-terCoorientador: Guilherme José Henrique

LONDRINA–PR

2014

Page 4: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Hayato FujiiProposta de inserção em lote de elementos em arvores métricas distribuidas/

Hayato Fujii. – Londrina–PR, 2014-92 p. : il. (algumas color.) ; 30 cm.

Orientador: Prof. Dr. Daniel dos Santos Kaster

– Universidade Estadual de Londrina, 2014.

1. inserção. 2. lote. 3. método de acesso métrico. 4. I. Prof. Dr. Daniel dosSantos Kaster. II. Universidade Estadual de Londrina. III. Departamento deComputação. IV. Proposta de inserção em lote de elementos em arvores métricasdistribuidas

CDU 02:141:005.7

Page 5: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

HAYATO FUJII

PROPOSTA DE INSERÇÃO EM LOTE DEELEMENTOS EM ARVORES MÉTRICAS

DISTRIBUIDAS

Trabalho de Conclusão de Curso apresentadoao curso de Bacharelado em Ciência da Com-putação da Universidade Estadual de Lon-drina para obtenção do título de Bacharel emCiência da Computação.

BANCA EXAMINADORA

Prof. Dr. Daniel dos Santos KasterUniversidade Estadual de Londrina

Orientador

Prof. Dr. Segundo Membro da BancaUniversidade/Instituição do Segundo

Membro da Banca

Prof. Msc. Terceiro Membro da BancaUniversidade/Instituição do Terceiro

Membro da Banca

Londrina–PR, 16 de junhode 2014

LONDRINA–PR2014

Page 6: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio
Page 7: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

AGRADECIMENTOS

À minha família por me darem todo o suporte durante o contínuo e longo suporteque me deram durante toda a minha formação, tanto acadêmico e profissional comoemocional e pessoal.

Ao mestrando Guilherme José Henrique, que explicou seu trabalho e de ajudaexaustiva para resolver problemas. De acordo com Isac Newton, se eu vi longe, foi porestar sobre ombros de gigantes.

Ao professor Dr. Daniel dos Santos Kaster pelas conversas de grande valia poronde este trabalho foi guiado e principalmente pela amizade colhida.

À minha namorada Renna Karoline Costa pelo suporte emocional e válvula deescape. Neste ano que passou, tudo ficou mais feliz e me deu forças para continuar.

Ao pessoal das turmas de 2011 e 2012 do curso de Ciência da Computação daUEL, que sempre estiverem presentes durantes os estudos e outros durante outros temposde lazer, além do convivio do dia-a-dia durante o período da graduação. O valor docompanheirismo e as amizades formadas durante os anos é incalculável.

Page 8: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio
Page 9: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

FUJII, H.. Proposta de inserção em lote de elementos em arvoresmétricas distribuidas. 92 p. Trabalho de Conclusão de Curso (Graduação).Bacharelado em Ciência da Computação – Universidade Estadual de Londrina,2014.

RESUMO

Um problema levantado durante os esforços de paralelização da Slim-tree foi o fato dosistema distribuído de arquivos usados durante a implementação ser melhor utlizado paraum tamanho de página relativamente grande (4MB ou mais). No entanto, nem todasoperações e aplicações de MAMs exigem tanto espaço, utilizando somente uma fração doespaço disponível para um nó. Este trabalho apresenta o conceito de caching durante ainserção dos elementos na Slim-tree, acumulando dados suficientes para que as manipu-lações de arquivo no sistema distruibuído usufruam de toda sua arquitetura e toda suaperformance. Nos experimentos, demonstram-se que, mesmo em um ambiente não dis-tribuído, o algoritmo de inserção com cache constroi um índice mais rapidamente que ainserção elemento a elemento, mantendo o tempo das consultas constante e o número deacesso a disco reduzidas.

Palavras-chave: inserção em lote. método de acesso métrico. distribuido. ca-che.

Page 10: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio
Page 11: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

FUJII, H.. Bulk element insertion proposal in distributed metric trees.92 p. Final Project (Undergraduation). Bachelor of Science in Computer Sci-ence – State University of Londrina, 2014.

ABSTRACT

During the distributed slim-tree paralelization efforts, it was noted that configuring thepage size has to be configured to relatively big page sizes (4MB or more) to the struc-ture achieve better performance. Yet, not all operations and applications of Metric AcessMethods (MAM) require such page size, using only a fraction of the space avaliable in anode. This works introduces a caching concept to be used during the index population,gathering data enough to the file operations achieve better performance in their activities.In experimental results, even in a non distrubuted envirovment, the cached bulk-loadinginserition algorithm performs better in indexing operations compared to element by ele-ment insertions, maintaining query execution times and reduced disk access events.

Keywords: bulk insertion. metric acess method. distributed. cache.

Page 12: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio
Page 13: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

LISTA DE ILUSTRAÇÕES

Figura 1 – (a) consulta por abrangência e (b) consulta aos k-vizinhos mais próximos 18Figura 2 – Estrutura da Slim-tree . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Figura 3 – HDFS: esquema de replicação das páginas no cluster. [1] . . . . . . . . 23Figura 4 – Carga rápida da M-tree: exemplo de desbalanceamento conforme den-

sidade dos elementos no espaço.[2] . . . . . . . . . . . . . . . . . . . . 24Figura 5 – Tempos de construção de índice - us-cities. Tempos no eixo Y em ms. . 32Figura 6 – Tempos de construção de índice - rand-5d-5m. Tempos no eixo Y em ms. 33Figura 7 – Tempos de construção de índice - cluster-100k-rand-10d-5m. Tempos

no eixo Y em ms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Figura 8 – Tempos de Consultas (kNN) - us-cities. No eixo X, varia-se os parâme-

tros da cache; no eixo Y, é mostrado o tempo em ms. . . . . . . . . . . 34Figura 9 – Tempos de Consultas (Rq) - us-cities. No eixo X, varia-se os parâmetros

da cache; no eixo Y, é mostrado o tempo em ms. . . . . . . . . . . . . 35Figura 10 – Tempos de Consultas (kNN) - rand-5d-5m. No eixo X, varia-se os pa-

râmetros da cache; no eixo Y, é mostrado o tempo em ms. . . . . . . . 35Figura 11 – Tempos de Consultas (Rq) - rand-5d-5m. No eixo X, varia-se os parâ-

metros da cache; no eixo Y, é mostrado o tempo em ms. . . . . . . . . 36Figura 12 – Tempos de Consultas (kNN) - cluster-100k-rand-10d-5m. No eixo X,

varia-se os parâmetros da cache; no eixo Y, é mostrado o tempo em ms. 36Figura 13 – Tempos de Consultas (Rq) - cluster-100k-rand-10d-5m. No eixo X,

varia-se os parâmetros da cache; no eixo Y, é mostrado o tempo emms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Page 14: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio
Page 15: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

SUMÁRIO

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2 CONCEITOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.1 Similaridade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.1.1 Consulta por Similaridade . . . . . . . . . . . . . . . . . . . . . . 172.1.2 Espaços Métricos e Métodos de Acessos Métricos . . . . . . . . 192.1.3 A Slim-Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.2 Jarboreutum: A Slim-Tree Distribuída . . . . . . . . . . . . . . 222.3 Trabalhos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . 24

3 O CACHE DE INSERÇÃO . . . . . . . . . . . . . . . . . . . . . 273.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.2 Proposta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.3 Implementação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.1 Tempo de Construção . . . . . . . . . . . . . . . . . . . . . . . . . 324.2 Tempos de Consultas . . . . . . . . . . . . . . . . . . . . . . . . . 33

5 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395.1 Considerações Finais . . . . . . . . . . . . . . . . . . . . . . . . . . 395.2 Principais Contribuições . . . . . . . . . . . . . . . . . . . . . . . 395.3 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

ANEXOS 43

ANEXO A – RAND-2D-5M . . . . . . . . . . . . . . . . . . . . 45

ANEXO B – RAND-5D-5M . . . . . . . . . . . . . . . . . . . . 53

ANEXO C – RAND-10D-5M . . . . . . . . . . . . . . . . . . . 61

ANEXO D – RAND-256D-1M . . . . . . . . . . . . . . . . . . 69

ANEXO E – CLUSTER-100K-3D-5M . . . . . . . . . . . . . . 77

Page 16: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

ANEXO F – CLUSTER-100K-10D-5M . . . . . . . . . . . . . 85

Page 17: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

15

1 INTRODUÇÃO

Com as possibilidades de gravação e redução de custo de armazenamento de da-dos, a era da informação caracteriza-se pela grande quantidade de dados recolhidos - jáprocessados ou não. Estes dados, frequentemente não estruturados ou semi-estruturados,são recolhidos por sensores, dispositivos inteligentes, logs de servidores, conteúdo geradoem plataformas de rede sociais, dentre outras fontes.

Essa disseminação dos dispositivos de captura junto com a possibilidade de armazenar-se mais dados também resultou não só no aumento de dados textuais gravados, mastambém no surgimento de dados mais complexos, tais como coordenadas geoespaciais,arquivos de música, imagens e sequências de DNA. Ferramentas tradicionais não conse-guem processá-los pois muitas vezes os tipos de dados não definem uma relação de ordemtotal de forma trivial, sendo então necessário a utilização de consultas por similaridade.Esse tipo de consulta baseia-se em um critério de similaridade definido entre os dados,retornando aqueles que atendem a este requisito.

Uma das principais técnicas para se acessar os dados conforme o critério de simi-laridade são os Métodos de Acesso Métricos (MAMs), que assumem que os dados estãoem um espaço métrico e relaciona-os por suas medida de similaridade. Estruturas querepresentam esses métodos são a M-Tree e sua variante Slim-Tree, que são hierárquicas,paginadas, assim como a B-Tree, e dinâmicas, ou seja, não degeneram sua estrutura coma adição de novos dados depois da árvore estar construída.

Deve-se observar que determinadas computações das MAMs tem como principaislimitantes os acessos ao disco e as computações de similaridade. Assim, uma forma de oti-mizar esses operações é a utilização de soluções paralelas, incluindo discos, processadoresou máquinas adicionais. No entanto, implementações convencionais foram projetadas demodo que sejam executados de maneira sequencial, exigindo um novo projeto de formaque o paralelismo seja utilizado.

Devido às plataformas utilizadas para executar um dos paradigmas de paralelismoser melhor utilizada grandes volumes de dados, a carga de processamento das MAMsaumenta devido a um problema inerente ao tamanho: a eficácia das otimizações efetuadaspara evitar que consultas sejam processadas de forma desnecessária. Por exemplo, a adiçãode um novo elemento necessita de processamento de grande parte da estrutura caso otamanho de um bloco básico seja muito grande.

Portanto, o objetivo deste trabalho consiste na criação de uma estrutura auxiliar,no qual as inserções são realizadas nela. Essa nova estrutura é uma Slim-tree com umtamanho de página reduzido e com um limite máximo de elementos. Assim que o limiar

Page 18: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

16 Capítulo 1. Introdução

é atingido, os nós folhas da Slim-tree auxiliar são inseridos diretamente na sub-árvoremais apropriada do índice principal. Desta forma, utiliza-se dados presentes construídosdurante o processo de inserção de elementos na estutura auxiliar.

Este trabalho apresenta a seguinte organização:

∙ O capítulo 2 apresenta e formaliza o conceito de similaridade, bem como apresentao conceito de espaço métrico e exemplifica os principais métodos para sua manipula-ção. A seção 2.2 apresenta a biblioteca Jarboretum, em que os algoritmos propostosforam implementados e experimentados. Finalmente, a seção 2.3 mostra os trabalhosrelacionados.

∙ O capítulo 3 apresenta a motivação e o problema trabalhado. Em seguida, a propostapara a solução do problema é apresentada. Em seguida, detalhes de algoritmos sãointroduzidos junto com os detalhes de implementação.

∙ O capítulo 4 mostra qual foi o setup de testes, bem quais dados experimentais foramutilizados. Neste capítulo também são mostrados alguns resultados e conclusõestiradas a partir dos experimentos.

∙ O capítulo 5 extrai as conclusões finais dos experimentos, junto com algumas refle-xões sobre o trabalho feito. Alguns trabalhos futuros também são sugeridos, bemcomo as contribuições feitas.

Page 19: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

17

2 CONCEITOS

2.1 Similaridade

Na década de 60, surgiram primeiros Sistemas de Gerenciamento de Banco deDados (SGBDs) voltados ao processamento dados numérios e pequenos textos, tendocomo foco grandes organizações, tais como bancos e corporações. Tais SGBDs oferencemrecursos eficientes para realizar consultas sobre os dados usando relações de ordem totale de igualdade.

Com a popularização dos SGBDs, outras áreas começaram a incorporar o uso des-tes; em aplicações mais específicas, tornou-se necessária a manipulação de outros tiposde dados além dos alfa-numéricos. Para estes dados não escalares, ou complexos, as re-lações de ordem total e de igualdade não se aplicam ou simplesmente são de pouco uso.Para estes tipos de dados, as consultas por similaridade são mais relevantes, onde a pes-quisa por elementos se dá por algum critério de similaridade, que sejam mais "distintos"ou"parecidos"de um determinado elemento.

2.1.1 Consulta por Similaridade

Segundo [3], uma consulta por similaridade é definida por um objeto de consultae algum critério de similaridade, tipicamente representada por uma função de distância.O conjunto-resposta desta consulta tem como elementos todos os objetos que satisfazemtal critério.

Dados complexos, no geral, podem ser modelados por um meio de conjunto deatributos que caracterizam seu conteúdo, como a quantidade de pixels de uma certa core/ou presença e quantidade de uma forma geométrica. Este conjunto é denominado comoo vetor de características [4]. Uma função matemática então pode ser utilizada paraquantificar quão similar os elementos são a partir do vetor extraído. Esta função, pordefinição, deve ter como contra-domínio valores reais maior ou igual a zero e quantomenor o valor maior é a similaridade; um valor nulo oriundo função de distância igualequivale à similaridade total. Esta função é chamada de função de dissimilaridade oufunção de distância [5].

A função de distância indica exatamente quão dissimilar (diferente) é o objeto. Asimilaridade, então, pode ser medida pelo inverso deste valor.

Existem vários tipos de consultas por similaridade, sendo as consultas por abran-gência e consultas aos 𝑘-vizinhos mais próximos as mais comums. Além destes tipos,existem outros tipos de consultas por similaridade, sendo representativos as junções por

Page 20: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

18 Capítulo 2. Conceitos

similaridade e consultas por similaridade agregada [6]. São explicados as consultas porabrangência e os 𝑘-vizinhos mais próximos.

Uma consulta por abrangência (range query - Rq) retorna todos os elementosdissimilares de um elemento de consulta até uma certa distância máxima de um objeto deconsulta. Formalmente, seja S um domínio de dados, S ⊆ S um conjunto de elementos,𝑠𝑞 ∈ S um elemento de consulta, 𝛿 uma função de distância sobre elementos de S e 𝜀 umlimiar de dissimilaridade, uma consulta por é dada por

{𝑠𝑖 ∈ 𝑆 | 𝛿(𝑠𝑞, 𝑠𝑖) ≤ 𝜀}

Já as consultas aos k-vizinhos mais próximos (k-Nearest Neighbors query - k-NNq)retornam os k elementos mais similares da consulta. Deve ser observado que se cardina-lidade do conjunto de dados for menor que 𝑘, o número de elementos retornados serámenor que 𝑘. Inversamente, podem existir dois ou mais elementos com distâncias iguaisao elemento de referência; nestes casos, pode-se descartar um dos elementos de forma ale-atória ou, alternativamente, ambos poderão ser elementos do conjunto-resposta, fazendoque a cardinalidade deste conjunto seja maior que 𝑘. Formalmente, dado um domínio S,um conjunto de elementos S ⊆ S, um elemento de consulta 𝑠𝑞 𝜖S, uma função de distância𝛿 definida sobre S e um inteiro k ≥ 1, o resultado de uma consulta será:

𝐾 = {𝑠𝑖 ∈ 𝑆 |∀𝑠𝑗 ∈ 𝑆 ∖ 𝐾, |𝐾| = 𝑙, 𝛿(𝑠𝑞, 𝑠𝑖) ≤ 𝛿(𝑠𝑞, 𝑠𝑗)}

A Figura 1(a) representa um consulta por abrangência com elemento de consulta 𝑠𝑞

e raio 𝜉 no plano R2. Os elementos localizados no interior da região apresentada compõemo resultado da consulta. Já a figura 1(b) ilustra uma 5-NNq, com 𝑠𝑞 ∈ S como elementode consulta.

Figura 1 – (a) consulta por abrangência e (b) consulta aos k-vizinhos mais próximos

Page 21: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

2.1. Similaridade 19

2.1.2 Espaços Métricos e Métodos de Acessos Métricos

Formalmente, um espaço métrico é definido pelo par ⟨D, 𝛿⟩, onde D é o conjuntode elementos onde as consultas por similaridade são efetuadas e 𝛿 : D × D → R+ é umafunção de distância que avalia a "similaridade"entre dois objetos pertencentes ao conjunto.A função necessariamente deve possuir as seguintes propriedades:

1. Simetria: 𝛿(𝑠1, 𝑠2) = 𝛿(𝑠2, 𝑠1)

2. Não negativa: 0 < 𝛿(𝑠1, 𝑠2) < ∞𝑠𝑒𝑠1 ̸= 𝑠2𝑒𝛿(𝑠1, 𝑠1) = 0

3. Desigualdade triangular: 𝛿(𝑠1, 𝑠2) < 𝛿(𝑠1, 𝑠3) + 𝛿(𝑠2, 𝑠3)

onde 𝑠1, 𝑠2 ∈ D.

As funções de distâncias mais utilizadas são as funções da família Minkowski (𝐿𝑝);entre elas, estão presentes a distância euclidiana (𝐿2) e a distância Manhattan (𝐿1). Asfunções da família Minkowski são representados por [3]:

𝑑(𝑥1 . . . 𝑥2)(𝑦1 . . . 𝑦𝑛) = 𝑝

√︁∑︀𝑛𝑖=1 | 𝑥1 − 𝑦1|𝑝

As propriedades do espaço métrico, principalmente a desigualdade triangular, per-mitem a criação de técnicas de indexação capazes de responder consultas de modo eficiente[5].

Um método de acesso (MA) utiliza algum tipo de estrutura de dados parauma consulta não realizar uma busca sequêncial sobre todos os elementos do conjunto dedados [7]. Através das propriedades dos elementos indexados, uma MA pode descartarparte do conjunto, economizando recursos computacionais. Os MAs mais importante sãoas estruturas na forma de árvore ou hierárquicas, tais como a B-Tree [8], R-Tree [9] e aSlim-Tree [10].

As MAs inicialmente foram projetadas para o tratamento de dados numéricos ede pequenas cadeias de texto. Estes dados definem uma relação de ordem total entre eles,sendo, por exemplo, a operações de maior ou menor aplicáveis para estes conjuntos dedados. Dados complexos, tais como coordenadas geográficas, não definem tais relações,além de necessitar de mais dimensões para serem tratadas corretamente.

Para o armazenamento e posterior consulta de tais dados, foram criados os Mé-todos de Acesso Espaciais (MAEs), que tratam principalmente de dados geográficos.Exemplos de estruturas incluem a R-Tree e a R*-Tree [11]. No entanto, caso seja utilizadodados com dimensões maior, essas estruturas tendem a ter sua performance degradada[6].

Os Métodos de Acesso Métricos (MAMs) podem ser utilizados para indexardados de alta dimensionalidade, pois os elementos são somente relacionados pelas suas

Page 22: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

20 Capítulo 2. Conceitos

relações de similaridade. Para isto, é necessário que os elementos estejam dentro do espaçométrico e que a métrica (a função de dissimilaridade) seja definida adequadamente.

Exemplos de MAMs incluem M-tree [12], sua variante Slim-tree [10] e a DBM-tree[5]. Estes índices tem como caraterísticas serem hierárquicas, paginadas e balanceadas.Uma idéia que estas estruturas empregam é que alguns elementos são eleitos como re-presentativos de um subconjunto de dados. Quando um novo elemento é adicionado, asdistâncias do elemento com os representativos são calculados de forma que as proprieda-des do espaço métrico sejam utilizadas para descartar elementos durante a consulta ou aconstrução do índice.

A M-tree foi o primeiro MAM dinâmico criado, isto é, os elementos podem serinseridos após a construção do índice sem degeneração da estrutura (e perda de perfor-mance), característica não presente nos MAMs estáticos. A árvore gerada tem crescimentobottom-up, com dois tipos de nós, internos e folhas. A Slim-tree é reconhecida como umaevolução da M-tree, pois uma das suas grandes contribuições é o novo algoritmo de esco-lha de representativos, tendo base a árvore de cobertura mínima (Minimal Spanning Tree- MST).

2.1.3 A Slim-Tree

Na Slim-tree, assim como na M-tree, os elementos são reunidos em um tamanhofixo de acordo da página do disco. Os elementos em si são armazenados somente nas folhas,organizados em uma estrutura de árvore. Um elemento representante dé cada nó-folha éeleito e é utilizado como a parte central de todos os elementos de uma região de coberturada árvore.

Esse método de acesso utiliza dois tipos de estruturas: nós internos e nós folhas.Os nós folhas têm o seguinte formato [6]:

nó-folha [ vetor de [𝑂𝐼𝑑𝑖, d(𝑠𝑖, 𝑠𝑟𝑒𝑝), 𝑠𝑖] ]

onde

∙ 𝑂𝐼𝑑𝑖 é o identificator do elemento 𝑠𝑖;

∙ d(𝑠𝑖, 𝑠𝑟𝑒𝑝) é a distância do elemento 𝑠𝑖 até o elemento representativo 𝑠𝑟𝑒𝑝 do nó.

Os nós internos tem o seguinte formato [6]:nó-folha[ vetor de [𝑠𝑖, 𝑟𝑖, d(𝑠𝑖, 𝑠𝑟𝑒𝑝), ptr(𝑇𝑠𝑖

), #ent(ptr(𝑇𝑠𝑖) ] ]

onde

∙ 𝑠𝑖 é o elemento representante da subárvore apontada por ptr(𝑇𝑠𝑖);

Page 23: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

2.1. Similaridade 21

∙ 𝑟𝑖 é o raio de cobertura do nó (distância entre o elemento representativo e o elementomais distante do nó);

∙ d(𝑠𝑖, 𝑠𝑟𝑒𝑝) é a distância do elemento 𝑠𝑖 até seu representativo;

∙ #ent(ptr(𝑇𝑠𝑖)) é o número de entradas da subárvore apontada por ptr(𝑇𝑠𝑖

).

A figura 2 mostra a estrutura da árvore.

s1

s8

s4

s8

s13

s1

s2

s4

s11

s2

s16

s17

s1

s6

s7

s8

s10

s9

s4

s3

s5

s13

s15

s14

s11

s12

s1

s2

s3

s4

s5

s6

s7

s8

s9

s10

s11

s12

s13

s14

s15

s16

s17

Figura 2 – Estrutura da Slim-tree

O algoritmo de inserção na Slim-tree tem início na nó raiz e sua estrutura é per-corrida até encontrar o nó folha, de forma que o raio de cobertura de uma subárvore nãoaumente. Se o novo elemento não estiver dentro de nenhum raio de cobertura de algumnó já existente, é escolhido um nó cuja distância com o novo elemento seja minimizado.Se mais de um nó poder conter o objeto dentro do seu raio de cobertura, o algoritmo deescolha de subárvore é aplicado.

Dependendo do algoritmo de escolha de subárvore, a árvore gerada pode ter dife-rentes características para o mesmo conjunto de dados. Caso seja escolhido a menor taxade ocupação (minOccup), o nó com o menor número de elementos é selecionada, gerandouma árvore com alturas menores mas com um alto grau de sobreposição. Utilizando amenor distância como critério (minDist), no qual o nó mais perto em relação ao novo

Page 24: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

22 Capítulo 2. Conceitos

elemento é escolhido, a árvore é mais alta e com um grau de sobreposição menor. Alter-nativamente, o nó escolhido de forma aleatória gera árvores com performance igualável àsduas opções [5].

Durante a inserção de um novo elemento, pode ocorrer dos nós escolhidos já estive-rem totalmente preenchidos. Neste caso, uma operação de split deve ser realizada, criandoum novo nó e a redistribuir os dados dos nós cheios para os novos espaços alocados. Háa necessidade de escolher os elementos representativos; dois elementos são escolhidos eentão são referenciados pelo nó pai. Caso esse processo ocorra na raiz, uma nova raiz écriada e um novo nível da árvore é criada.

Para a escolha dos representativos, a Slim-tree pode ser configurada com uma dasseguintes estratégias:

Aleatório (Random) : a escolha dos representativos é feita de forma aleatória, sendoo algoritmo mais rápido;

Mínimo dos Menores Raios (minMax) : é escolhido o par de objetos que minimi-zam os novos raios de cobertura; este algoritmo é o mais custoso pois cada par deelementos pode ser utilizado;

Minimal Spanning Tree (MST) : é construida uma árvore de caminhos mínimos e aaresta mais longa da árvore é podada. Dois grupamentos são espalhdos entre os nóse os objetos centrais de cada grupo são escolhidos como os novos representantes.

2.2 Jarboreutum: A Slim-Tree Distribuída

Em [1], a biblioteca Jarboretum, escrita em Java, foi criada a partir da arquiteturae estrutura da biblioteca Arboretum[13], escrita em C++ com código-fonte aberto e de-senvolvida pelo Grupo de Bases de Dados e Imagens do Instituto de Ciências Matemáticase de Computação da USP (GBDI-ICMC-USP).

A criação da Jarboretum foi necessária em uma tentativa de paralelizar a Slim-tree, pois existem vários algoritmos passíveis de serem paralelizados e terem sua execuçãode forma mais rápida ao distribuir as funcionalidades para diferentes máquinas. Nestaaplicação, várias interfaces estão definidas de forma que modificações sejam de fácil escritae a curva de aprendizado para implementação de novos algoritmos seja menor.

Tanto na Jarboretum e na Arboretum existe a divisão em camadas distintas: ca-mada de usuário, responsável pela implementação das funções de distância e dos tipos deobjetos a serem armazenados; a camada de estrutura que enforça as regras dos métodosde acesso e a camada de armazenamento, que contém abstrações de diferentes dispositivosde armazenamento.

Page 25: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

2.2. Jarboreutum: A Slim-Tree Distribuída 23

A camada de armazenamento disponibiliza uma interface para a criação de novosabstrações de locais de persistência. Por padrão, a abstração convencional que imple-menta tal interface é a DiskPageManager, que armazena páginas como um único arquivoe utiliza identificadores de página para acessar os nós armazenados no arquivo. Tambémexiste a abstração de memória, MemoryPageMAnager, cujo mapeamento para escritas emmemória, ganhando velocidade de acesso ao custo do armazenamento ser

Na Jarboretum, uma abstração de armazenamento distribuído chamado HadoopDistributed File System Page Manager, ou HdfsPageManager, foi criado a fim de auxiliarno esforço de paralelização da Slim-tree. Esta forma de armazenamento permite que osarquivos criados sejam replicados para um cluster de computação distribuída Hadoop deforma transparente ao programador facilitando a implementação de outros fatores quesão exigidos da computação paralela. A figura 3 ilustra como a replicação de nível 3 éatingida.

Figura 3 – HDFS: esquema de replicação das páginas no cluster. [1]

Os algoritmos de inserção de elementos, bem como suas funcionalidades necessáriastal como o algoritmo de Minimal Spanning Tree e de split de nós, e os algoritmos deconsultas são totalmente implementadas na Jarboretum. No entanto, o algoritmo de slim-down, característico da Slim-tree, não está presente.

Page 26: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

24 Capítulo 2. Conceitos

2.3 Trabalhos Relacionados

Ciaccia e Patella[2] propõem um algoritmo de carga rápida para a M-tree, uti-lizando a técnica de amostragem dos dados. No entanto, em etapas intermediárias, aárvore não é balenceada, já que é construída de maneira descendente e de acordo com aproximidade dos elementos a serem inseridos.

Incialmente, o algoritmo escolhe de forma aleatória uma amostra de 𝑘 elementosdo conjunto de dados a serem inseridos. Então, para cada elemento do conjunto, é esco-lhido o elemento pertencente à amostra mais próxima do dado, formando-se 𝑘 conjuntos.Recursivamente, cada nó representante então é associado a um sub-conjunto, tendo-seentão uma árvore não balanceada. Neste ponto, as sub-árvores tendem a serem mais altasem áreas do conjunto de dados mais densas e a amostras em regiões menos densas deverãoter sub-árvores de tamanho menor, com cardinalidade mais baixa. A figura 4 ilustra essasituação.

B

IF

C

H

G

A

DE

B

root

G

C

F

H IC"

C’D E

A

A’

Figura 4 – Carga rápida da M-tree: exemplo de desbalanceamento conforme densidadedos elementos no espaço.[2]

Após a construção, o balanceamento é feito na tentativa da M-tree ser completa ebalanceada. Pode-se eliminar uma amostra e re-associar os elementos antes associados àamostra eliminada ou a amostra pode ser subsituida por um elemento reprensentativo maisadequado, que pode ser obtida quebrando as sub-árvore com altura maior. Os elementosanteriormente associados devem ser reindexadas neste novo elemento.

No entanto, existe o risco da árvore gerada ter somente um único elemento re-presentativo e nós-folhas contendo somente um elemento em cada. Quando isso ocorre, énecessário re-executar o algoritmo com outro conjunto de amostras. Por este fato, o pro-cesso pode ser custoso e há chances do algoritmo nunca resultar em uma árvore válida.

No trabalho de Vespa[14], o autor propõe um algoritmo de carga rápida para o

Page 27: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

2.3. Trabalhos Relacionados 25

MAM Slim-tree. A idéia principal do algoritmo proposto é estimar o número de nós daárvore a ser construída e o número de elementos de cada antes de associar os elementosa cada lista, para então distribuir os elementos nos nós virtual. Desta forma, a estruturacriada é balanceada em todas as etapas da construção.

Para a criar a estimativa da quantidade de novos nós, é necessário obter comoparâmetros o número total de elementos a serem indexados e as taxas de ocupação mínimae máxima de um nó. Desta forma, o controle de número de elementos associado a cada nópode ser calculado de três maneiras distintas, a saber: (a) manter o número de elementosconstante para toda a árvore, (b) manter o número de elementos disposto para cada nóconstante em cada nível da árvore, baseado na altura atual ou (c) avaliar o limite deacordo com a taxa de balanceamento da árvore. Neste último,

Todas as três abordagens constroem árvores balanceadas, mas as duas primeirasconstroem árvores com estruturas rígidas enquanto a terceira tenta utilizar a distribuiçãode dados para otimizar a estrutura sem a perca de balanceamento.

Para otimizar requisições aos índices, Skopal, Lokoc e Bustos[15] propõem umcache volátil (em memória) para o armazenamento das distâncias entre os elementos, deforma que operações de cálculo de distância sejam minimizadas. A motivação vêm do fatoque cada consulta é processada de forma independente ao invés de serem tratadas comoum fluxo de consultas. Por causa disto, os esforços de otimização de SGBDs focam-se emcomo filtrar os dados e reduzir o número de acesso a disco.

O autor menciona que o cache de distância é uma analogia ao cache de discoamplamente implementadas em SGBDs, mas economizando cálculos e não acesso ao disco.A idéia é utilizar os dados já calculados e armazená-los para poder inferir, de formaaproximada, os resultados mais rapidamente.

Independentemente da operação na MAM, seja de inserção de novo elemento oualguma consulta, o cache mantém a computação da distância no formato:

[𝑖𝑑(𝑂𝑖), 𝑖𝑑(𝑂𝑗), 𝛿(𝑂𝑖, 𝑂𝑗)]

onde 𝑖𝑑(𝑂𝑖), 𝑖𝑑(𝑂𝑗) são identificadores dos objetos 𝑂𝑖 e 𝑂𝑗 e 𝛿(𝑂𝑖, 𝑂𝑗) representasuas distâncias.

Ao invés de armazenarem tuplas, os autores propõem que os dados sejam guardadosem uma matriz esparsa, onde as linhas e as colunas são os objetos e a respectiva célulaapontada armazena o valor da distância. Como o cache é volátil, inicialmente a matriz évazia e é preenchida gradualmente assim que as operações são efetuadas.

A vantagem de uso desta matriz se dá por duas formas: (a) no caso da tabelajá tiver armazenado o valor exato da distância necessária para alguma computação, oque é útil no caso de algum procedimento de reindexação ou consultas repetidas e (b) atabela, utilizando de dados já calculados, pode fornecer os limites superiores e inferiores

Page 28: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

26 Capítulo 2. Conceitos

da distância, ao invés do número exato não pré-calculado na tabela. Usando somente asinformações de limites, pode-se podar seções do índice e efetuar consultas de forma maisrápida do que calcular todas as distâncias necessárias em situações que o cache não éutilizado.

Falchi et al.[16] utiliza uma idéia similar, mas as informações armazenadas sãoutilizadas para calcular de forma aproximada o resultado final da consulta desejada.

Page 29: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

27

3 O CACHE DE INSERÇÃO

Os esforços de paralelização da Slim-tree incluem abordagens com o uso do fra-mework para processamento de grandes volumes de dados Hadoop e seu sistemas dearquivos de arquivos distribuídos Hadoop Distributed File System (HDFS).

A biblioteca Jarboretum realiza a leitura e escrita nesse sistema de arquivos atravésda classe HdfsPageManager e tem como principal requisito o uso de páginas relativamentegrandes (4 MB ou mais). Com esse tamanho de página, vantagens em relação a ganhosde velocidade para processamento do índice podem ser observadas; caso contrário, degra-dação de desempenho pode ser esperado [1].

Além disso, escritas nesse sistemas de arquivos são bastante custosas, devido, prin-cipalmente, a sua natureza distribuída, o que exige a criação de novas técnicas que possamminimizar essas escritas. Uma desses métodos pode ser com a realização de operações deinserções em lote, em que um índice menor é utilizado para inserções elemento a elementoe, a partir de um certo limiar, os elementos desse índice são inseridos em lote no ín-dice principal. Com isso, espera-se reduzir custosas escritas ao disco e, por consequência,diminuir o tempo de processamento dos dados.

Neste capítulo, são apresentadas as contribuições esperadas desse trabalho. A seção3.1 apresenta e especifica o problema explorado e a seção 3.2 apresenta uma possívelmodificação que possa contornar o problema mencionado anteriormente. Já a seção 3.3mostra os algoritmos propostos e detalhes de implementação.

3.1 Motivação

De acordo com [1], a Slim-tree é uma estrutura paginada de natureza não volátil,o que significa que cada nó é representado por uma página1 de um arquivo no disco e cadaarquivo é formado por páginas relativamente pequenas. Porém, se torna muito custosoutilizar o HDFS para armazenar e efetuar leituras aleatórias nesse tipo de arquivo, vistoque ele foi projetado para processamento de blocos muito grandes e realização de acessossequenciais a esses blocos.

Então, a solução proposta no trabalho citado envolve serializar cada nó da Slim-Tree como um arquivo, sendo interessante então aumentar o tamanho da página, maxi-mizando a quantidade de elementos em cada nó. O autor lista vantagens para se usar oHDFS:

1 A página ou bloco denotam uma unidade atômica de armazenamento de dados.

Page 30: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

28 Capítulo 3. O Cache de Inserção

∙ Acesso sequencial é mais vantajoso;

∙ Tempo menor de inserção de blocos no HDFS, devido ao overhead da replicação econfirmação realizada pela HDFS para cada arquivo;

∙ Número reduzido de blocos no geral e altura reduzida da árvore, bem como o au-mento da taxa de transferência de arquivos;

∙ A realização de consultas que exigem menos comunicação entre as máquinas parti-cipantes do cluster.

O HDFS não foi projetado para lidar com vários arquivos com tamanhos menoresque o seu tamanho de bloco padrão (64MB); seu design é orientado para fornecer streamsde grandes arquivos ao invés de leituras a partir de um offset e acesso de máquinas pararecuperar arquivos pequenos, que são padrões ineficientes para recuperação de dados [17].

3.2 Proposta

A proposta desse trabalho aborda diretamente o fato do HDFS não lidar de formaeficiente com pequenos arquivos distribuídos entre as diferentes máquinas no cluster. Aideia envolve acumular, em uma MAM secundária ao índice principal, os novos elementosoriundos das operações de inserção. Uma vez que o limite 𝑒𝑖𝑐 de elementos é atingido naestrutura auxiliar, uma operação de flush é efetuada, que consiste em localizar os nóscontendo os elementos e adicionar o conjunto de elementos na sub-árvore mais apropriadado MAM principal.

A MAM secundária, cunhada de Cache de Inserção, tem a mesma estrutura eutiliza os mesmos algoritmos que uma Slim-tree, tendo como parâmetros o limite 𝑒𝑖𝑐 deelementos e o tamanho de página 𝑏𝑖𝑐. Ambos parâmetros devem ser configurados conformeexperimentos para obter-se eficiência tanto nas operações de inserção tanto nas operaçõesde consulta.

Nas melhores hipóteses, o tamanho da página 𝑏𝑖𝑐 é pequeno o suficiente para queum número pequeno de elementos seja associado a um nó. Quando a transferência de nóé executada, espera-se que a probabilidade de ocorrer modificações nas propriedades donó no índice principal, tal como alteração do raio de cobertura e operações de split, sejamais baixa pelo fato de haver um pequeno número de elementos a serem reassociados.

Os objetivos desta abordagem com cache de inserção serão:

1. Identificar os ganhos e perdas de performance nas operações de inserção e de con-sulta;

Page 31: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

3.3. Implementação 29

2. Identificar os melhores parâmetros de configuração da estrutura secundária;

3. Ponderar se o uso do cache traz vantagens e em quais casos.

3.3 Implementação

A implementação do cache de inserção aproveita-se da estrutura da Slim-tree jáexistente, necessitando-se modificar a operação de inserção para detectar quando a es-trutura secundária está em sua capacidade máxima limitada por 𝑒𝑖𝑐 e então efetuar oflush:

1 public boolean add(float[] element, long rowId) {2 this.elementCount++;3 boolean split = super.add(element, rowId);4

5 if (elementCount > elementLimit) {6 flushCache(this.root, null);7 this.deleteIndex();8 }9 return split;

10 }

Listing 1: Implementação do add

A função flush transversa o cache em busca dos nós folha de forma recursiva, paraentão identificar o elemento representativo do nó e adicionar o nó no índice principal:

1 private void flushCache(NodeTree nodeTree, EntryTree entryTree) {2 if (nodeTree instanceof IndexNodeTree) {3 for (EntryTree entry : nodeTree.getEntries()) {4 IndexEntryTree internalEntry = (IndexEntryTree) entry;5 flushCache(this.getPageManager().fromFileToNode(internalEntry.getPtr()), internalEntry);6 }7 } else if (nodeTree instanceof LeafNodeTree) {8 LeafNodeTree leafNode = (LeafNodeTree) nodeTree;9 if (entryTree != null) {

10 bigSlim.addNode(leafNode, entryTree.getSpaceElement());11 } else {12 float[] randomLeafElement = leafNode.getEntry(0).getSpaceElement();13 bigSlim.addNode(leafNode, randomLeafElement);14 }15 }16 }

Listing 2: Implementação da função flush

No âmbito da estrutura principal, o método de inserção do novo nó consiste emuma modificação do método de inserção de um elemento comum, passando a receber

Page 32: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

30 Capítulo 3. O Cache de Inserção

um nó folha como argumento. O processo ainda continua recursivo; para a execução doroteamento, o elemento representativo é utilizado como parâmetro da funcionalidade.

Antes da junção dos dois nós, a verificação do tamanho da página é executada deforma que as operações de split, caso necessário, sejam executadas.

As consultas realizadas nesse novo sistema são realizadas de maneira trivial. Paraa consulta aos k-vizinhos mais próximos, primeiramente é realizada a consulta ao índiceprincipal e, em seguida, efetua-se a consulta com os mesmos parâmetros para o índicesecundário. Depois disso, é realizado a adição dos elementos do índice secundário aoconjunto resposta principal e o elemento mais distante do raio de consulta é removidodesse conjunto. A verificação da nulidade da raíz é necessária para o caso da consulta tersido realizada logo após o cache ter realizado flush.

O algoritmo para a consulta por abrangência se baseia nessa mesma ideia.

1 public TreeResult nearestQuery(float[] sample, int k, boolean tie) {2

3 TreeResult indexResult = bigSlim.nearestQuery(sample, k, tie);4

5 if (this.root != null)6 {7 TreeResult cacheResult = super.nearestQuery(sample, k, tie);8

9 for (ResultPair pairs : cacheResult.getPairs())10 {11 indexResult.addPair(pairs);12 indexResult.knnCutOldResult();13 }14

15 }16 return indexResult;17 }

Listing 3: Implementação da consulta aos k-vizinhos mais próximos. Esse método se en-contra dentro do cache.

Page 33: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

31

4 RESULTADOS

Para a execução de testes, foi utilizado um computador equipado com um proces-sador Intel Core i7 3610M, com clock a 2.6GHz, com 16GB de RAM DDR3 e um discorígido SATA de 750GB à 7200 RPM. O sistema operacional utlizado foi o Ubuntu 14.04"Trusty Tahr".

Um arquivo JAR contendo as dependências de biblioteca e a aplicação em si foigerado de forma que o uso da Slim-tree fosse gerenciado a partir de argumentos passadospor linha de comando. Para automatizar os testes, um script bash foi escrito, que executaprimariamente a construção de uma Slim-tree sem o cache e depois, utilizado o índicegerado, executa consultas dos cinco, 10, 15, 20 e 30 elementos mais próximos e consultaspor abrangência com raios de 0.1 até 0.5, com incrementos de 0.1. Para as consultas,foram extraídos de forma aleatória 25 elementos para cada tipo de consulta, oriundos dosconjuntos de dados utilizados para construir o índice.

Os resultados referentes à performance do aplicativo, tais como tempos de execu-ção, cálculos de distância e número de acesso a disco são armazenados a fim de compara-ções. O tamanho de página de cada índice foi configurado para a potência de 2 que possaconter ao menos que uma página caiba aproximadamente 50 elementos do conjunto dedados utilizados

Após a geração das estatísticas sem o uso de cache, o script reconstrói o indice,mas desta vez utilizando o cache com seu tamanho de página 25% do tamanho de páginado índice principal e um limite máximo de 100 elementos. As mesmas consultas efetuadaspara a geração de estatísticas para comparação são efetuadas e armazenadas.

O tamanho de página do cache é variado de 25% à 100% do tamanho de página doíndice principal, com incrementos de 25%; para cada variação do tamanho de página, sãoexecutadas a criação do índice e as consultas com limite máximo de elementos configuradopara 100, 250, 500, 1000, 5000 e 10000.

A tabela 4 mostra os conjuntos de dados utilizados e suas características:

Page 34: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

32 Capítulo 4. Resultados

Conjunto de Dados # Elem. D Tam. Pág. Descriçãous-cities 41980 2 4096 Coordenadas geográficas de algumas ci-

dades dos EUA.rand-2d-5m 5 × 106 2 4096 Conjunto de dados sintéticos com dis-

tribuição uniforme gerado pelo DBGen.rand-5d-5m 5 × 106 5 8192 Conjunto de dados sintéticos com dis-

tribuição uniforme gerado pelo DBGen.rand-10d-5m 5 × 106 10 16384 Conjunto de dados sintéticos com dis-

tribuição uniforme gerado pelo DBGen.rand-256d-1m 1 × 106 256 524288 Conjunto de dados sintéticos com dis-

tribuição uniforme gerado pelo DBGen.cluster-100k-rand-3d-5m 5 × 106 3 8192 Conjunto de dados sintéticos gerado

pelo DBGen. Os elementos são distri-buidos de forma que existam 100000clusters espalhados.

cluster-100k-rand-10d-5m 5 × 106 10 16384 Conjunto de dados sintéticos geradopelo DBGen. Os elementos são distri-buidos de forma que existam 100000clusters espalhados.

Nesta seção, são mostradas alguns exemplos colhidos durante os experimentos.Todos os resultados estão disponíveis nos anexos deste trabalho para posterior conferência.

4.1 Tempo de Construção

Nos gráficos 5, 6, 7, pode-se observar que há um ganho considerável nas construçõesdo índices. Os ganhos mais acentuados se destacaram onde o número de elementos na cacheforam limitados à 100. Nota-se também que, conforme maior a dimensionalidade, maior éo ganho do uso do cache durante a construção. Pode-se notar também que, quando menoro tamanho do cache, maior é seu desempenho.

Figura 5 – Tempos de construção de índice - us-cities. Tempos no eixo Y em ms.

Page 35: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

4.2. Tempos de Consultas 33

Figura 6 – Tempos de construção de índice - rand-5d-5m. Tempos no eixo Y em ms.

4.2 Tempos de Consultas

Em análise dos resultados, pôde ser observado que, conforme a dimensionalidadeé reduzida, o tempo das consultas degradam-se, chegando a ser o triplo do tempo tomadonos conjuntos de dados com dimensionalidade dois. No entanto, conforme a este valoraumenta, os tempos começam a reduzir até que há um ganho mínimo em relação àsconsultas feitas em índices construídas sem o cache.

Em alguns casos, pode-se noticiar que o índice está com altos níveis de sobreposi-ção, devido à adição de nós com raio de cobertura grandes. Isso força o índice principal aatualizar seus próprios nós e aumentar o raio de cobertura para cobrir as novas adições.Devido a esse problema, a poda não é realizada e uma perca de performance é vista.

Page 36: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

34 Capítulo 4. Resultados

Figura 7 – Tempos de construção de índice - cluster-100k-rand-10d-5m. Tempos no eixoY em ms.

Figura 8 – Tempos de Consultas (kNN) - us-cities. No eixo X, varia-se os parâmetros dacache; no eixo Y, é mostrado o tempo em ms.

Page 37: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

4.2. Tempos de Consultas 35

Figura 9 – Tempos de Consultas (Rq) - us-cities. No eixo X, varia-se os parâmetros dacache; no eixo Y, é mostrado o tempo em ms.

Figura 10 – Tempos de Consultas (kNN) - rand-5d-5m. No eixo X, varia-se os parâmetrosda cache; no eixo Y, é mostrado o tempo em ms.

Page 38: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

36 Capítulo 4. Resultados

Figura 11 – Tempos de Consultas (Rq) - rand-5d-5m. No eixo X, varia-se os parâmetrosda cache; no eixo Y, é mostrado o tempo em ms.

Figura 12 – Tempos de Consultas (kNN) - cluster-100k-rand-10d-5m. No eixo X, varia-seos parâmetros da cache; no eixo Y, é mostrado o tempo em ms.

Page 39: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

4.2. Tempos de Consultas 37

Figura 13 – Tempos de Consultas (Rq) - cluster-100k-rand-10d-5m. No eixo X, varia-seos parâmetros da cache; no eixo Y, é mostrado o tempo em ms.

Page 40: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio
Page 41: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

39

5 CONCLUSÃO

5.1 Considerações Finais

Neste trabalho foi apresentado um novo método de inserção em lote de elementosnos métodos de acesso métricos. Pode-se notar que o uso do cache é vantajoso quandoa dimensionalidade do conjunto de dados é maior que 2; nos conjuntos com dimensio-nalidade reduzida, os tempos para criação do índice foram consideralvemnte diminuídos.No entanto, consultas efetuadas sobre os índices construídos apresentaram consumo derecursos maior que os índices criados sem cache.

Notou-se que em alguns casos, consultas aos índices construídos foram mais custo-sas do que consultas em índices construídos elemento a elemento, pois devido ao tamanhode página do cache, as operações de flush aumentaram o raio de cobertura da árvore,gerando sobreposição e aumentando o tempo de processamento pela estrutura não estarmais descartando elementos. Portanto, esses parâmetros em questão precisam ser bemaprimorados.

Além disso, durante os experimentos, operações sobre conjuntos de dados agrupa-dos não obtiveram diferenças em comparação aos conjuntos com distribuição uniforme.

Um cenário de uso promissor se dá quando um cluster com o PageManager con-figurado para o HdfsPageManager, em que o tamanho das páginas deve ser de tamanhorazoavelmente grande. As máquinas clientes manteriam um cache configurado com o Pa-geManager configurado para o MemoryPageManager ; dessa forma, todas as inserçõesunitárias seriam realizadas em memória. Quando o limiar de flush fosse atingido, as es-crita é executada de forma que todos os elementos sejam transferidos para o HDFS comperformance comparável a uma inserção de um elemento simples.

Deve-se destacar o que o cenário acima descrito têm pontos de falha, pois, porexemplo, uma máquina realizando a inserção pode falhar e todos os elementos armaze-nados em memória seriam descartadas, além do fato dos elementos não serem acessíveisaté a operação de flush ser realizada. Portanto, um mecanismo de journaling deverá serimplementado.

5.2 Principais Contribuições

∙ Criação do novo algoritmo de inserção em lote de elementos na Slim-Tree

∙ Criação de algoritmos de coexistência de estruturas métricas

Page 42: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

40 Capítulo 5. Conclusão

∙ Extensão da Slim-Tree para suportar operações entre múltiplas estruturas

∙ Forma de mescla de estruturas métricas

5.3 Trabalhos Futuros

Como trabalhos futuros, podem ser sugeridas:

∙ Implementar a cache de inserção na Arboretum e avaliar seu desempenho.

∙ Ciração de novas políticas de flush.

∙ Implementar outras estratégias e critérios para a execução do flush do cache.

∙ Possibilitar o uso da estratégia do cache para ambientes distribuídos.

Page 43: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

41

REFERÊNCIAS

1 HENRIQUE, G. J. Consultas por similaridade em um ambiente distribuído.

2 CIACCIA, P.; PATELLA, M. Bulk loading the m-tree. In: Proceedings of the 9thAustralasian Database Conference (ADC’98). [S.l.: s.n.], 1998. p. 15–26.

3 ZEZULA PAVEL; AMATO, G. D. V. B. M. Similarity Search: The Metric SpaceApproach. 1st. ed. [S.l.]: Springer Publishing Company, Incorporated, 2010. ISBN1441939725, 9781441939722.

4 BARIONI, M. C. N. Operações de consulta por similaridade em grandes bases de dadoscomplexos. Tese (Doutorado) — Instituto de Ciências Matemáticas e de Computação(ICMC), Universidade de São Paulo (USP), 2006.

5 VIEIRA MARCOS RODRIGUES; TRAINA JR, C. DBM-Tree: Método deacesso métrico sensível a densidade local. Tese (Doutorado) — Instituto de CiênciasMatemáticas e de Computação (ICMC), Universidade de São Paulo (USP), 2004.

6 KASTER, D. d. S. Tratamento de condições especiais para busca por similaridade embancos de dados complexos. Tese (Doutorado) — Instituto de Ciências Matemáticas e deComputação (ICMC), Universidade de São Paulo (USP), 2012.

7 POLA, I. R. V. Explorando conceitos da teoria de espaços métricos em consultaspor similaridade sobre dados complexos. Tese (Doutorado) — Instituto de CiênciasMatemáticas e de Computação (ICMC), Universidade de São Paulo (USP), 2010.

8 COMER, D. Ubiquitous b-tree. ACM Computing Surveys (CSUR), ACM, v. 11, n. 2,p. 121–137, 1979.

9 GUTTMAN, A. R-trees: A dynamic index structure for spatial searching. [S.l.]: ACM,1984.

10 JR CAETANO; TRAINA, A. S. B. F. C. T. Slim-trees: High performance metrictrees minimizing overlap between nodes. [S.l.]: Springer, 2000.

11 BECKMANN, N. et al. The R*-tree: an efficient and robust access method for pointsand rectangles. [S.l.]: ACM, 1990.

12 CIACCIA, P.; PATELLA, M.; ZEZULA, P. M-tree: An efficient access method forsimilarity search in metric spaces. In: Proceedings of the International Conference onVery Large Data Bases. [S.l.]: Morgan Kaufmann Pub, 1997. v. 23, p. 426.

13 VIEIRA FABIO J. T. CHINO CAETANO TRAINA JR., A. J. M. T. M. R.Disponível em: <http://www.gbdi.icmc.usp.br/downloads/arboretum/>.

14 VESPA, T. G. Operação de carga-rápida (bulk-loading) em métodos de acessométricos. Tese (Doutorado) — Instituto de Ciências Matemáticas e de Computação(ICMC), Universidade de São Paulo (USP), 2007.

Page 44: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

42 Referências

15 SKOPAL, T.; LOKOC, J.; BUSTOS, B. D-cache: Universal distance cache for metricaccess methods. Knowledge and Data Engineering, IEEE Transactions on, v. 24, n. 5, p.868–881, May 2012. ISSN 1041-4347.

16 FALCHI, F. et al. A metric cache for similarity search. In: Proceedings of the 2008ACM Workshop on Large-Scale Distributed Systems for Information Retrieval. New York,NY, USA: ACM, 2008. (LSDS-IR ’08), p. 43–50. ISBN 978-1-60558-254-2. Disponívelem: <http://doi.acm.org/10.1145/1458469.1458473>.

17 WHITE, T. The Small Files Problem. 2009. Disponível em: <http://blog.cloudera.com/blog/2009/02/the-small-files-problem/>.

Page 45: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Anexos

Page 46: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio
Page 47: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

45

ANEXO A – RAND-2D-5M

Page 48: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Tempo

Página 1

rand2d5m Inserção Rq0.1 Rq0.2 Rq0.3 Rq0.4 Rq0.5 Knn5464529ms 5808ms 15153ms 30992ms 48819ms 66664ms 495ms

Bloco Cache MaxEle1024 100 180162ms 15881ms 25806ms 39512ms 56498ms 72841ms 1941ms1024 250 194200ms 12581ms 22659ms 37239ms 54264ms 71516ms 1344ms1024 500 209233ms 11207ms 21006ms 35778ms 53393ms 71060ms 1179ms1024 1000 227365ms 10940ms 20727ms 35118ms 52719ms 71005ms 1190ms1024 5000 250433ms 10340ms 20287ms 34319ms 53020ms 69670ms 1101ms1024 10000 273758ms 10311ms 20372ms 34576ms 52409ms 70278ms 1097ms

2048 100 185020ms 17182ms 26330ms 39254ms 57923ms 71517ms 2982ms2048 250 211829ms 13885ms 23496ms 37474ms 57651ms 71463ms 1824ms2048 500 223689ms 11365ms 21029ms 35673ms 52704ms 70751ms 1292ms2048 1000 232512ms 9455ms 18887ms 34063ms 51999ms 67323ms 1012ms2048 5000 286389ms 7930ms 17556ms 31502ms 49250ms 66220ms 841ms2048 10000 298820ms 7793ms 17679ms 32848ms 49911ms 66847ms 797ms

4096 100 149500ms 17837ms 26295ms 39457ms 55830ms 72907ms 5993ms4096 250 256095ms 15393ms 24694ms 37923ms 53890ms 71092ms 3585ms4096 500 291715ms 12921ms 22940ms 36461ms 53242ms 70483ms 2222ms4096 1000 312164ms 10929ms 20785ms 34502ms 52504ms 68978ms 1489ms4096 5000 344834ms 7406ms 16754ms 31218ms 48291ms 67027ms 738ms4096 10000 388070ms 6713ms 15908ms 30909ms 48184ms 65853ms 738ms

Page 49: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Tempo

Página 2

Knn10 Knn15 Knn20 Knn30512ms 558ms 515ms 537ms

2084ms 2076ms 2064ms 2086ms1357ms 1403ms 1430ms 1406ms1233ms 1233ms 1274ms 1277ms1206ms 1197ms 1213ms 1247ms1119ms 1157ms 1169ms 1182ms1144ms 1204ms 1171ms 1174ms

3079ms 3159ms 3190ms 3225ms1850ms 1882ms 1893ms 1903ms1320ms 1358ms 1358ms 1428ms1033ms 1033ms 1043ms 1063ms849ms 824ms 868ms 854ms825ms 819ms 840ms 836ms

6128ms 6228ms 6293ms 6407ms3661ms 3680ms 3768ms 3850ms2226ms 2292ms 2281ms 2322ms1537ms 1581ms 1568ms 1564ms793ms 852ms 802ms 810ms761ms 768ms 793ms 780ms

Page 50: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

CalcDist

Página 3

Inserção Rq0.1 Rq0.2 Rq0.3 Rq0.4 Rq0.5 Knn51976634495 13152746 28021744 45639750 63886253 81674265 309370

Bloco Cache MaxEle1024 100 1734334271 35691517 64839679 87476876 103495090 113960208 12743991024 250 1808767520 28956610 53086259 73643744 90906651 104699799 10286471024 500 1862263980 25717531 47637259 67341223 84927514 99867467 9175591024 1000 1891999179 24832449 46200857 65728348 83402868 98627671 9242091024 5000 1965937531 23819342 44501228 63786584 81570962 97138496 8914671024 10000 1980711143 23804225 44460755 63703353 81488651 97068878 877268

2048 100 1983525345 37543453 68203090 91504749 107132943 116492435 14982232048 250 2151060200 31039639 56808101 78088915 95045742 107861169 11816692048 500 2227228230 26126818 48322066 68142331 85780094 100637266 9868102048 1000 2293122427 21459895 40734301 59550874 77565206 93830703 7798882048 5000 2428607260 17854890 35081516 53344656 71464881 88524194 6452052048 10000 2454119289 17637466 34786746 52989449 71125893 88245679 642109

4096 100 2031036904 38725275 70703848 94679654 110055164 118479074 18608614096 250 2810141486 34076855 62320057 84731797 101142662 112295166 15122184096 500 3017583487 29548862 54387852 75330550 92475131 105852622 11675504096 1000 3144207772 25113556 46864958 66559033 84219667 99257542 9395824096 5000 3391493799 16651902 33358441 51445874 69558798 86707882 5499174096 10000 3495614547 15398096 31433160 49358204 67513438 84879697 518793

Page 51: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

CalcDist

Página 4

Knn10 Knn15 Knn20 Knn30333368 349094 364793 376527

1413108 1481017 1587811 16811501113247 1188081 1229097 1300023

989316 1054372 1094851 1159810990472 1037071 1072792 1135288951703 994192 1051310 1107919946468 993032 1034748 1094869

1700108 1868602 1971531 21390461299085 1366604 1427444 15328541044304 1103026 1165421 1242460

836768 873756 914719 971080695860 729192 748431 785604684590 716035 742969 781399

2163907 2409516 2602472 28678501710293 1849141 1960880 21766421283001 1390800 1461490 15792531037912 1099423 1136674 1222578

593915 619171 645563 683934567585 594770 614020 649765

Page 52: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Escrita

Página 5

Inserção19750669

Bloco Cache MaxEle1024 100 97913461024 250 107935511024 500 119853421024 1000 142522511024 5000 161378181024 10000 18808265

2048 100 74912722048 250 94363982048 500 101054672048 1000 104408272048 5000 140650402048 10000 14929710

4096 100 52428174096 250 77628804096 500 90812914096 1000 97463334096 5000 102817644096 10000 12067314

Page 53: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Leitura

Página 6

Inserção Rq0.1 Rq0.2 Rq0.3 Rq0.4 Rq0.514676232 299622 530059 790950 1053285 1302249

Bloco Cache MaxEle1024 100 4445357 1187400 1368155 1517025 1627139 17015101024 250 5441780 889162 1124463 1334308 1506525 16340231024 500 6627437 761453 1004036 1230565 1425812 15788931024 1000 8892501 728894 973009 1203272 1403048 15629631024 5000 10775383 694417 941710 1178989 1388417 15568901024 10000 13446209 694260 941931 1180193 1390533 1560445

2048 100 2285126 1247011 1375932 1475581 1545317 15886712048 250 4231279 955082 1154470 1324098 1454612 15438502048 500 4897384 751304 974149 1178777 1349427 14798282048 1000 5231336 578531 807419 1030571 1231218 13956492048 5000 8852539 459436 686255 919247 1138631 13297442048 10000 9717194 453419 680497 913529 1134863 1327547

4096 100 143712 1159853 1196613 1219554 1231201 12364424096 250 2639426 1013714 1134842 1227358 1290120 13285234096 500 3956218 822198 985855 1122304 1226690 12973804096 1000 4619367 654675 838245 1006142 1144703 12494384096 5000 5152426 379826 569872 765105 949674 11114054096 10000 6937645 344608 532484 730115 920102 1089226

Page 54: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Leitura

Página 7

Knn5 Knn10 Knn15 Knn20 Knn3015000 15525 16012 16276 16455

147165 149083 151583 153927 15652790355 92105 93223 93378 9512677497 78130 79166 79774 8082674728 75827 76492 77011 7821268997 70264 71133 72267 7345067798 68688 69603 70177 71363

249957 255327 261239 264491 268818136588 138221 139130 141034 14303590350 90876 92055 92961 9436659451 60083 60725 61263 6233743008 44099 44719 45027 4556542617 43486 43902 44243 44958

476603 484118 489299 494089 499554277821 283007 285402 288045 293392158993 161369 163097 164139 16657999189 100332 101016 101449 10244937656 38610 38688 39383 4009734936 35744 36209 36592 37019

Page 55: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

53

ANEXO B – RAND-5D-5M

Page 56: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Tempo

Página 1

rand-5d-5m Inserção Rq0.1 Rq0.2 Rq0.3 Rq0.4 Rq0.5 Knn5464529ms 5808ms 15153ms 30992ms 48819ms 66664ms 495ms

Bloco Cache MaxEle1024 100 180162ms 15881ms 25806ms 39512ms 56498ms 72841ms 1941ms1024 250 194200ms 12581ms 22659ms 37239ms 54264ms 71516ms 1344ms1024 500 209233ms 11207ms 21006ms 35778ms 53393ms 71060ms 1179ms1024 1000 227365ms 10940ms 20727ms 35118ms 52719ms 71005ms 1190ms1024 5000 250433ms 10340ms 20287ms 34319ms 53020ms 69670ms 1101ms1024 10000 273758ms 10311ms 20372ms 34576ms 52409ms 70278ms 1097ms

2048 100 185020ms 17182ms 26330ms 39254ms 57923ms 71517ms 2982ms2048 250 211829ms 13885ms 23496ms 37474ms 57651ms 71463ms 1824ms2048 500 223689ms 11365ms 21029ms 35673ms 52704ms 70751ms 1292ms2048 1000 232512ms 9455ms 18887ms 34063ms 51999ms 67323ms 1012ms2048 5000 286389ms 7930ms 17556ms 31502ms 49250ms 66220ms 841ms2048 10000 298820ms 7793ms 17679ms 32848ms 49911ms 66847ms 797ms

4096 100 149500ms 17837ms 26295ms 39457ms 55830ms 72907ms 5993ms4096 250 256095ms 15393ms 24694ms 37923ms 53890ms 71092ms 3585ms4096 500 291715ms 12921ms 22940ms 36461ms 53242ms 70483ms 2222ms4096 1000 312164ms 10929ms 20785ms 34502ms 52504ms 68978ms 1489ms4096 5000 344834ms 7406ms 16754ms 31218ms 48291ms 67027ms 738ms4096 10000 388070ms 6713ms 15908ms 30909ms 48184ms 65853ms 738ms

Page 57: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Tempo

Página 2

Knn10 Knn15 Knn20 Knn30512ms 558ms 515ms 537ms

2084ms 2076ms 2064ms 2086ms1357ms 1403ms 1430ms 1406ms1233ms 1233ms 1274ms 1277ms1206ms 1197ms 1213ms 1247ms1119ms 1157ms 1169ms 1182ms1144ms 1204ms 1171ms 1174ms

3079ms 3159ms 3190ms 3225ms1850ms 1882ms 1893ms 1903ms1320ms 1358ms 1358ms 1428ms1033ms 1033ms 1043ms 1063ms849ms 824ms 868ms 854ms825ms 819ms 840ms 836ms

6128ms 6228ms 6293ms 6407ms3661ms 3680ms 3768ms 3850ms2226ms 2292ms 2281ms 2322ms1537ms 1581ms 1568ms 1564ms793ms 852ms 802ms 810ms761ms 768ms 793ms 780ms

Page 58: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

CalcDist

Página 3

rand-5d-5m Inserção Rq0.1 Rq0.2 Rq0.3 Rq0.4 Rq0.5 Knn51976634495 13152746 28021744 45639750 63886253 81674265 309370

Bloco Cache MaxEle1024 100 1734334271 35691517 64839679 87476876 103495090 113960208 12743991024 250 1808767520 28956610 53086259 73643744 90906651 104699799 10286471024 500 1862263980 25717531 47637259 67341223 84927514 99867467 9175591024 1000 1891999179 24832449 46200857 65728348 83402868 98627671 9242091024 5000 1965937531 23819342 44501228 63786584 81570962 97138496 8914671024 10000 1980711143 23804225 44460755 63703353 81488651 97068878 877268

2048 100 1983525345 37543453 68203090 91504749 107132943 116492435 14982232048 250 2151060200 31039639 56808101 78088915 95045742 107861169 11816692048 500 2227228230 26126818 48322066 68142331 85780094 100637266 9868102048 1000 2293122427 21459895 40734301 59550874 77565206 93830703 7798882048 5000 2428607260 17854890 35081516 53344656 71464881 88524194 6452052048 10000 2454119289 17637466 34786746 52989449 71125893 88245679 642109

4096 100 2031036904 38725275 70703848 94679654 110055164 118479074 18608614096 250 2810141486 34076855 62320057 84731797 101142662 112295166 15122184096 500 3017583487 29548862 54387852 75330550 92475131 105852622 11675504096 1000 3144207772 25113556 46864958 66559033 84219667 99257542 9395824096 5000 3391493799 16651902 33358441 51445874 69558798 86707882 5499174096 10000 3495614547 15398096 31433160 49358204 67513438 84879697 518793

Page 59: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

CalcDist

Página 4

Knn10 Knn15 Knn20 Knn30333368 349094 364793 376527

1413108 1481017 1587811 16811501113247 1188081 1229097 1300023

989316 1054372 1094851 1159810990472 1037071 1072792 1135288951703 994192 1051310 1107919946468 993032 1034748 1094869

1700108 1868602 1971531 21390461299085 1366604 1427444 15328541044304 1103026 1165421 1242460

836768 873756 914719 971080695860 729192 748431 785604684590 716035 742969 781399

2163907 2409516 2602472 28678501710293 1849141 1960880 21766421283001 1390800 1461490 15792531037912 1099423 1136674 1222578

593915 619171 645563 683934567585 594770 614020 649765

Page 60: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Escrita

Página 5

Inserção19750669

Bloco Cache MaxEle1024 100 97913461024 250 107935511024 500 119853421024 1000 142522511024 5000 161378181024 10000 18808265

2048 100 74912722048 250 94363982048 500 101054672048 1000 104408272048 5000 140650402048 10000 14929710

4096 100 52428174096 250 77628804096 500 90812914096 1000 97463334096 5000 102817644096 10000 12067314

Page 61: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Leitura

Página 6

Inserção Rq0.1 Rq0.2 Rq0.3 Rq0.4 Rq0.514676232 299622 530059 790950 1053285 1302249

1024 100 4445357 1187400 1368155 1517025 1627139 17015101024 250 5441780 889162 1124463 1334308 1506525 16340231024 500 6627437 761453 1004036 1230565 1425812 15788931024 1000 8892501 728894 973009 1203272 1403048 15629631024 5000 10775383 694417 941710 1178989 1388417 15568901024 10000 13446209 694260 941931 1180193 1390533 1560445

2048 100 2285126 1247011 1375932 1475581 1545317 15886712048 250 4231279 955082 1154470 1324098 1454612 15438502048 500 4897384 751304 974149 1178777 1349427 14798282048 1000 5231336 578531 807419 1030571 1231218 13956492048 5000 8852539 459436 686255 919247 1138631 13297442048 10000 9717194 453419 680497 913529 1134863 1327547

4096 100 143712 1159853 1196613 1219554 1231201 12364424096 250 2639426 1013714 1134842 1227358 1290120 13285234096 500 3956218 822198 985855 1122304 1226690 12973804096 1000 4619367 654675 838245 1006142 1144703 12494384096 5000 5152426 379826 569872 765105 949674 11114054096 10000 6937645 344608 532484 730115 920102 1089226

Bloco Cache MaxEle

Page 62: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Leitura

Página 7

Knn5 Knn10 Knn15 Knn20 Knn3015000 15525 16012 16276 16455

147165 149083 151583 153927 15652790355 92105 93223 93378 9512677497 78130 79166 79774 8082674728 75827 76492 77011 7821268997 70264 71133 72267 7345067798 68688 69603 70177 71363

249957 255327 261239 264491 268818136588 138221 139130 141034 14303590350 90876 92055 92961 9436659451 60083 60725 61263 6233743008 44099 44719 45027 4556542617 43486 43902 44243 44958

476603 484118 489299 494089 499554277821 283007 285402 288045 293392158993 161369 163097 164139 16657999189 100332 101016 101449 10244937656 38610 38688 39383 4009734936 35744 36209 36592 37019

Page 63: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

61

ANEXO C – RAND-10D-5M

Page 64: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Tempo

Página 1

rand-10d-5m Inserção Rq0.1 Rq0.2 Rq0.3 Rq0.4 Rq0.5 Knn516384 0 1022513ms 19656ms 21920ms 23604ms 24237ms 24889ms 12459ms

Bloco Cache MaxEle4096 100 298522ms 21590ms 22960ms 23770ms 24297ms 24440ms 16070ms4096 250 338518ms 21618ms 22989ms 23709ms 24057ms 24329ms 15952ms4096 500 356911ms 21325ms 22905ms 23412ms 24125ms 24492ms 15500ms4096 1000 367203ms 21659ms 22933ms 23583ms 24053ms 24497ms 15616ms4096 5000 431125ms 21333ms 22837ms 23495ms 23963ms 24400ms 15431ms4096 10000 454257ms 21391ms 22695ms 23483ms 23967ms 24488ms 15519ms

8192 100 271335ms 20909ms 22312ms 22689ms 23302ms 23658ms 18348ms8192 250 382703ms 20985ms 22420ms 22923ms 23559ms 23903ms 17281ms8192 500 430686ms 21200ms 22362ms 23169ms 23460ms 23764ms 17306ms8192 1000 456695ms 20999ms 22349ms 23160ms 23596ms 23925ms 16955ms8192 5000 508624ms 20957ms 22516ms 23136ms 23562ms 23779ms 16954ms8192 10000 551345ms 21039ms 22507ms 23147ms 23611ms 24017ms 16852ms

16384 100 284665ms 20847 22039 22905 23335 23846 18339ms16384 250 426640ms 19013 20210 20774 21110 21499 18046ms16384 500 561078ms 19984 21217 22147 22189 22546 17657ms16384 1000 654293ms 20301 21578 22318 22630 22794 17346ms16384 5000 734820ms 20036 21439 22188 22771 22816 17458ms16384 10000 762592ms 20204 21379 22214 22686 22797 17774ms

Page 65: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Tempo

Página 2

Knn10 Knn15 Knn20 Knn3014034ms 14911ms 15648ms 16483ms

17351ms 18057ms 18522ms 19369ms17112ms 17786ms 18397ms 19195ms17003ms 17501ms 18098ms 18839ms16831ms 17504ms 18110ms 18966ms16980ms 17647ms 18235ms 19050ms16918ms 17650ms 18263ms 19058ms

19531ms 19992ms 20234ms 20842ms18396ms 19015ms 19358ms 20064ms18275ms 18842ms 19256ms 19915ms18075ms 18637ms 19035ms 19740ms17939ms 18586ms 19049ms 19702ms17956ms 18640ms 19088ms 19781ms

19292ms 19785ms 20275ms 20748ms18794ms 19090ms 19440ms 19713ms18668ms 18979ms 19227ms 19734ms18231ms 18787ms 19091ms 19599ms18318ms 18832ms 19194ms 19605ms18590ms 19117ms 19681ms 19932ms

Page 66: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

CalcDist

Página 3

Inserção Rq0.1 Rq0.2 Rq0.3 Rq0.4 Rq0.5 Knn516384 3955851062 32577938 61003454 83988578 100739935 111795201 34720370

Bloco Cache MaxEle4096 100 3282656615 35607047 66164866 89877135 106095832 115896522 417230984096 250 3439315643 35527339 66035423 89743791 105988247 115813142 412721484096 500 3513174570 35428015 65871930 89545543 105808022 115677827 405358284096 1000 3585778249 35373780 65784463 89447091 105715053 115607867 411913554096 5000 3710636351 35046939 65249308 88866919 105216963 115263316 405059254096 10000 3743767330 34995874 65155519 88770939 105142389 115203619 40192165

8192 100 3283740004 35652503 66330790 90073043 106270213 116011974 503859588192 250 3962165519 35504409 66062852 89782274 106024066 115837455 458190708192 500 4223557168 35375033 65844619 89538460 105809904 115691714 457784068192 1000 4359909941 35270656 65670964 89342629 105627041 115555689 446121718192 5000 4610012256 35062139 65313535 88943203 105285350 115303506 463823178192 10000 4728126836 34949641 65129017 88742505 105105110 115170177 45397468

16384 100 3283740004 35652503 66330790 90073043 106270213 116011974 5038595816384 250 5034887280 35709622 66609161 90421639 106576071 116224406 5484149916384 500 5456580915 35406331 65996294 89730392 105976575 115801006 4853607516384 1000 5931783988 35268533 65763667 89467306 105748379 115635052 4733413316384 5000 6396228479 35001416 65295728 88939227 105280981 115296745 4862759916384 10000 6520885387 34904049 65134236 88770020 105145805 115198498 48410195

Page 67: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

CalcDist

Página 4

Knn10 Knn15 Knn20 Knn3040547433 44327603 46948292 51047061

47615333 51605988 54057874 5817063047419620 51518238 54038554 5778863046516360 50133360 52800382 5690623546931688 50582232 53041307 5736177247259407 51062164 53727191 5755488946698576 50374921 53096888 57068670

56043565 59606921 62014963 6574702251441689 55005700 57726394 6145074851252074 54393285 56724053 6045774450699006 54336642 56915130 6065019351716445 55215769 57913202 6157493651144425 54776963 57424401 60871446

56043565 59606921 62014963 6574702260714132 64339266 66707719 6976590454038267 57360392 59606689 6310944753002024 56687752 59040844 6259732153976760 57490810 60131376 6345498254354391 57840231 60403717 63800062

Page 68: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Escrita

Página 5

Inserção16384 16900823

Bloco Cache MaxEle4096 100 74362304096 250 93745664096 500 100382784096 1000 103684344096 5000 138482214096 10000 14774866

8192 100 51908138192 250 77147538192 500 90398268192 1000 97004278192 5000 102275528192 10000 11710595

16384 100 519081316384 250 507964016384 500 755752916384 1000 887327716384 5000 992400816384 10000 10054855

Page 69: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Leitura

Página 6

Inserção Rq0.1 Rq0.2 Rq0.3 Rq0.4 Rq0.516384 11862101 817389 879688 919783 943130 956013

Bloco Cache MaxEle4096 100 2257139 868326 883136 890251 893362 8946954096 250 4192060 865704 881160 888460 891768 8932084096 500 4851695 864180 880932 888925 892724 8944804096 1000 5180425 864253 881434 889797 893824 8955984096 5000 8659274 860003 879408 889310 894224 8965994096 10000 9585900 862686 882717 893369 898672 901197

8192 100 110010 774485 779558 781384 782058 7822988192 250 2618475 789054 797014 800319 801747 8022708192 500 3935484 800545 810184 814245 816102 8169038192 1000 4593191 800314 810634 815149 817140 8179528192 5000 5118424 799079 811729 817510 820062 8212738192 10000 6601288 799442 812495 818557 821336 822591

16384 100 110010 774485 779558 781384 782058 78229816384 250 39619 502453 502525 502525 502525 50252516384 500 2500351 647928 651069 652250 652703 65290116384 1000 3810805 672009 676591 678352 679096 67939716384 5000 4858325 682231 688744 691417 692475 69292716384 10000 4988899 683706 690749 693688 694928 695494

Page 70: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Leitura

Página 7

Knn5 Knn10 Knn15 Knn20 Knn30490566 546307 582165 604152 639859

597210 645820 675786 692929 721161586926 636256 669541 687166 713085577557 628488 656963 677238 708261584654 632835 661103 677842 710314586080 643820 671647 690666 717717586945 643128 671353 692468 719486

636862 668250 684608 694917 710067609354 645875 665639 681102 700480614988 650303 668599 680611 700847604239 644193 666855 681030 700842613897 649097 671531 687478 707999611963 648804 671350 687802 705161

636862 668250 684608 694917 710067448158 462742 471299 475812 480607537831 560289 573330 581440 593040547865 574548 589957 598902 612815562176 586552 601075 611153 623411564395 592066 607504 618104 629265

Page 71: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

69

ANEXO D – RAND-256D-1M

Page 72: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Tempo

Página 1

rand-256d-1m Inserção Rq0.1 Rq0.2 Rq0.3 Rq0.4 Rq0.5524288 0 3183142ms 54023ms 47407ms 51121ms 52151ms 53253ms

Bloco Cache MaxEle131072 100 529607ms 49083ms 50865ms 52043ms 52867ms 54219ms131072 250 696732ms 51319ms 48176ms 49597ms 50656ms 51480ms131072 500 778752ms 46449ms 48217ms 49554ms 50136ms 51189ms131072 1000 824545ms 47901ms 48523ms 49940ms 50626ms 50736ms131072 5000 913790ms 49411ms 50927ms 52342ms 53574ms 53607ms131072 10000 1003559ms 52362ms 48452ms 49596ms 50727ms 50832ms

262144 100 562006ms 49258ms 50650ms 51910ms 53079ms 53850ms262144 250 806223ms 46185ms 46846ms 48011ms 49059ms 49763ms262144 500 NR NR NR NR NR NR262144 1000 NR NR NR NR NR NR262144 5000 NR NR NR NR NR NR262144 10000 NR NR NR NR NR NR

524288 100 NR NR NR NR NR NR524288 250 NR NR NR NR NR NR524288 500 NR NR NR NR NR NR524288 1000 NR NR NR NR NR NR524288 5000 NR NR NR NR NR NR524288 10000 NR NR NR NR NR NR

Page 73: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Tempo

Página 2

Knn5 Knn10 Knn15 Knn20 Knn3053976ms 54198ms 54254ms 53709ms 53697ms

54831ms 54391ms 54249ms 53598ms 54006ms50510ms 52008ms 51620ms 51915ms 52019ms52636ms 52335ms 52533ms 52324ms 52040ms53992ms 52157ms 51976ms 52125ms 51579ms54901ms 55499ms 54866ms 54877ms 54351ms50297ms 52218ms 52211ms 51922ms 51535ms

54290ms 52241ms 54572ms 54551ms 54441ms50977ms 50864ms 50643ms 51037ms 51331ms

NR NR NR NR NRNR NR NR NR NRNR NR NR NR NRNR NR NR NR NR

NR NR NR NR NRNR NR NR NR NRNR NR NR NR NRNR NR NR NR NRNR NR NR NR NRNR NR NR NR NR

Page 74: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

CalcDist

Página 3

Inserção Rq0.1 Rq0.2 Rq0.3 Rq0.4 Rq0.5524288 1340117452 6425195 12114454 16723498 20084490 22300494

Bloco Cache MaxEle131072 100 1258417409 6368925 12029249 16636553 20021505 22271175131072 250 1132425382 6386375 12056391 16666922 20053642 22295891131072 500 1319255882 6362662 12018980 16625362 20012038 22264027131072 1000 1341453794 6363661 12020446 16622611 20007693 22255322131072 5000 1386055529 6360701 12021000 16632440 20019740 22269498131072 10000 1417645410 6358481 12007165 16606861 19990958 22248301

262144 100 1132425382 6386375 12056391 16666922 20053642 22295891262144 250 1465922214 6380716 12055215 16666028 20053373 22296408262144 500 NR NR NR NR NR NR262144 1000 NR NR NR NR NR NR262144 5000 NR NR NR NR NR NR262144 10000 NR NR NR NR NR NR

524288 100 NR NR NR NR NR NR524288 250 NR NR NR NR NR NR524288 500 NR NR NR NR NR NR524288 1000 NR NR NR NR NR NR524288 5000 NR NR NR NR NR NR524288 10000 NR NR NR NR NR NR

Page 75: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

CalcDist

Página 4

Knn5 Knn10 Knn15 Knn20 Knn3025000431 25000439 25000445 25000449 25000458

25000377 25000377 25000380 25000384 2500038625000402 25000406 25000409 25000413 2500042224999891 24999895 24999899 24999902 2499991225000076 25000080 25000082 25000090 2500009825000433 25000447 25000458 25000473 2500049825000396 25000406 25000418 25000433 25000463

25000402 25000406 25000409 25000413 2500042225000359 25000366 25000372 25000376 25000382

NR NR NR NR NRNR NR NR NR NRNR NR NR NR NRNR NR NR NR NR

NR NR NR NR NRNR NR NR NR NRNR NR NR NR NRNR NR NR NR NRNR NR NR NR NRNR NR NR NR NR

Page 76: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Escrita

Página 5

Inserção524288 2879280

Bloco Cache MaxEle131072 100 1550830131072 250 1031908131072 500 1808354131072 1000 1936849131072 5000 2039325131072 10000 2271602

262144 100 1031908262144 250 1034068262144 500 NR262144 1000 NR262144 5000 NR262144 10000 NR

524288 100 NR524288 250 NR524288 500 NR524288 1000 NR524288 5000 NR524288 10000 NR

Page 77: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Leitura

Página 6

Inserção Rq0.1 Rq0.2 Rq0.3 Rq0.4524288 1875249 97096 99235 100145 100514

Bloco Cache MaxEle131072 100 18423 88962 89420 89559 89605131072 250 534474 89398 89910 90082 90147131072 500 790142 90825 91442 91616 91676131072 1000 917903 90699 91254 91434 91479131072 5000 1019873 91694 92342 92612 92692131072 10000 1252062 93845 94614 94912 95039

262144 100 18423 88962 89420 89559 89605262144 250 22717 84106 84452 84543 84571262144 500 NR NR NR NR NR262144 1000 NR NR NR NR NR262144 5000 NR NR NR NR NR262144 10000 NR NR NR NR NR

524288 100 NR NR NR NR NR524288 250 NR NR NR NR NR524288 500 NR NR NR NR NR524288 1000 NR NR NR NR NR524288 5000 NR NR NR NR NR524288 10000 NR NR NR NR NR

Page 78: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Leitura

Página 7

Rq0.5 Knn5 Knn10 Knn15 Knn20 Knn30100666 100800 100800 100800 100800 100800

89620 89675 89675 89675 89675 8967590162 90225 90225 90225 90225 9022591692 91750 91750 91750 91750 9175091497 91550 91550 91550 91550 9155092730 92825 92825 92825 92825 9282595088 95175 95175 95175 95175 95175

89620 89675 89675 89675 89675 8967584574 84625 84625 84625 84625 84625

NR NR NR NR NR NRNR NR NR NR NR NRNR NR NR NR NR NRNR NR NR NR NR NR

NR NR NR NR NR NRNR NR NR NR NR NRNR NR NR NR NR NRNR NR NR NR NR NRNR NR NR NR NR NRNR NR NR NR NR NR

Page 79: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

77

ANEXO E – CLUSTER-100K-3D-5M

Page 80: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Tempo

Página 1

cluster-100k-3d-5m Inserção Rq0.1 Rq0.2 Rq0.3 Rq0.4 Rq0.58192 748855ms 5845ms 10723ms 19582ms 33440ms 51446ms

Bloco Cache MaxEle2048 100 252257ms 18073ms 20699ms 27999ms 38718ms 53308ms2048 250 274497ms 16290ms 20400ms 26773ms 37919ms 52329ms2048 500 286303ms 15753ms 20075ms 26733ms 38002ms 52447ms2048 1000 292551ms 14900ms 19220ms 26233ms 37411ms 52188ms2048 5000 341069ms 13486ms 17942ms 25165ms 37102ms 51084ms2048 10000 359845ms 13427ms 17952ms 25473ms 37312ms 52091ms

4096 100 216260ms 16650ms 20234ms 26641ms 37883ms 53069ms4096 250 307074ms 16317ms 20046ms 26831ms 37907ms 52320ms4096 500 338754ms 15879ms 19617ms 26241ms 37664ms 51870ms4096 1000 357393ms 15056ms 19051ms 26101ms 37606ms 52093ms4096 5000 391173ms 11982ms 16792ms 24754ms 36495ms 51715ms4096 10000 436881ms 11320ms 16106ms 24353ms 36210ms 52192ms

8192 100 221996ms 16679ms 20397ms 26670ms 37780ms 52015ms8192 250 333575ms 16378ms 19941ms 26259ms 37047ms 51994ms8192 500 440519ms 15773ms 19465ms 26465ms 36739ms 52401ms8192 1000 498949ms 15020ms 18915ms 25988ms 36964ms 51776ms8192 5000 557933ms 12938ms 17438ms 24796ms 36644ms 51625ms8192 10000 573171ms 11589ms 16069ms 23861ms 35625ms 50674ms

Page 81: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Tempo

Página 2

Knn5 Knn10 Knn15 Knn20 Knn30752ms 780ms 763ms 786ms 806ms

3023ms 3240ms 3275ms 3334ms 3417ms2572ms 2712ms 2856ms 2982ms 3022ms2272ms 2404ms 2446ms 2530ms 2616ms1971ms 2021ms 2101ms 2159ms 2276ms1702ms 1803ms 1847ms 1885ms 1982ms1665ms 1780ms 1847ms 1835ms 1910ms

5009ms 5238ms 5316ms 5373ms 5481ms3619ms 3839ms 3899ms 3943ms 4087ms3038ms 3175ms 3238ms 3297ms 3436ms2520ms 2573ms 2645ms 2743ms 2814ms1764ms 1830ms 1893ms 1935ms 1978ms1570ms 1678ms 1767ms 1764ms 1836ms

4958ms 5224ms 5357ms 5415ms 5500ms5234ms 5326ms 5415ms 5588ms 5735ms4520ms 4674ms 4754ms 4863ms 5026ms3832ms 3933ms 4049ms 4111ms 4256ms2583ms 2693ms 2768ms 2845ms 2938ms2207ms 2348ms 2378ms 2405ms 2458ms

Page 82: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

CalcDist

Página 3

Inserção Rq0.1 Rq0.2 Rq0.3 Rq0.4 Rq0.5 Knn58192 3455149956 15712333 31892211 49968347 69152292 87661022 737417

Bloco Cache MaxEle2048 100 2962058465 42575094 76764857 100427266 114399507 121376616 25664762048 250 3092025372 41415242 75009038 98711479 113112072 120604378 21939392048 500 3148365879 39503093 72092834 95847483 110925802 119265131 19264942048 1000 3222622510 37084263 68145148 91650434 107520877 117087967 17806152048 5000 3324669974 33197366 61772308 84760266 101783436 113283778 15177632048 10000 3358356261 32737026 60987569 83849118 100971196 112715406 1517555

4096 100 2994992142 42701309 77014225 100647284 114518818 121395810 34968264096 250 3622244712 41402101 75040493 98770466 113145431 120591561 28604294096 500 3796224156 39681038 72434367 96208307 111216556 119455413 24317314096 1000 3905990080 37383271 68738732 92344788 108155179 117536387 20207454096 5000 4156220709 30181793 56748194 79144921 96897151 109849053 15250044096 10000 4224409264 27891689 52870917 74753099 93010856 107043119 1439977

8192 100 2994992142 42701309 77014225 100647284 114518818 121395810 34968268192 250 4486200319 41180740 74734421 98413173 112834679 120373576 34549578192 500 5038854274 39620147 72425399 96231447 111254368 119455066 30975328192 1000 5351327006 37605174 69244203 92973734 108711498 117897716 27229298192 5000 5712432269 31639798 59344946 82178898 99647854 111859315 20329208192 10000 5867155046 28627180 54256864 76412771 94525121 108145263 1758313

Page 83: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

CalcDist

Página 4

Knn10 Knn15 Knn20 Knn30811587 861566 905029 965043

3004482 3315805 3539639 39201692642914 2937087 3079115 34130752285940 2508026 2699902 29675371975489 2180627 2381392 25997131714284 1890968 1998594 22126721720741 1865311 1975996 2144650

4117038 4631417 4952565 55072483354889 3688634 3993232 43837252817211 3078140 3281307 36472052343999 2550546 2796205 30682231809916 1953865 2078076 22554281684244 1798589 1886580 2072022

4117038 4631417 4952565 55072484088055 4521462 4868324 53990403610288 3967752 4322226 47822093185166 3513991 3710248 41355142351731 2609428 2738573 30459652070837 2262799 2421147 2633627

Page 84: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Escrita

Página 5

Inserção8192 18192272

Bloco Cache MaxEle2048 100 78420272048 250 96095952048 500 101985592048 1000 104974432048 5000 144133492048 10000 15111332

4096 100 52089504096 250 80648314096 500 92393644096 1000 98272894096 5000 103063344096 10000 12769214

8192 100 52089508192 250 55507178192 500 78718208192 1000 90435288192 5000 99840268192 10000 10102483

Page 85: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Leitura

Página 6

cluster-100k-3d-5m Inserção Rq0.1 Rq0.2 Rq0.3 Rq0.4 Rq0.58192 13150187 262103 402363 557418 709505 841815

Bloco Cache MaxEle2048 100 2645137 881324 929695 960814 979326 9895522048 250 4408018 852868 910514 949018 972842 9861142048 500 4996426 810807 882534 931963 963104 9815842048 1000 5294243 751904 842785 907688 950859 9772762048 5000 9209009 674713 785631 870215 929873 9677292048 10000 9906619 665323 778786 866881 929327 969425

4096 100 125568 810379 829654 839285 843804 8457384096 250 2949794 819857 860862 885520 899249 9064964096 500 4121775 786727 843227 877631 897336 9078064096 1000 4708526 737950 812247 860793 890080 9060734096 5000 5185964 585196 697847 786795 849490 8887234096 10000 7649053 540157 660293 761013 834601 882454

8192 100 125568 810379 829654 839285 843804 8457388192 250 479488 728837 749903 761401 767296 7702808192 500 2801827 704897 735089 751577 760179 7645078192 1000 3972178 675650 721591 747817 762045 7689848192 5000 4911341 563699 646186 705187 741987 7622138192 10000 5029327 507306 601913 675439 726006 756001

Page 86: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Leitura

Página 7

Knn5 Knn10 Knn15 Knn20 Knn3019829 20737 21388 21786 22473

150228 157994 162246 166059 170424122468 130401 135366 137319 142446102813 108810 113307 116671 12111784931 87389 91565 94709 9781370360 73419 76601 78051 8210469912 73245 75818 77367 80389

257310 266769 272383 275981 280967184203 191892 196060 200128 205152146841 152546 155946 158140 162696114691 119852 122003 125575 12956273951 77817 80134 81665 8383965164 68563 70225 71620 74187

257310 266769 272383 275981 280967245525 250058 254406 258354 263917206744 211724 215122 218161 222954170854 176098 179216 180640 185121111663 114629 117951 119190 12251992108 95889 97476 99314 101865

Page 87: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

85

ANEXO F – CLUSTER-100K-10D-5M

Page 88: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Tempo

Página 1

Inserção Rq0.1 Rq0.2 Rq0.3 Rq0.4 Rq0.5 Knn516384 997053ms 18915ms 21430ms 23208ms 24334ms 24842ms 12252ms

Bloco Cache MaxEle4096 100 302234ms 21662ms 22902ms 23694ms 24266ms 24367ms 15225ms4096 250 336770ms 21491ms 22873ms 23630ms 24120ms 24345ms 14866ms4096 500 358109ms 21482ms 22857ms 23755ms 24189ms 24486ms 14894ms4096 1000 373610ms 21373ms 22816ms 23674ms 24153ms 24580ms 15064ms4096 5000 442977ms 21405ms 22741ms 23618ms 24091ms 24520ms 14797ms4096 10000 451675ms 21232ms 22709ms 23510ms 24103ms 24392ms 14832ms

8192 100 267943ms 21154ms 22308ms 23080ms 23609ms 23525ms 17782ms8192 250 385907ms 20908ms 22462ms 23019ms 23527ms 23756ms 16714ms8192 500 427849ms 21172ms 22209ms 23233ms 23487ms 23793ms 16635ms8192 1000 460816ms 20921ms 22395ms 23085ms 23562ms 23981ms 16241ms8192 5000 504982ms 20866ms 22397ms 23132ms 23425ms 23844ms 16673ms8192 10000 553494ms 20947ms 22390ms 22959ms 23747ms 23799ms 16256ms

16384 100 285416ms 21051ms 22423ms 22981ms 23183ms 23571ms 17701ms16384 250 428126ms 18975ms 20196ms 20917ms 21109ms 21459ms 17847ms16384 500 562893ms 20262ms 21358ms 22075ms 22416ms 22734ms 17176ms16384 1000 659220ms 20172ms 21546ms 22250ms 22628ms 23228ms 16998ms16384 5000 735894ms 20201ms 21554ms 22276ms 22660ms 23221ms 16862ms16384 10000 761133ms 20121ms 21446ms 22202ms 22557ms 22979ms 17176ms

Page 89: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Tempo

Página 2

Knn10 Knn15 Knn20 Knn3013558ms 14481ms 15001ms 15844ms

16431ms 17282ms 17738ms 18701ms16350ms 17136ms 17648ms 18412ms16375ms 17068ms 17974ms 18406ms16317ms 16769ms 17674ms 18241ms16380ms 17251ms 17879ms 18464ms16237ms 17148ms 17848ms 18551ms

18793ms 19281ms 20023ms 20150ms17842ms 18372ms 18862ms 19534ms17781ms 18134ms 18617ms 19309ms17357ms 18126ms 18840ms 19169ms17767ms 18415ms 18956ms 19462ms17693ms 18223ms 19007ms 19480ms

18806ms 19271ms 19859ms 20408ms18041ms 18644ms 18766ms 19569ms17999ms 18504ms 19034ms 19438ms17985ms 18645ms 18755ms 19314ms17927ms 18519ms 18913ms 19278ms18096ms 18617ms 18952ms 19683ms

Page 90: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

CalcDist

Página 3

Inserção Rq0.1 Rq0.2 Rq0.3 Rq0.4 Rq0.5 Knn516384 3876681776 32256239 60340436 83097303 99819557 111007538 32954122

Bloco Cache MaxEle4096 100 3286772887 36630457 67762260 91462595 107273199 116563645 382764754096 250 3442363884 36420590 67425883 91095099 106957347 116337088 378499314096 500 3520160492 36220918 67115270 90765022 106692194 116163003 381298864096 1000 3584771724 35995998 66740905 90364074 106357739 115930542 379172554096 5000 3719435417 35528622 65956873 89496181 105601972 115385873 371412024096 10000 3742882574 35486444 65878409 89413038 105530753 115333944 37560225

8192 100 3286440917 36717836 68011909 91779498 107571196 116787120 472576618192 250 3967834436 36455829 67550240 91260457 107112910 116455227 427633078192 500 4221760123 36183252 67098393 90756434 106678018 116146142 422660218192 1000 4359437442 36032451 66833725 90463626 106424881 115967284 420267968192 5000 4610562804 35610210 66132766 89698735 105766026 115494753 433722938192 10000 4724627694 35436977 65859071 89407249 105523421 115329498 41177461

16384 100 3286440917 36717836 68011909 91779498 107571196 116787120 4725766116384 250 5036586299 37024919 68736675 92650461 108347577 117346454 5190091616384 500 5454442905 36393815 67560561 91301463 107165023 116501174 4565537516384 1000 5936036961 36019548 66919541 90592500 106557686 116074549 4492534116384 5000 6391710595 35586824 66197395 89811487 105877829 115585758 4506035116384 10000 6519490481 35473656 65995974 89573591 105665207 115425883 46201403

Page 91: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

CalcDist

Página 4

Knn10 Knn15 Knn20 Knn3038442544 41968091 44477662 48687032

44402501 47952474 50602010 5490337444357131 47911231 50462435 5441001344566746 47723467 50490779 5437137143920834 47406087 50235240 5389706243751819 47384397 50027179 5357229443789710 47510883 50320537 54053894

53189486 56758221 59552383 6308800448283001 51935647 54670920 5832001348189487 51408604 53897344 5756482848114490 51730035 54335952 5784587748828161 52000010 54780739 5854101847826892 51537044 54127577 58100490

53189486 56758221 59552383 6308800457398296 60998520 63288345 6681479451098649 54609564 57106769 6064023950534316 53949864 56401116 5973708151236009 54750423 57112597 6074058751708479 54820745 57392064 60788191

Page 92: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Escrita

Página 5

Inserção16384 16886112

Bloco Cache MaxEle4096 100 74357284096 250 93741944096 500 100383414096 1000 103672804096 5000 138495504096 10000 14773764

8192 100 51905398192 250 77141768192 500 90396768192 1000 97007868192 5000 102272528192 10000 11712334

16384 100 519053916384 250 507964016384 500 755703616384 1000 887349416384 5000 992431616384 10000 10055043

Page 93: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Leitura

Página 6

cluster-100k-10d-5m Inserção Rq0.1 Rq0.2 Rq0.3 Rq0.4 Rq0.516384 11847366 783105 860618 910382 939264 954712

Bloco Cache MaxEle4096 100 2256816 856826 879284 889730 894301 8962874096 250 4191687 854377 877898 888947 894048 8961814096 500 4851583 851072 875687 887471 892927 8953264096 1000 5179508 848170 873504 885828 891504 8939984096 5000 8660516 846710 874876 888801 895419 8984944096 10000 9584703 847516 876703 891194 898296 901774

8192 100 109755 768218 777471 780493 781442 7817958192 250 2617990 782111 795093 800173 802237 8031028192 500 3935445 790057 805639 812117 814818 8158738192 1000 4593452 790272 807136 814045 816882 8180898192 5000 5118140 788636 808027 816495 820183 8217378192 10000 6603045 786705 806883 815911 819919 821708

16384 100 109755 768218 777471 780493 781442 78179516384 250 39619 501843 502505 502525 502525 50252516384 500 2499992 643285 649287 651199 651872 65214216384 1000 3810926 669201 677668 680709 681775 68215416384 5000 4858588 676058 687036 691194 692800 69344616384 10000 4989121 675001 686667 691097 692885 693603

Page 94: PROPOSTADEINSERÇÃOEMLOTEDE … · 2015. 8. 17. · quantificar quão similar os elementos são a partir do vetor extraído. Esta função, por definição, deve ter como contra-domínio

Leitura

Página 7

Knn5 Knn10 Knn15 Knn20 Knn30471960 526034 559422 582953 619798

565345 617809 646716 666515 698754557229 613123 641449 660854 688371557552 613426 638816 661018 689071554583 607805 633312 656629 682395554638 613911 642825 662690 688081561249 615134 646256 668256 694592

614258 649158 666827 680728 696910588379 623676 646582 661906 681564587868 629481 647733 662894 683320580826 622064 646326 662301 682757594233 631836 650987 668542 690528578602 627342 651454 666546 690028

614258 649158 666827 680728 696910440926 454791 463933 468624 475411520493 545117 559953 569216 581056531021 560394 576818 586646 599310538102 569878 587580 597227 611910545737 573852 589129 599745 612848