Um Tour pela Arquitetura do OpenEdge™ RDBMS Regis Ezipato Senior Consultant Field Services, South America O que é novo: Storage Areas Tipo II Clusterização de Blocos – Diminui a fragmentação de objetos – Melhora a eficiência de I/O Alocação de espaço concorrente – Alocação de espaço na Area – Alocação de espaço para os Objetos Implementação de manipulação de objetos – Table scan sem índices – Rápida deleção de Objetos 2 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Agenda Layout Físico Vantagens Exemplo de uso Sumário 3 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Área Tipo II Clusterização de blocos Clusterização de blocos: 8, 64, ou 512 blocos adjacentes Configurado no arquivo .st Aplicado via prostrct Tamanho fixado por area Unidade de espaço alocado para objetos Blocos em clusters são “não-sociais” 4 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Área Tipo II Objetos Objetos são feitos de um ou mais blocos de clusters (Objetos: tabelas, índices, lobs, controle de área) 5 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Área Tipo II Objetos Clusters encadeados para rápido acesso Permite Table Scan sem índice Permite rápida deleção de tabelas (Objetos: tabelas, índices, LOBS, controle de área) 6 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture O que é diferente com Tipo II Area HWM incrementa um cluster por vez – Mais eficiência na formatação de blocos – Alocação de Espaço concorrente Partições de Banco de Dados – MAX(64, tamanho dos clusters) Outros – Reduz fragmentação e scatter – Permite projeto de ferramentas mais avançadas 7 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Blocos de Objetos (Area Tipo I): Cadeia de alocação de Espaço Somente índices Mixed Object Block Record Free Chain Idxdel Block Idxdel Block Idxdel Block Free Block Free Block Free Block Free Block Mixed Rec Block Mixed Rec Block Mixed Rec Block Mixed Rec Block único Total blocks, HWM 8 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Blocos de Objeto (Area Tipo II): Cadeia de alocação de Espaço Livre Objeto de Controle de Área Area Object Block Free Block Free Block Free Block Free Block Free Cluster List (for Area) Total blocks, Cluster HWM 9 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Bloco de Objeto (Área Type II): Cadeia de alocação de espaço Index Object Block Table 1 Object Block Table 2 Object Block Total blocks, Somente índices Idxdel Block Idxdel Block Idxdel Block Free Block Free Block Free Block Free Block Rec Free Block Rec Free Block Rec Free Block Rec Free Block Rec Free Block Rec Free Block Rec Free Block Rec Free Block únicos Cluster HWM Total blocks, Cluster HWM Total blocks, Cluster HWM 10 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Isto é material importante Índices – Manutenção da cadeia de deleção de índices – Blocos de índices são clusterizados juntos together Áreas Misturadas – Vasto implemento de áreas de múltiplas tabelas ou múltiplos índices – Não terá blocos de índices e dados misturados Reduz fragmentação e scatter – Poucos Dump e Loads! Maior eficiência de I/O 11 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Alocação de espaço de Registros Fator de empacotamento de registros – Registros armazenados com tamanhos variáveis – Alocação de espaço a partir da cadeia de registros de blocos livres – RPF regula o conteúdo da cadeia de registros de blocos livres Definições – Registros por Bloco: (Blocksize / mean rec size) – Create Limit: rec block free space requerido para a – expansão de registros. Também o mínimo tamanho de fragmentação de registros. (75/150) Toss Limit: free space requerido para um bloco de registro para manter um registro na cadeia de blocos livres (150/300) 12 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Alterando RPF Registros por Bloco – Alterado via arquivo .st – Granularidade Valor por área Limites de Create/Toss – _proutil <db> C setTableTossLimit <table> value – Granularidade Valores por área em Storage Area Tipo I Valores por objeto em Storage Area Tipo II 13 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture RPF Sugestões Altere o Create Limit se: – Fragmentação ocorrer devido a alteração de registros em registros recentemente criados – Você espera ver 1 fragmento, mas vê 2 Altere Toss Limit se fragmentação ocorrer devido a alteração de registros de registros existentes – Você espera 1 ou 2 fragmentos, mas tem 3 ou 4 Coordenado com RPB – (Blocksize / mean rec size) Não altere se você não tiver razão para isso 14 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Layout Total Tipo II Area Data (Free & in use) Objeto Area Cluster Free List Control Object #1 Object #2 Object #3 15 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Agenda Layout Físico Vantagens Um exemplo de uso Sumário 16 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Outras vantagens de Storage Areas Tipo II Block level Check sum – Identifica e prioriza blocos corrompidos para alteração de dados – Permitido para altos volumes de I/O no futuro Storage – Rowids armazenados como 64 bits – Cabeçalho de bloco com tamanho variável Informação de Objeto armazenado no cabeçalho de bloco – Permitido para melhorar a manutenção – Melhora a operação de reparação de banco de dados 17 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Vantagens no gerenciamento de Storage Melhorias através da organização Formatação eficiente de blocos – Cluster é o tempo – Pouca escrita de notas de bi/ai Gargalos resolvidos – Alocação de espaço concorrente – Lock otimista de buffer e índices Caminho da migração – Você pode usar ambas Tipo I & Tipo II no mesmo banco de dados 18 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Table scan via B-tree Root Level 1 Level 2 Level 3 (folha) Registros - Folha de entrada contém ponteiro de registros - Cursor mantém info ou última chave acessada 19 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Select * from Customer; - Cursor mantém info do último registro acessado - I/O Sequência através do cluster 3rd Cluster 2nd Cluster 1st Cluster 4th Cluster 20 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Rápida deleção de Objeto Area Data (Free & in use) Objeto Area Cluster Free List Control Object #1 Object #2 Object #3 21 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Rápida deleção de Objetos Area Data (Free & in use) Objeto Area Cluster Free List Control Object #2 Object #3 22 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Rápida deleção de Objeto Area Data (Free & in use) Objeto Area Cluster Free List Control Object #2 Object #3 23 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture OpenEdge 10 Temp tables Iniciado na 10.0b – Rápida Deleção – Rápida Deleção/Criação quando vazia Lançado na 10.0b02 – Permite delete/create – Permite I/O quando formatando Híbrido Storage Areas Tipo I & II – Objetos Índices Tipo I – Outros Objetos Tipo II – 8 Blocos por Clusters Sugestões – “empty temp-table <name>” – -tmpbsize 1, -tmpbsize 8 – Melhor performance com incremento de –Bt 24 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Agenda Layout Físico Vantagens Um exemplo de uso Sumário 25 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Melhores práticas de uso Físico – Inclui divisão (RAID ou faça você mesmo) – Alocação de extents Schema – Separe Dados e índices das tabelas – Áreas de multiplas tabelas para pequenos, médios e grandes registros – Registros por bloco setado para cada área Crescimento – Permite ter um extent com tamanho variável – Habilite large files 26 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Locação, Locação, Locação b /bi/exampleDB.b1 f 1024000 b /bi/exampleDB.b2 f 1024000 b /bi/exampleDB.b3 # d "Schema Area":6,64 /db/exampleDB.d1 # d “Customer Indexes":7,1;8 /db/exampleDB_7.d1 f 512000 d “Customer Indexes":7,1;8 /db/exampleDB_7.d2 # d “Customer Data":8,128;64 /db/exampleDB_8.d1 f 1024000 d “Customer Data":8,128;64 /db/exampleDB_8.d2 27 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Tamanho de Cluster b /bi/exampleDB.b1 f 1024000 b /bi/exampleDB.b2 f 1024000 b /bi/exampleDB.b3 # d "Schema Area":6,64 /db/exampleDB.d1 # d “Customer Indexes":7,1;8 /db/exampleDB_7.d1 f 512000 d “Customer Indexes":7,1;8 /db/exampleDB_7.d2 # d “Customer Data":8,128;64 /db/exampleDB_8.d1 f 1024000 d “Customer Data":8,128;64 /db/exampleDB_8.d2 28 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Registros por Bloco b /bi/exampleDB.b1 f 1024000 b /bi/exampleDB.b2 f 1024000 b /bi/exampleDB.b3 # d "Schema Area":6,64 /db/exampleDB.d1 # d “Customer Indexes":7,1;8 /db/exampleDB_7.d1 f 512000 d “Customer Indexes":7,1;8 /db/exampleDB_7.d2 # d “Customer Data":8,128;64 /db/exampleDB_8.d1 f 1024000 d “Customer Data":8,128;64 /db/exampleDB_8.d2 29 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Áreas de Multi Objetos d “Large Record Indexes":9,1;8 /db/exampleDB_9.d1 f 512000 d "Large Record Indexes":9,1;8 /db/exampleDB_9.d2 # d “Large Record Tables":10,16;64 /db/exampleDB_10.d1 f 1024000 d “Large Record Tables":10,16;64 /db/exampleDB_10.d2 # d “Small Record Indexes":11,1;8 /db/exampleDB_11.d1 f 512000 d “Small Record Indexes":11,1;8 /db/exampleDB_11.d2 # d “Small Record Tables":12,256;64 /db/exampleDB_12.d1 f 1024000 d “Small Record Tables":12,256;64 /db/exampleDB_12.d2 30 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Tamanho do Cluster: Rápido crescimento de tabelas d “Misc Indexes":13,1;64 /db/exampleDB_13.d1 f 512000 d “Misc Indexes":13,1;64 /db/exampleDB_13.d2 # d “Fast Growing Tables":14,64;512 /db/exampleDB_14.d1 f 1024000 d “Fast Growing Tables":14,64;512 /db/exampleDB_14.d2 f 1024000 d “Fast Growing Tables":14,64;512 /db/exampleDB_14.d3 # a /ai/exampleDB.a1 f 51200 a /ai/exampleDB.a2 f 51200 a /ai/exampleDB.a3 f 51200 … 31 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Registros por bloco: Rápido crescimento de tabelas d “Misc Indexes":13,1;64 /db/exampleDB_13.d1 f 512000 d “Misc Indexes":13,1;64 /db/exampleDB_13.d2 # d “Fast Growing Tables":14,64;512 /db/exampleDB_14.d1 f 1024000 d “Fast Growing Tables":14,64;512 /db/exampleDB_14.d2 f 1024000 d “Fast Growing Tables":14,64;512 /db/exampleDB_14.d3 # a /ai/exampleDB.a1 f 51200 a /ai/exampleDB.a2 f 51200 a /ai/exampleDB.a3 f 51200 … 32 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Locação dos Arquivos AI d “Misc Indexes":13,1;64 /db/exampleDB_13.d1 f 512000 d “Misc Indexes":13,1;64 /db/exampleDB_13.d2 # d “Fast Growing Tables":14,64;512 /db/exampleDB_14.d1 f 1024000 d “Fast Growing Tables":14,64;512 /db/exampleDB_14.d2 f 1024000 d “Fast Growing Tables":14,64;512 /db/exampleDB_14.d3 # a /ai/exampleDB.a1 f 51200 a /ai/exampleDB.a2 f 51200 a /ai/exampleDB.a3 f 51200 … 33 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Em Resumo Layout mais eficiente Melhor Performance Caminho de migração Fundação para o futuro 34 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Perguntas? 35 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture Obrigado pelo seu tempo! 36 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture 37 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture OpenEdge 10 RDBMS Advanced Storage Architecture The following Progress courses cover related subject matter. Please visit: www.progress.com/education for course descriptions and relevant curriculum maps. Database Administration 38 © 2005 Progress Software Corporation DB-03: The OpenEdge™ RDBMS Storage Architecture