Showing posts with label teste. Show all posts
Showing posts with label teste. Show all posts

Thursday, May 12, 2016

PostgreSQL 9.6: estamos quase lá

Hoje foi anunciado o lançamento da primeira versão beta do PostgreSQL 9.6. Versão beta significa que estamos quase lá. O que está faltando? Testes, testes e mais testes. É o momento de corrigir alguns bugs, ajustar a documentação, identificar e corrigir regressões de performance, identificar e corrigir portabilidade (se bem que a BuildFarm tem uma boa cobertura de arquiteturas) e escrever as notas de lançamento definitivas.

O PGDG sempre almeja uma nova versão com uma quantidade mínima de bugs. É por esse motivo que precisamos de testes das funcionalidades novas e também das existentes. O período em beta vai depender da quantidade de correções que forem aparecendo. Não deixem de reportar erros para comunidade.

As principais funcionalidades da versão 9.6 são:

  • buscas sequenciais, junções e agregações em paralelo;
  • suporte a clusters que escalam em leitura utilizando múltiplos servidores secundários síncronos;
  • busca textual por frases;
  • postgres_fdw poderá executar ordenações, junções, UPDATEs e DELETEs no servidor remoto;
  • diminuição do impacto do autovacuum em tabelas grandes.
Algumas melhorias / funcionalidades que também merecem destaque são:
  • informação sobre espera de bloqueios no pg_stat_activity;
  • visão pg_stat_progress_vacuum: progresso do VACUUM;
  • função pg_blocking_pids(): informa PIDs que estão bloqueando um PID específico;
  • no parâmetro wal_level, os valores archive e hot_standby foram substituídos por replica;
  • término de sessões idle in transaction após algum tempo;
  • forçar término de conexões se o postmaster terminar;
  • suporte a múltiplos servidores secundários síncronos (somente um era suportado);
  • ALTER TABLE foo ADD COLUMN IF NOT EXISTS bar integer;
  • redução de bloqueios em ALTER TABLE ao alterar parâmetros do autovacuum e fillfactor;
  • uso do sistema de privilégios para gerenciar acesso a funções do sistema;
  • reservar roles que começam com pg_ (roles do sistema a partir dessa versão);
  • no psql, o comando \crosstabview é útil para resultado de consultas de agregação em duas dimensões (ex. quantidade vendida por filial / mês);
  • no psql, o comando \gexec faz uma consulta e envia o seu resultado como uma nova consulta (útil para consultas que montam consultas);
  • interface genérica para escrita de registros no WAL (suporte a novos métodos de acesso -- CREATE ACCESS METHOD);
  • suporte a mensagens do WAL genéricas para decodificação lógica;
  • módulo bloom: método de acesso baseado no filtro bloom utilizando a nova interface para criação de métodos de acesso.

Como todas as outras versões, as melhorias no PostgreSQL envolvem mudanças de grande quantidade de código. É fundamental a sua participação nesse processo de testes para se certificar que você pode migrar com segurança para 9.6 ou mesmo que aquele novo projeto será beneficiado com alguma funcionalidade nova. Leia as notas de lançamento para saber as novidades mas também as incompatibilidades. Faça o download do beta1 e teste-o. Reporte insucessos e sucessos (se quiser destacar melhorias no seu ambiente). Há pacotes disponíveis para WindowsRed Hat (seus derivados) e Debian (seus derivados).

A qualidade do PostgreSQL depende muito dos testes de seus usuários. Bons testes!

Thursday, July 2, 2015

Anúncio do PostgreSQL 9.5 alfa

O Grupo de Desenvolvimento Global do PostgreSQL anunciou uma versão alfa do PostgreSQL 9.5 hoje. Essa versão contém uma prévia do conjunto de funcionalidades que estarão disponíveis na versão final da 9.5. Vale ressaltar que alguns detalhes podem mudar antes do lançamento da versão final, no entanto, novas funcionalidades não serão adicionadas. Se você quiser preparar o seu sistema para 9.5, essa é a hora de começar a testar. Copie, teste e relate erros que você encontrar.

Algumas das principais funcionalidades disponíveis na versão alfa são:

  • índice BRIN que é um tipo de índice compacto para tabelas muito grandes;
  • melhorias em velocidade de operações de ordenação e hash em memória;
  • gerenciamento automatizado do tamanho do log de transação;
  • INSERT ON CONFLICT UPDATE (também conhecido como UPSERT);
  • operações analíticas com GROUPING SETS, CUBE e ROLLUP;
  • suporte a segurança a nível de registros (RLS);
  • mais funções e operadores para manipulação do tipo JSONB;
  • nova ferramenta pg_rewind e outras melhorias de alta disponibilidade para replicação;
  • múltiplas melhorias no Foreign Data Wrapper, incluindo IMPORT FOREIGN SCHEMA;
  • melhorias de escalabilidade em sistemas com múltiplos cores e grande quantidade de memória.

