Firebird 3.0 mais perto do que nunca

Tempo de leitura: 3 minutos

Não é de hoje que se ouve falar sobre a tão sonhada nova versão do Firebird, é bem compreensível toda essa demora que só faz aumentar as expectativas. Estamos falando de um projeto open source mantido por uma fundação sem fins lucrativo que vive essencialmente de doações. Se a cultura do brasileiro fosse diferente o cenário poderia ser diferente.

É inegável que, como uma das maiores comunidade de desenvolvimento Delphi do mundo (senão a maior) e como boa parte das aplicações desktop desenvolvidas em Delphi usam o Firebird como banco de dados, se tivéssemos em nós a cultura de colaborar, financeiramente falando, talvez o tempo entre o anúncio de uma nova versão e o lançamento da mesma fosse menor. Mas demora a parte no último dia 03 a versão RC2 foi disponibilizada.

Sem dúvida alguma esse nova versão promete a começar pelo fato da arquitetura do servidor ser completamente diferente. Quem usa Firebird sabe muito bem que temos que escolher o tipo de servidor que vamos instalar se um Superserver ou Classic (os dois mais utilizados). A diferença entre eles é como o serviço do Firebird se comportará, se um serviço principal com Threads exclusivas por sessão (Superserver) ou se um serviço exclusivo para cada sessão. Até o Firebird 2.5 existia uma binário diferente, ou seja, um exe diferente para cada um dos tipos de servidores.

Receba conteúdos como este

Não perca nenhum conteúdo aqui do blog, faça como milhares de assinantes, receba gratuitamente nossas atualizações!

No Firebird 3.0 o binário do servidor é o mesmo, um único exe, e a forma de trabalho do servidor é definida através de parâmetros no arquivo de configuração firebird.conf que tem por default o valor Super, desta forma: ServerMode = Super. Esta configuração faz com que o servidor trabalhe no formato ThreadedDedicated, isto é, SuperServer. Outro ponto de extrema importância e aumenta a relevância desta nova versão é o suporte melhorado a SMP.

O SMP e o Firebird

SMP é a sigla para Symmetric Multi-Processing, que é um abordagem em sistemas computacionais onde temos vários processadores e memória compartilhada sendo que a orquestração do que é processando fica a cargo do sistema operacional e não de nenhum hardware específico. Atualmente os sistemas operacionais sabem muito bem como tirar proveitos dos vários núcleos de processamento que os processadores atuais possuem, mas é os softwares que rodam sobre esses sistemas operacionais, sabem fazer isso.

Recentemente eu apresentei uma palestra online no CodeRage da Embarcadero onde eu falei sobre as novidades da RTL e entre outras coisas mostrei como é simples em Delphi fazer com que nossas aplicações tirem proveito deste recurso. A versão 3.0 do Firebird promete se aproveitar de cada núcleo de processamento elevar a performance do servidor. Porém é importante citar que mesmo em banco de dados como Oracle e DB2 isso não é uma tarefa fácil, pois gerenciar o multiprocessamento para execução de uma query simples é mais trabalhoso do que executá-la em um único núcleo. Algo muito mais importante do que a melhoria no suporte a SMP é sem dúvida o compartilhamento do cache, mas isso é assunto para outro post.

Além desta mudança de arquitetura foram feitas melhorias na parte de segurança além da implementação de uma série de recursos já presente em grandes SGBDs, entre eles acho importante destacar:

  • Suporte a funções de usuário, as famosas functions;
  • Packages, assim como no Oracle, para organização de nossas procedures e functions
  • Novo tipo Boolean
  • Operador IS
  • Colunas Identity
  • DDL Triggers

Cada uma destas novas features, incluindo a nova arquitetura e principalmente ela, trazem consigo dezenas de novas funcionalidades e modificações como novas connections strings, providers, plugins, módulos externos e muito mais. O que posso garantir é que estamos diante de um novo e completamente reformulado Firebird.

Fique ligado aqui no blog e saiba mais sobre todas as novidades desta nova versão. Eu sou Rodrigo Mourão e pela sua atenção muito obrigado.