1 / 20

High-Performance Extensible Indexing

High-Performance Extensible Indexing. Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD 23/04/12. Introdução. Métodos eficientes de acesso à árvores de procura são cruciais para qualquer base de dados.

duc
Download Presentation

High-Performance Extensible Indexing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD 23/04/12

  2. 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.

  3. 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

  4. 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).

  5. Introdução (proposta) Generalized Search Tree(GiST)

  6. Índice • Descrição do GiST • Arquitetura e implementação do GiST • Implementation Issues • Concurrency control and Recovery • Performance Measurements • Summary

  7. 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

  8. 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.

  9. 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()

  10. 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

  11. Arquitetura e implementação do GiST A arquitetura é dividada em 3 partes • GiST core(11functions) • AM extension • Data type adapter

  12. Arquitetura e implementação do GiST A arquitetura é dividada em 3 partes • GiST core(11functions) • AM extension • Data type adapter

  13. Arquitetura e implementação do GiST A arquitetura é dividada em 3 partes • GiST core(11functions) • AM extension • Data type adapter

  14. Arquitetura e implementação do GiST • s

  15. 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.

  16. Implementation Issues A implementação da extensão GiST AM inclui controlo de concurrencia e recuperação.

  17. 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.

  18. 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).

  19. 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...

  20. 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%.

More Related