Cantu - Firebird 3

  • Published on
    23-Jun-2015

  • View
    1.053

  • Download
    6

Embed Size (px)

Transcript

Firebird 3.0O que podemos esperarCarlos H. CantuBaseado nos slides criados por Dmitry Yemanov

www.FirebirdDevelopersDay.com.br

1

2010 nome_palestrante

Relembrando

Idia 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 cdigo

www.FirebirdDevelopersDay.com.br

2

2010 nome_palestrante

Arquiteturas atuais

SuperServer cache compartilhado, multithreaded Classic mltiplos processos (um por conexo), cache individual SuperClassic multi-threaded com cache individual

www.FirebirdDevelopersDay.com.br

3

2010 nome_palestrante

Caches

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

4

2010 nome_palestrante

Prioridades de desenvolvimento

Objetivos principais

Engine multi-threaded 100% compatvel com SMP e multi-core, com cache compartilhado. Arquitetura renovada para as futuras verses.

Objetivos secundrios

Performance e escalabilidade melhoradas Mais recursos de segurana Melhor otimizador de queries Extenso das habilidades de monitoramento Melhorias na SQL5 2010 nome_palestrante

www.FirebirdDevelopersDay.com.br

Cache compartilhado

Com certeza

Cache compartilhado com sincronizao escalvel Suporte para travas entre threads e processos

Se for possvel

Plano 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_palestrante

www.FirebirdDevelopersDay.com.br

Arquitetura

Unificada, mas flexvel

Biblioteca 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_palestrante

www.FirebirdDevelopersDay.com.br

Arquitetura

Processo 1 Thread1 Thread2 Thread3 Cache compartilhado Trava

Processo 2 Thread1 Thread2 Thread3 Cache compartilhado Trava

Processo N Thread1 Thread2 Thread3 Cache compartilhado

Banco de dados

www.FirebirdDevelopersDay.com.br

8

2010 nome_palestrante

ArquiteturaNetwork Server (network listener)

Dispatcher (Y-valve)

Legacy engine provider

V3.0 engine provider

Remote redirector provider

ODS11 database

ODS12 database

Network

www.FirebirdDevelopersDay.com.br

9

2010 nome_palestrante

ODS 12

Estrutura fsica

Flag 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 lgica

Novas tabelas de sistema e monitoramento Metadata armazenada em UTF8 ao invs de UNICODE_FSS10 2010 nome_palestrante

www.FirebirdDevelopersDay.com.br

Segurana

No nvel de rede

Plugins de autenticao (API pblica, plugin customizvel) Criptografia dos dados trafegados

No nvel do banco de dados

Autenticao 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_palestrante

www.FirebirdDevelopersDay.com.br

Otimizao

Geral

Baseada 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)

Estatsticas

Informaes a nvel de tabelas e ndices, histogramas com distribuio dos valores dos campos Refresh total ou parcial, automtico12 2010 nome_palestrante

www.FirebirdDevelopersDay.com.br

Exibio 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 Scan

www.FirebirdDevelopersDay.com.br

13

2010 nome_palestrante

Recursos do SQL

J implementados

Procedures, 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_palestrante

www.FirebirdDevelopersDay.com.br

FIM

Duvidas?

www.FirebirdDevelopersDay.com.br

15

2010 nome_palestrante