Essas novas funcionalidades expandem as capacidades do PostgreSQL introduzindo nova sintaxe, APIs e interfaces de gerenciamento. É claro que há inúmeras funcionalidades detalhadas nas notas de lançamento, algumas delas podem ser bem legais para você. Teste todas aquelas que puder.

Como toda nova versão do PostgreSQL, as melhorias incluem uma grande quantidade de código. Nós precisamos de vocês para testar essa versão alfa com as suas cargas e ferramentas de teste no intuito de descobrir bugs e regressões antes que a versão 9.5.0 seja lançada. Além de testar as novas funcionalidades, considere avaliar:

  • As melhorias na ordenação e performance em geral realmente melhoraram a performance na sua aplicação?
  • As mudanças no código fizeram com que o PostgreSQL não funcionasse na sua plataforma?
  • Nós fizemos mudanças no log de transação incluindo compressão. Transferência em caso de falha (failover) e recuperação de desastre ainda funcionam como esperado?
  • As mudanças na precedência de operadores mudaram os resultados nas suas consultas?
  • O RLS funciona corretamente mantendo os seus dados seguros?

Como essa é uma versão alfa, mudanças no comportamento do banco de dados, detalhes de funcionalidades e APIs ainda podem ocorrer. Seus comentários e testes ajudarão a determinar os ajustes finais das novas funcionalidades, assim, teste quando puder. A qualidade do teste dos usuários ajuda a determinar quando faremos a lançamento da nova versão.

A previsão para o lançamento do primeiro beta é agosto/2015, e periodicamente versões beta adicionais serão lançadas até a versão final ainda em 2015. Informações adicionais e sugestões de como testar pode ser obtidas na página Testando Alfa.

A documentação completa e as notas de lançamento da nova versão estão disponíveis. Veja também O Que Há de Novo para detalhes de algumas funcionalidades.

PS> esta é uma tradução livre do anúncio da 9.5 alfa.

Friday, May 16, 2014

Estamos quase lá... 9.4 beta 1

Ontem (15/05) foi anunciado o lançamento da primeira versão beta do PostgreSQL 9.4. Uma versão beta do PostgreSQL é quase a versão final. Ainda falta aparar algumas arestas... Daqui a alguns meses, a porteira se fecha (ou melhor dizendo, se abre). Se você se interessar por algumas das novas funcionalidades, agora é a hora de começar a descobrir as suas potencialidades. Se você já estiver planejando uma mudança de versão, esta é a hora de descobrir o que mudou (e se for o caso, adequar suas aplicações) ou mesmo reportar alguma regressão de performance de alguma consulta.

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!

Monday, May 13, 2013

PostgreSQL 9.3beta1 foi lançado

Hoje foi lançado o primeiro beta1 da versão 9.3. Esta fase de pré-lançamento é muito importante para a comunidade. Com testes de milhares de pessoas (incluindo você), os desenvolvedores podem ter um retorno das novas funcionalidades bem como das modificações que foram feitas. Eventualmente, alguns bugs e/ou regressões de performance serão reportados. Quanto mais testes vocês fizerem mais estável será a primeira versão da série 9.3.

É importante que vocês façam testes dos seus sistemas com a 9.3 para se certificar que nenhuma regressão foi introduzida nessa nova versão. Não se esqueça de testar as novas funcionalidades tais como visões materializadas, funções para manipulação de JSON e pg_dump paralelo para cópia de segurança mais rápida. A lista completa de funcionalidades está disponível nas notas de lançamento.

Se você possui um hardware/sistema operacional diferente daqueles que estão na PostgreSQL BuildFarm, teste a versão 9.3 e reporte isso na pgsql-hackers.

A cópia do código-fonte ou binário pode ser feito na página de downloads ou no repositório de sua distribuição preferida (caso ela já tenha disponibilizado). A documentação completa sobre cada funcionalidade já está disponível.


A partir de agora, não haverá mudanças substanciais (nenhuma funcionalidade nova será introduzida) na versão 9.3 então é seguro começar a desenvolver uma aplicação com as funcionalidades disponíveis.


É claro que ainda não é seguro utilizar esta versão beta1 em produção.

Bons testes!