Ads 468x60px

quarta-feira, 14 de setembro de 2011

Replicação síncrona com o PostgreSQL 9.1

A principal inovação da versão 9.1 do servidor de base de dados livre PostgreSQL é a replicação síncrona. Esse recurso garante que, para cada transação de escrita, o nó-mestre aguarde até que pelo menos um nó-servo tenha escrito os dados no relatório de transações. Esse aumento na confiabilidade tem um custo de maior tempo de resposta dos servidores, mas a replicação pode ser limitada à transações individuais. Antes apenas o superusuário era capaz de executar a replicação, o novo privilégio de replicação pode ser designado para qualquer usuário.

Outra inovação são as "tabelas não-relatáveis" ("unlogged tables"), para as quais o servidor não escreve os dados nos relatórios de transação, transformando-as em uma espécie de espaço de armazenamento rápido. Pela primeira vez, o PostgreSQL 9.1 permite que a ordenação de strings ("collation") seja separadamente determinada individualmente, seja por banco de dados, tabela e coluna. Até agora, essa opção se aplicava à todo o servidor.
Common Table Expressions, integradas ao PostgreSQL há algum tempo, podem agora serem usadas para escrever declarações SQL. A página wiki do projeto fornece um exemplo simples de remoção de todos os registros com os dizeres "hello" de uma tabela e reescrevendo-os em outra tabela.
WITH deleted AS
  (DELETE FROM test_trgm
   WHERE text_data like '%hello%'
   RETURNING text_data)
INSERT INTO old_text_data SELECT * FROM deleted;
Uma lista completa de mudanças está disponível nas notas de lançamento. Como é de costume, o código-fonte e versões executáveis (para FreeBSD, Linux, Mac OS X, Solares e Windows) estão disponíveis na área de downloads do projeto. O código-fonte é disponibilizado sob os termos da licença PostgreSQL, descrita como uma licença de código aberto liberal, similar às licenças BSD e MIT.
Fonte: h-online, em inglês.

0 comentários: