quinta-feira, 8 de dezembro de 2016

Informix 12.10.xC8 !!

O release 12.10.xC8 foi liberado, segue abaixo a lista de funcionalidades:


  • Migração
    • Mudanças no servidor que afetam a migração
      Introdução de um novo parâmetro do $ONCONFIG (DISK_ENCRYPYION)
      Introdução de uma nova variável de sessão (USE_SHARDING)
      Introdução de uma nova variável de ambiente (IFX_LO_READONLY)
      Este fixpack força mudanças na estrutura interna. Para voltar atrás será necessário efetuar uma reversão (onmode -b)
  • Administração
    • Ver e re-executar comandos do DBAccess
      O dbaccess tem agora uma opção (-history) que pode ser usada em modo direto (sem menus). Esta opção faz com que os comandos executados sejam numerados, para mais fácil re-execução de um comando anterior (run #). A lista de comandos já executados e o seu respetivo número pode ser obtida com o comando "history"
  • Compatibilidade JSON
    • Operações (INSERT/UPDATE/DELETE) em shards de forma consistente
      Quando trabalhamos com uma sharded collection, e inserimos uma linha que deverá pertencer a outro nó que não aquele a que estamos ligados, o registo deveria ser movido para o destino de forma assíncrona para o servidor correto. Agora, se assim o desejarmos, podemos pedir que a movimentação seja síncrona (two phase commit) e só então nos seja retornado o COMMIT
    • Pesquisa de texto utilizando expressões regulares
      Finalmente introduzimos as funcionalidades dadas pelas expressões regulares no motor. Trata-se de um novo datablade que se auto-regista quando usamos as suas funções pela primeira vez (já existia um bladelet não oficialmente suportado). Funciona no MongoDB API e em SQL normal, com a introdução de uma série de funções como regexp_match(), regexp_split() etc.
    • Melhorias de compatibilidade JSON
      Várias novidades em clientes MongoDB API:
      • Podem utilizar cursores nativos, o que permite maior eficiência em queries para efetuar paginação. Anteriormente o cliente teria de enviar uma query para cada página
      • Os cursores referidos anteriormente têm um timeout para evitar que fiquem abertos mesmo após longos períodos de inatividade dos clientes
      • Nova opção para fechar conexões inativas no listener de JSON
      • Um novo parâmetro do listener (listener.http.headers.size.maximum) permite controlar o tamanho máximo dos cabeçalhos dos pedidos HTTP recebidos
  • Enterprise replication
    • Operações (INSERT/UPDATE/DELETE) em shards de forma consistente
      Como a nota anterior para sharded collections, mas para tabelas tradicionais
    • Listar comandos de Enterprise Replication
      Novo comando "cdr list catalog" permite obter uma lista de comandos CDR necessária para duplicar o ambiente corrente (para testes ou cópia para produção)
  • Desenvolvimento aplicacional
    • Renomear índices gerados pelo sistema
      Um índice gerado automaticamente pelo sistema é um índice criado pelo Informix para suportar uma constraint como chave primária, chave estrangeira, ou unique constraint.
      Se removermos a constraint o índice é automaticamente eliminado. Estes índices distinguem-se dos normais porque o seu nome começa com um " " (espaço).
      Agora temos a possibilidade de renomear estes índices o que tem duas vantagens:
      • Podemos querer standardizar os nomes dos índices
      • Podemos querer remover a constraint mas manter o índice (o que tornará mais rápida a recriação da constraint se for essa a intenção)
    • Utilização de espaço temporário
      Uma das minhas favoritas! Era quase impossível obter a identificação das sessões que estavam a consumir espaço temporário na instância. Recentemente criei um script chamado ixtempuse para contornar essa dificuldade). Agora foi adicionada uma nova coluna (SID) à view da sysmaster chamada sysptnhdr. A coluna será preenchida para objetos temporários como hash tables, sorts, materialização de views etc. Portanto a partir deste fixpack será trivial obter a informação de que sessão(ões) está a consumir espaço temporário.
    • Suspender a validação de check constraints
      Tals como as chaves estrangeiras, agora as check constraints também aceita a cláusula "no validate". Isto é muito importante nos seguintes cenários:
      • Quando importamos dados e sabemos que os mesmos estão corretos
      • O Informix verifica que os dados de uma tabela que está a ser adicionada como fragmento de uma tabela fragmentada/particionada, validam a expressão de fragmentação em uso.
        Isto pode consumir muito tempo e recursos durante a execução da instrução ALTER FRAGMENT ATTACH, dado que força um full scan na tabela que é consumida. Uma solução para isto era criar uma check constraint na tabela que vamos adicionar que correspondesse à expressão de fragmentação. O otimizador tem inteligência para detetar a relação e evitar a verificação (dado que a constraint já o garante). Isto evita o tempo durante o ATTACH, mas implicava gastar os recursos na validação quando se criava a constraint. Ora agora com o "no validate" podemos criar a constraint instantaneamente, e evitar por completo o desperdício de tempo. Claro que a responsabilidade de garantir que os dados carregados estão corretos fica inteiramente a cargo do utilizador.
    • Conformidade com JDBC 4.0
      Finalmente melhoramos a compatibilidade do driver nativo com o standard JDBC. Eu penso que termos drivers nativos e DRDA coloca o Informix numa situação delicada: Por um lado os drivers DRDA estão mais adequados aos vários standards e são mais frequentemente atualizados pois podem ser usados em várias bases de dados da IBM. Mas por outro lado não suportam algumas funcionalidades específicas do Informix e para corrigir isto o standard DRDA teria de ser modificado. Sendo um standard aberto isto não é fácil. Por isso é muito bom ver investimento feito nos drivers nativos.
    • Acesso a smart large objects em modo de leitura apenas
      Uma aplicação pode optar por abrir smart large objects apenas em modo de leitura o que evita a sobrecarga que a gestão de locks traz.
  • Segurança
    • Encriptação de ficheiros de dados
      A partir deste fixpack poderemos usar encriptação de dados transparente ao nível dos dbspaces. Não irei entrar em detalhes muito técnicos, mas esta encriptação é totalmente transparente para as aplicações e utilizadores da base de dados. Destina-se a proteger os dados de administradores de sistema e possíveis cópias ou roubos de disco ou de problemas de privacidade levantados pela descontinuação de uso de discos antigos.
      A forma como funciona é muito simples. Após configurar um novo parâmetro (DISK_ENCRYPTION) com o nome de uma keystore, qualquer dbspace novo será encriptado. Existe uma opção para os criar sem encriptação.
      A encriptação de dbspaces já existentes pode ser alcançada através de backup/restore. Desencriptação de dbsapces já encriptados pode ser obtido da mesma forma.
      Cada dbspace terá a sua própria chave de encriptação. O espaço ocupado não crescerá por via da encriptação. Encriptação de uma tabela ou conjunto de tabelas específico pode ser conseguido pela movimentação das mesmas para um dbspace encriptado
  • Time series
    • Analítica avançada sobre dados timeseries
      Novas funções para analisar dados timeseries, como pesquisa de padrões ou anormalidades, incluindo quantificação de similaridade, distância e correlação entre duas sequências
    • Melhorias em funções de timeseries
      Várias melhorias no que pode ser usado como expressões para as funções CountIF e Apply
  • Embeddability
    • Distribuição "embebida" mais fácil
      O ifxdeploy pode ser usado como non-root e o seu ficheiro de configuração foi descontinuado em favor de parâmetros na linha de comandos, que foram expandidos
Conteudo reproduzido a partir do Blog do Fernando Nunes:

http://informix-technology.blogspot.com.br/2016/12/informix-1210xc8-is-out-informix.html

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.