Cantu - Firebird 3

Download Cantu - Firebird 3

Post on 22-Jun-2015

1.051 views

Category:

Documents

6 download

TRANSCRIPT

Firebird 3.0O que podemos esperarCarlos H. CantuBaseado nos slides criados por Dmitry Yemanovwww.FirebirdDevelopersDay.com.br1 2010 nome_palestranteRelembrandoIdia original: FB 3 = Merge do Firebird 2 com o Vulcan O que acabou acontecendo: - Firebird 2.1, 2.5... - Vulcan descartado, usado somente como fonte de idias - No houve merge de cdigowww.FirebirdDevelopersDay.com.br2 2010 nome_palestranteArquiteturas atuaisSuperServer cache compartilhado, multithreaded Classic mltiplos processos (um por conexo), cache individual SuperClassic multi-threaded com cache individualwww.FirebirdDevelopersDay.com.br3 2010 nome_palestranteCachesCache de metadata - Contem informaes sobre a estrutura do banco de dados (tabelas, relacionamentos, constraints, etc.) armazenadas na memria. Cache de pginas Armazena na memria pginas do BD recentemente acessadas.www.FirebirdDevelopersDay.com.br4 2010 nome_palestrantePrioridades de desenvolvimentoObjetivos principaisEngine multi-threaded 100% compatvel com SMP e multi-core, com cache compartilhado. Arquitetura renovada para as futuras verses.Objetivos secundriosPerformance e escalabilidade melhoradas Mais recursos de segurana Melhor otimizador de queries Extenso das habilidades de monitoramento Melhorias na SQL5 2010 nome_palestrantewww.FirebirdDevelopersDay.com.brCache compartilhadoCom certezaCache compartilhado com sincronizao escalvel Suporte para travas entre threads e processosSe for possvelPlano A: cache de metadados compartilhado, cache de comandos compilados compartilhado Plan B: cache de metadados no compartilhado, mas com reduo no uso de memria (liberao das requisies de cache assim que desejvel)6 2010 nome_palestrantewww.FirebirdDevelopersDay.com.brArquiteturaUnificada, mas flexvelBiblioteca da engine suportando uma nica ODS + executvel do servidor (network listener) lendo a biblioteca da engine Acesso exclusivo ou compartilhado aos bancos de dados, configurado por banco atravs do firebird.conf Modelos de execuo disponveis para acesso compartilhado e configurado por servidor atravs de parmetros de linha de comando: Baseado em processos (Classic) Baseado em threads (SuperClassic)Acesso pelo embedded pode tambm ser compartilhado ou exclusivo7 2010 nome_palestrantewww.FirebirdDevelopersDay.com.brArquiteturaProcesso 1 Thread1 Thread2 Thread3 Cache compartilhado TravaProcesso 2 Thread1 Thread2 Thread3 Cache compartilhado TravaProcesso N Thread1 Thread2 Thread3 Cache compartilhadoBanco de dadoswww.FirebirdDevelopersDay.com.br8 2010 nome_palestranteArquiteturaNetwork Server (network listener)Dispatcher (Y-valve)Legacy engine providerV3.0 engine providerRemote redirector providerODS11 databaseODS12 databaseNetworkwww.FirebirdDevelopersDay.com.br9 2010 nome_palestranteODS 12Estrutura fsicaFlag para marcar pginas de dados livres de lixo (melhora a performance do sweep) Inventrio de pginas SCN relationships (melhoria na velocidade do backup incremental) Melhoria na compresso RLE, passando de blocos de 128 bytes para 32K (menos espao ocupado por campos grandes que no estejam totalmente utilizados)Estrutura lgicaNovas tabelas de sistema e monitoramento Metadata armazenada em UTF8 ao invs de UNICODE_FSS10 2010 nome_palestrantewww.FirebirdDevelopersDay.com.brSeguranaNo nvel de redePlugins de autenticao (API pblica, plugin customizvel) Criptografia dos dados trafegadosNo nvel do banco de dadosAutenticao por BD (usurios armazenados no BD) Criptografia de pginas GRANT ROLE TO ROLE Roles implcitos (ex: grupos de usurios) Permisses para operaes de DDL11 2010 nome_palestrantewww.FirebirdDevelopersDay.com.brOtimizaoGeralBaseada em custo, sempre que possvel Joins mais eficazes em streams contendo agregaes, unions e procedures Hash joins, outer merge joins, cached invariant subqueries, etc Exibio avanada dos planos (muito mais detalhada)EstatsticasInformaes a nvel de tabelas e ndices, histogramas com distribuio dos valores dos campos Refresh total ou parcial, automtico12 2010 nome_palestrantewww.FirebirdDevelopersDay.com.brExibio de PLANos avanadaSELECT statement -> First [10] -> Sort [SUM desc, O_ORDERDATE asc] -> Aggregate -> Sort [L_ORDERKEY, O_ORDERDATE, O_SHIPPRIORITY] -> Inner Loop Join -> Filter -> Table [ORDERS] Access By ID -> Bitmap -> Index [ORDERS_ORDERDATE] Range Scan -> Filter -> Table [CUSTOMER] Access By ID -> Bitmap -> Index [CUSTOMER_PK] Unique Scan -> Filter -> Table [LINEITEM] Access By ID -> Bitmap -> Index [LINEITEM_PK] Unique Scanwww.FirebirdDevelopersDay.com.br13 2010 nome_palestranteRecursos do SQLJ implementadosProcedures, funes e triggers externos Funes escalares em PSQL PSQL packages (similar ao Oracle) Triggers DDL Identity columns Funes de janela (Window functions) Cursores bi-direcionais no PSQL Excees parametrizadas definidas pelo usurio14 2010 nome_palestrantewww.FirebirdDevelopersDay.com.brFIMDuvidas?www.FirebirdDevelopersDay.com.br15 2010 nome_palestrante