As principais funcionalidades são:
- JSONB: um novo tipo de dados para armazenar JSON. Espere aí... o Postgres já tem um tipo JSON? Sim, mas este novo tipo usa um formato de armazenamento que é performático e ainda vem com suporte a indexação e contém vários operadores e funções;
- Replicação: uma nova API para decodificação e transformação das mudanças ocorridas no banco de dados. Trocando em miúdos, uma API que permite a construção de um plugin para replicação lógica. Espera-se que algumas das soluções de replicação que utilizam comandos passem a adotar essa API por ser mais performática e não precisar de objetos adicionais (ex.: gatilhos). Eu fiz o plugin wal2jon (monta objetos JSON com dados das mudanças realizadas) para demonstrar as funcionalidades da API e também ouvi rumores que o Slony-I passará a utilizar tal API;
- Visão Materializada: o REFRESH não mais bloqueia as leituras;
- ALTER SYSTEM: um novo comando SQL que permite alterar o postgresql.conf. Os desenvolvedores de aplicativos que precisam alterar parâmetros em dezenas, centenas ou mesmo milhares de servidores vão adorar esta facilidade;
- background worker: uma nova API que permite ter processos filho do processo principal. Podemos registrar, iniciar e parar esses processos. Com isso, poderemos escrever um agendador ou alguma rotina de consolidação periódica que trabalha "anexado" ao serviço do postgres.
Algumas melhorias que também merecem destaque são:
- acelerar buscas e redução do tamanho de índices GIN;
- melhorar performance de funções de agregação;
- melhorar escalabilidade de escrita;
- diminuir nível de bloqueio em alguns comandos ALTER TABLE;
- novo parâmetro autovacuum_work_mem para controlar memória utilizada por um processo do autovacuum (antigamente era utilizado o maintenance_work_mem);
- os parâmetros work_mem, maintenance_work_mem e effective_cache_size sofreram aumento em seus valores padrão;
- atrasar replicação (foi uma das funcionalidades que o Fabrizio tirou do forno);
- EXPLAIN ANALYZE apresenta tempo gasto para planejamento da consulta;
- ALTER TABLESPACE ... MOVE move objetos de uma tablespace para outra;
- opção --analyze-in-stages do vacuumdb executa ANALYZE em três estágios com diferentes configurações para produzir estatísticas úteis rapidamente (útil para colocar o banco rapidamente em produção);
- pg_basebackup permite realocar o diretório do pg_xlog;
- pg_basebackup permite controlar a taxa de transferência do cópia física;
- aplicativo pg_prewarm carrega dados de tabelas na cache do postgres (shared buffers);
- pg_stat_statements passa a armazenar consultas em um arquivo reduzindo a limitação do tamanho das consultas e permitindo um número maior de consultas únicas.
A cada versão há inúmeras mudanças internas, portanto, é de fundamental importância que você nos ajude a ter a versão 9.4 (quase) sem bugs. Leia as notas de lançamento para saber das novidades e, principalmente, das incompatibilidades. Faça o download do beta 1 e teste-o no seu ambiente. Reporte os sucessos e os insucessos. Quanto mais erros conseguirmos corrigir durante o beta melhor será a primeira versão da série 9.4. Já existe até pacotes para Debian e derivados disponíveis.
Bons testes!
Bons testes!
No comments:
Post a Comment