high-performance extensible indexing publicado em 1999 na 25th vldb conference por: marcel kornacker...
TRANSCRIPT
![Page 1: High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD](https://reader034.vdocuments.com.br/reader034/viewer/2022051615/552fc134497959413d8d7ee5/html5/thumbnails/1.jpg)
High-Performance Extensible Indexing
Publicado em 1999 na 25th VLDB ConferencePor: Marcel Kornacker
Apresentado por: Gustavo Augusto e Ivan Silva
TABD 23/04/12
![Page 2: High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD](https://reader034.vdocuments.com.br/reader034/viewer/2022051615/552fc134497959413d8d7ee5/html5/thumbnails/2.jpg)
Introdução
Métodos eficientes de acesso à árvores de procura são cruciais para qualquer base de dados.
Em tradicionais DBMS relacionais , árvores B+ são suficientes para queries com tipos de dados standards do SQL
Mas para “extensive object-relational database management systems“ (ORDBMSs) novos métodos são necessários.
![Page 3: High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD](https://reader034.vdocuments.com.br/reader034/viewer/2022051615/552fc134497959413d8d7ee5/html5/thumbnails/3.jpg)
Introdução (continuação)
As ORDBMSs são feitas para suportar aplicações como
• Servidores web dinâmicos• Sistemas de informação geográfica• Ferramentas CAD• Etc...
Para essas aplicações novos métodos de acesso (AM) . Entrentanto fazer um AM não é trivial, pois é necessário um vasto conhecimento em protocolos de concorrência e recuperação
![Page 4: High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD](https://reader034.vdocuments.com.br/reader034/viewer/2022051615/552fc134497959413d8d7ee5/html5/thumbnails/4.jpg)
Introdução (problema)
No estado da arte comercial, há o “Oracle’s Extensible Indexing Interface” e o “Informix Dynamic Server with Universal Data Option” (IDS/UDO).
![Page 5: High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD](https://reader034.vdocuments.com.br/reader034/viewer/2022051615/552fc134497959413d8d7ee5/html5/thumbnails/5.jpg)
Introdução (proposta)
Generalized Search Tree(GiST)
![Page 6: High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD](https://reader034.vdocuments.com.br/reader034/viewer/2022051615/552fc134497959413d8d7ee5/html5/thumbnails/6.jpg)
Índice
• Descrição do GiST• Arquitetura e implementação do GiST• Implementation Issues• Concurrency control and Recovery• Performance Measurements• Summary
![Page 7: High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD](https://reader034.vdocuments.com.br/reader034/viewer/2022051615/552fc134497959413d8d7ee5/html5/thumbnails/7.jpg)
Descrição do GiST
• GiST é uma arvore equilibrada que fornece algoritmos “template” para navegação entre estruturas de árvores através de page splits e deletes.
• Como todas as outras árvores de indexação, o GiST guarda pares (key, RID) nas folhas. RIDs (Record Identifiers) apontam para os registos na pagina de dados.
• Paginas internas contêm pares (predicado, apontador da pagina filho) onde o predicado avalia TRUE para cada chave dentro ou abaixo da pagina filho associada
![Page 8: High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD](https://reader034.vdocuments.com.br/reader034/viewer/2022051615/552fc134497959413d8d7ee5/html5/thumbnails/8.jpg)
Descrição do GiST
• Exemplos de bases que seguem essas propriedades:– Árvores B+– Árvores R
• Além desses requerimentos estruturais, o GiST não impõe nenhum requerimento extra sobre os dados chave guardados na arvore ou sobre a organização dos mesmos dentro e entre as paginas permitindo dados multidimencionais.
![Page 9: High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD](https://reader034.vdocuments.com.br/reader034/viewer/2022051615/552fc134497959413d8d7ee5/html5/thumbnails/9.jpg)
Descrição do GiST
• O GiST suporta as operações standard de índices:– Search: com um predicado, retorna todas as folhas com
entradas que satisfaçam o predicado– Insert: adiciona um par (key, RID) à árvore– Delete: remove um determinado par da árvore
• Entretanto é necessário uma ajuda de funções externas fornecidas pelo desenvolvedor do AM
• E.g. no search, é necessário definir uma funçao consistent()• E.g. No delete, é necessário definir uma função union()
![Page 10: High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD](https://reader034.vdocuments.com.br/reader034/viewer/2022051615/552fc134497959413d8d7ee5/html5/thumbnails/10.jpg)
Arquitetura e implementação do GiST
Ao implementar uma arquitetura extensão de AM baseada em GiST certos problemas precisam ser tratadas:
• User Defined Functions(UDF)• Costumização do formato de armazenamento
e das paginas internas
![Page 11: High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD](https://reader034.vdocuments.com.br/reader034/viewer/2022051615/552fc134497959413d8d7ee5/html5/thumbnails/11.jpg)
Arquitetura e implementação do GiST
A arquitetura é dividada em 3 partes
• GiST core(11functions)• AM extension• Data type adapter
![Page 12: High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD](https://reader034.vdocuments.com.br/reader034/viewer/2022051615/552fc134497959413d8d7ee5/html5/thumbnails/12.jpg)
Arquitetura e implementação do GiST
A arquitetura é dividada em 3 partes
• GiST core(11functions)• AM extension• Data type adapter
![Page 13: High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD](https://reader034.vdocuments.com.br/reader034/viewer/2022051615/552fc134497959413d8d7ee5/html5/thumbnails/13.jpg)
Arquitetura e implementação do GiST
A arquitetura é dividada em 3 partes
• GiST core(11functions)• AM extension• Data type adapter
![Page 14: High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD](https://reader034.vdocuments.com.br/reader034/viewer/2022051615/552fc134497959413d8d7ee5/html5/thumbnails/14.jpg)
Arquitetura e implementação do GiST
• s
![Page 15: High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD](https://reader034.vdocuments.com.br/reader034/viewer/2022051615/552fc134497959413d8d7ee5/html5/thumbnails/15.jpg)
Arquitetura e implementação do GiST
• As operações search, insert e delete mudam de forma a usar as funçoes de interface do GiST core.
• Essas novas operações optimizam o número de chamadas UDF.
![Page 16: High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD](https://reader034.vdocuments.com.br/reader034/viewer/2022051615/552fc134497959413d8d7ee5/html5/thumbnails/16.jpg)
Implementation Issues
A implementação da extensão GiST AM inclui controlo de concurrencia e recuperação.
![Page 17: High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD](https://reader034.vdocuments.com.br/reader034/viewer/2022051615/552fc134497959413d8d7ee5/html5/thumbnails/17.jpg)
Análise performance
• Concurrency control– O protocolo de ”locking” que permite a procura e actualizações
de forma concurrente nas arvores é feita usando uma adaptação da técnica de ”B-link tree”.
– Todas as páginas estão ligadas umas às outras.– Para alem do link, cada página tem um PSN (page number
sequence).– Em cada ”page split” o actual PSN da página vai para o ramo da
direita e um novo PSN é atribuído ao ramo da esquerda.– O Log é apenas efectuado a cada 100 incrementos para
garantir eficiência.
![Page 18: High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD](https://reader034.vdocuments.com.br/reader034/viewer/2022051615/552fc134497959413d8d7ee5/html5/thumbnails/18.jpg)
Recovery
• O protocolo de ”logging” do GiST suporta alta concurrencia nas arvores de procura, dividindo-os em ”content-changing (item insertion and deletion at the leaf level)” e ”structure-modifying parts (page splits, parent entry updates, page deletions)”.
• A API implementada não modifica em nada a implementação base Informix Dynamic Server with Universal Data Option (IDS/UDO).
![Page 19: High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD](https://reader034.vdocuments.com.br/reader034/viewer/2022051615/552fc134497959413d8d7ee5/html5/thumbnails/19.jpg)
Performance Measurements• GiST-based R-trees VS built-in R-trees
– Software engineering benefits– higher performance
– Performance comparation involves individual search and insert
– Search built-in: 1359 UDF calls– Search GiST-based: 80 UDF calls
– Insert built-in: 182 UDF calls– Insert GiST-based: 4 UDF calls– Insert built-in W/split: 704 UDF calls– Insert GiST-based W/split: 66 UDF...
![Page 20: High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD](https://reader034.vdocuments.com.br/reader034/viewer/2022051615/552fc134497959413d8d7ee5/html5/thumbnails/20.jpg)
Summary• Modelo GiST-based como extenção da implementação IDS/UDO.• Clara separação das funcionalidades de uma AM e os algoritmos genéricos de
”search” e ”update”.• 1. Não tem que se preocupar com concurrencias nem protocolos de recuperação• 2. AM está ligeiramente integrado na BD do ponto de vista operacional, o que
garante tanta fiabilidade quando as built-in.• Redução das linhas de implementação.• Melhoramento na performance entre os 14 e 40%.