Friday, January 24, 2014

Webcast about Informix documentation / Webcast sobre documentação Informix

This article is written in English and Portuguese (original version here)
Este artigo está escrito em Inglês e Português (versão original aqui)


English Version:

If you regularly visit Informix documentation site (Informix Infocenter) you probably have already noticed that it's been suffering some changes. IBM is holding a webcast on january 28 to explain these changes and future direction for Informix documentation.
I cannot stress enough the importance of the documentation. It's useless to have features if users don't know about them or can't find how to use them. Besides that a good documentation is a good way to save support costs (which is good for the software supplier) but it also a good way to save customer time and improve user experience.

The webcast will count with Jerry Keesee, head of Informix development team, but the main speaker will be Jasna Krmpotic. You probably don't know her name, but let me say she's one of the more responsive persons I've "met" lately. I'm beginning to lost count on how may times I bothered her with documentation or web pages issues and the answer has been always impressive and effective.
So, what I'm saying is that this webcast will be worth it for sure and although it's not about technical issues it's still a very important subject

The link for registering is:
https://events.na.collabserv.com/portal/wippages/register.php?id=5b6b83bb3d&l=en-US



Versão Portuguesa:
Se visita regularmente a documentação Informix (Informix Infocenter) provavelmente já se apercebeu que tem sofrido algumas mudanças. A IBM irá apresentar um webcast no dia 28 de Janeiro para explicar estas mudanças e a estratégia futura para a documentação Informix.
Não consigo enfatizar suficientemente a importância da documentação. É inútil ter funcionalidades nos produtos se os utilizadores não as conhecerem ou não conseguirem encontrar como as usar. Para além disso, uma boa documentação é uma boa forma de baixar custos do suporte (o que é bom para o fornecedor de software), mas também é uma boa forma de poupar tempo aos clientes e melhorar a sua experiência com os produtos.
O webcast irá contar com a presença do Jerry Keesee, director de desenvolvimento do Informix, mas o apresentador principal será a Jasna Krmpotic. Provavelmente não conhecerão o nome, mas permitam-me que diga que é das pessoas mais prontas a ajudar que "conheci" nos últimos tempos. Começo a perder a conta das vezes que a incomodei com questões sobre a documentação ou mesmo páginas web relativas a Informix e a resposta deixou-me sempre impressionado pela eficácia e rapidez.
Portanto, o que estou a dizer é que certamente o webcast valerá a pena, e apesar de não ser sobre assuntos técnicos, ainda assim é sobre um tema bastante importante.
O endereço para registo é:
https://events.na.collabserv.com/portal/wippages/register.php?id=5b6b83bb3d&l=en-US


Informix 11.70.xC8

This article is written in English and Portuguese (original version here)
Este artigo está escrito em Inglês e Português (versão original aqui)

English version:
IBM started 2014 with the launch of another Informix fixpack for version 11.70. This time it's 11.70.xC8 and you can check the list of new features here: http://pic.dhe.ibm.com/infocenter/idshelp/v117/topic/com.ibm.po.doc/new_features.htm
As usual I'll not reprint here the full list, but I'll point out some of the features that I thing are more meaningful:

  • Installation
    • Windows
      • Easier installation of 32-bit programs on Windows 64-bit operating systems
        We used to need to add a component (C:\WINDOWS\SYSWOW64) to the PATH environment variable for installing a 32bit product on a 64 bit OS. Now we just have to install it.
  • Administration
    • Error handling
      • New event alarm for network failures
        Already introduced in 12.10, this will alert you if the listeners cannot start. Be very careful if you see this message because it may indicate you're trying to start an already started instance. And because of the way certain operating systems deal with shared memory, it may really happen... and usually leads to corruption.
    • Back up and restore
      • Optimize backups for data de--duplication
        This version can use an environment variable (IFX_BAR_USE_DEDUP) to change the backup image format so that it better fits the storage manager de-duplication process (when this is supported)
      • Enhanced support for IBM Tivoli Storage Manager features
        Allow the communication between the OnBAR process and the storage manager library to use bigger buffers (they default to 64KB which is very small for today's standards). IBM Tivoli Storage Manager and the new Primary Storage Manager (PSM) support this. If you're working with a different storage manager and you need to turn this off set the IFX_BAR_NO_LONG_BUFFERS variable
      • ON-Bar activity log timestamps
        Better information in the OnBAR log if the process is stalled while calling the external XBSA functions.
    • Configuration
      • Compare onconfig files (UNIX, Linux)
        As previously implemented in 12.10
      • Control the duration and frequency of connection attempts
        This allows us to set INFORMIXCONRETRY and INFORMIXCONTIME as parameters in $ONCONFIG. Usually these would have to be set on (every) client environment.
  • Performance
    • Faster operations
      • In-place alter operations on serial data types
        Some SERIAL (SERIAL, SERIAL8 and BIGSERIAL)  type conversions can now be done using the quick "inplace" algorithm for ALTER TABLE that change one to another
    • Dynamic tuning
      • Dynamic private memory caches for CPU virtual processors
        Another autonomic feature. The engine can change the private virtual CPU caches dynamically to adjust to different work patterns. This can however be prevented by defining the (initial) value followed by ",STATIC" for the VP_MEMORY_CACHE_KB parameter
  • Application development
    • New syntax for queries
      • Joins with lateral references
        Better conformance with the ANSI/SQL standard
    • Foreign-key constraints
      • Temporarily prevent constraint validation during creation
      • Faster creation of foreign-key constraints
    • Basic text searching
      • Enhanced basic text searching
        Some performance and functionality enhancements as usual for BTS datablade
    • New default
      • Defining separators for fractional seconds in datetime values
        The "%F" field for GL_DATETIME and DBTIME environment variables and for the format parameter of to_char() and to_date() no longer includes a dot (.) in the format. This effectively changes the behavior of these functions, but the new default makes more sense
  • High availability
    • Connection Manager
      • Improvements to Connection Manager
        The connection manager now supports two new options for SLA definition. ROUNDROBIN and SECAPPLYBACKLOG for respectively send connections across the defined servers in a round-robin fashion and to avoid sending connections to servers that have backlog in a recent interval
    • Monitoring
      • View log-staging information on RS secondary servers
        This information can now be seen by running:
        onstat -g rss verbose
  • Enterprise Replication 
    • Easier setup
      • Simplified schema changes for replicated tables
        Easier to spread the schema changes across the environment by creating a replicateset of tables that need remastering and then running a single command to remaster that replicateset
    • Configuration
      • Control the replication of large objects
        You can force or avoid the replication of large objects
      • Custom checksum function for consistency checking
        Possibility of creating our own checksum validation functions
  • Security
    • Connectivity
      • Transport Layer Security (TLS) versions 1.0, 1.1 and 1.2 enabled by default
        TLS_VERSION is a new parameter to define the TLS version level for securing connections
So, not a lot of new things, but that's something to expect for a mature fixpack level. The new features will be going mainly to version 12.10. Even so I do like some of these a lot:
  • The foreign key features are a major milestone. Not only because they allow us to speed up data movement processes, but because I think it's the first time Informix R&D allows the user to make mistakes. And I'm not joking.... this is a serious matter. These kind of features is usually requested by customers and feared by technical support. Why? Because a user can make a mistake, cause a formal corruption on theiur database and later complain to technical support.
    So why did they do it? Performance naturally and because this was a real request from a real and important customer. The feature will be great if properly used.
  • I also enjoy seeing the INFORMIXCONTIME and INFORMIXCONRETRY as $ONCONFIG options and it facilitates the DBA's work. The defaults are really high...
  • There is also a goodie not shown in the release notes which I'd like to point out. It's APAR IC91678. It's another improvement on a very well known Informix optimizer issue that we can summarize like this: If you have a table with an "incremental" column of type DATE/DATETIME (like a timestamp of an operation) which is indexed, you'll probably face it. When at time T0 you run statistics, there will be no records with this column > T0. But after some time you'll get (many) records after T0 and the distributions don't reflect this. After some time, the optimizer would tend to choose this index over other ones (like client number, user id, phone number etc.). And most of the times this will be a mistake because at T0 + 1 Month for example there will be a lot of records. The latest 11.70 fixpacks and 12.10 will try to compensate for this errors if the condition on these fields look like "column > N" or "column BETWEEN N - Ta AND N + Tb. This compensation is now refined


Versão Portuguesa:
A IBM iniciou 2014 com o lançamento de mais um fixpack da versão 11.70. Refiro-me ao 11.70.xC8 e pode verificar as novas funcionalidades aqui: http://pic.dhe.ibm.com/infocenter/idshelp/v117/topic/com.ibm.po.doc/new_features.htm
Como habitualmente não irei simplesmente copiar as release notes, mas irei salientar alguns pontos que me parecem mais significativos:
  • Instalação
    • Windows
      • Instalação de versões de 32-bits facilitada em ambientes de 64-bits
        Era necessário em versões anteriores adicionar um componente (C:\WINDOWS\SYSWOW64) à variável de ambiente PATH para instalar uma versão de 32-bits num ambiente de 64-bits em Windows. Este requisito foi removido.
  • Administração
    • Gestão de erros
      • Novo evento/alarme para falhas de rede
        Já tinha sido introduzido na versão 12.10, esta funcionalidade que permite alertá-lo se os listeners não conseguirem arrancar. Recomenda-se muito cuidado caso receba esta mensagem, pois pode indicar que está a tentar levantar uma instância que já se encontra a correr E dada a forma como alguns sistemas operativos lidam com os segmentos de memória partilhada, isto pode realmente acontecer.... e normalmente leva a corrupção
    • Cópias de segurança e restauro
      • Otimização de backups para de-duplicação de dados
        Usando uma nova variável de ambiente (IFX_BAR_USE_DEDUP) o formato dos backups seá alterado para melhor se ajustar aos processos de de-duplicação de daods empregues pelo storage manager (se for suportado)
      • Melhor suporte a funcionalidades do IBM Tivoli Storage Manager
        Permite que a comunicação entre o processo OnBAR e a biblioteca do storage manager utilize buffers maiores (por omissão usam 64KB o que é muito pequeno para os standards de hoje em dia). O IBM Tivoli Storage Manager e o novo Primary Storage Manager (PSM) suportam esta funcionalidade. Se trabalhar com outros storage managers pode definir a variável IFX_BAR_NO_LONG_BUFFERS para desativar isto
      • timestamps nos logs de atividade do OnBAR
        Melhor informação nos logs de atividade do OnBAR quando as chamadas XBSA ao storage manager ficam "presas"
    • Configuração
      • Comparação dos ficheiros ONCONFIG (UNIX, Linux)
        Tal como já implementado na versão 12.10
      • Controlo sobre a duração e repetições das tentativas de conexão
        Os valores para as variáveis de ambiente INFORMIXCONRETRY e INFORMIXCONTIME que até aqui tinham de ser definidas do lado do cleinte podem agora ser especificadas no $ONCONFIG como parâmetros
  • Performance
    • Operações mais rápidas
      • Os tpos de dados "SERIAL" (SERIAL, SERIAL8, BIGSERIAL) permitem que os ALTER TABLE entre eles sejam feitos inplace
    • Auto-otimização
      • Caches privadas dos CPUs VPs alteradas dinamicamente
        Mais uma funcionalidade de ajustamento automático. O motor pode mudar as caches privadas dos CPUs VPs para se adaptar a diferentes padrões de utilização. Caso se queira desativar esta funcionalidade deve configurar-se o valor do parâmetro VP_MEMORY_CACHE_KB com o sufixo ",STATIC"
  • Desenvolvimento aplicacional
    • Nova sintaxe SQL
      • JOINs com referências LATERAL
        Melhorada a conformidade com os standards ANSI/SQL
    • Foreign-key constraints
      • Temporariamente previne a validação de constraints
      • Criação mais rápida das constraints
    • Basic text searching
      • Melhorias no databalade BTS
        Algumas melhorias de performance e funcionalidade no BTS datablade
    • Novo default
      • Definição de separadores para frações de segundo em valores datetime
        O campo "%F" para as variáveis de ambiente GL_DATETIME e DBTIME, e para as funções "to_char()" e "to_date()" deixou de assumir/incluir o ponto (.) na formatação. Isto muda efetivamente o comportamento destas funções, mas o novo default faz mais sentido
  • Alta disponibilidade
    • Connection Manager
      • Melhorias no Connection Manager
        O connection manager passa a suportar duas novas opções para a definição dos SLAs: ROUNDROBIN e SECAPPLYBACKLOG respetivamente para enviar conexões para os diversos servidores num formato round-robin e para evitar enviar conexões para servidores que tenham registado um backlog num intervalo de tempo recente
    • Monitorização
      • Ver informação relativa a log staging nos servidores RSS
        Esta informação passa a estar disponível com o comando:
        onstat -g rss verbose
  • Enterprise Replication
    • Configuração mais fácil
      • Simplificação de modificações de schema em tabelas replicadas
        Fica mais fácil espalhar as modificações de schema no ambiente de replicação através da criação de um replicateset das tabelas que necessitam de remastering e depois executar um único comando para fazer o remastering desse replicateset
    • Configuração
      • Controlo sobre a replicação de large objects
        Pode forçar-se a replicação de large objects mesmo quando estes não são modificados na linha de origem
      • Customização de funções de checksum para validação de consistência
        Podemos agora criar as nossas próprias funções (checksum) para uso durante a validação de consistência entre tabelas replicadas em servidores diferentes
  • Segurança
    • Conectividade
      • Um novo parâmetro (TLS_VERSION) permite definir o nível de TLS (Transport Layer Security) para as ligações. As versões 1.0, 1.1 e 1.2 estão habilitadas por defaulti
Portanto, não há muitas novidades, mas isso seria de esperar de um nível de fixpack já bastante maduro. As novas funcionalidades irão aparecendo maioritariamente na versão 12.10. Apesar disso gostaria de salientar algumas que me agradaram mais:
  • As funcionalidades relativas às foreign keys são um marco importante. Não só porque nos permitem acelerar os processos de migração de dados, mas também porque creio que é a primeira vez que o desenvolvimento do Informix permite ao utilizador cometer erros. E não estou a brincar.... é um assunto sério. Este tipo de funcionalidades é habitualmente requisitado pelos clientes e temido pelo suporte técnico. Porquê? Porque um utilizador pode cometer um erro, causando uma corrupção formal na sua base de dados, e mais tarde queixar-se ao suporte técnico. Sendo assim porque o fizeram? Performance obviamente e porque isto foi um pedido explícito de um cliente, devidamente justificado e explicado. A funcionalidade será ótima se bem usada.
  • Também me agrada a possibilidade de ajustar o INFORMIXCONTIME e INFORMIXCONRETRY no $ONCONFIG, visto que facilita a vida do DBA e que os valores assumidos por default são realmente muito altos
  • Existe também um "bónus", não referido nas release notes mas que eu gostaria de salientar: Trata-se do APAR IC91678. É mais uma melhoria num problema bem conhecido do optimizador fo Informix. Podemos explicar o assunto da seguinte forma: Se tivermos uma tabela com uma coluna "incremental" do tipo DATE/DATETIME (como um timestamp de um evento ou actividade), que esteja indexada, corremos o risco de encontrar este problema. Vamos supor que corremos as estatísticas no momento T0, e tipicamente nessa altura não haverá registos com um valor > T0  nessa coluna. Mas após algum tempo, teremos naturalmente um número crescente de registos nessa condição, e as estatísticas não refletem isto. Após algum tempo, o otimizador tenderá a escolher o índice dessa coluna em vez de outros (como por exemplo número de cliente, número de telefone etc.). E na maioria dos casos isso será um erro, pois apesar de as estatísticas não o dizerem, tenderá a haver um grande número de registos nessas condições. Nos últimos fixpacks da 11.70 e 12.10 já existe uma tentativa de compensar isto se a condição sobre esses campos for do tipo "coluna > N" ou "coluna BETWEEN N -Ta AND N + Tb". Essa tentativa foi agora refinada.

Monday, January 20, 2014

Informix SWAT


This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português

English version:

Long time, no write (as usual), again due to good reasons (I've been busy). But it's a great pleasure to start 2014 posts with a very good information. A new site was born around one week ago, which purpose is to create a human resource database specialized in Informix. The site is called Informix SWAT (Informix Specialized Worldwide Advanced Technicians) and it can be used for announcing technical expertise (just submit your CV) or to find resources if you need to fill a position or just need some temporary resources for a project. The site address is http://www.informix-swat.com/ and the guy behind it is Eric Vercelletto "father" of the http://levillageinformix.blogspot.com site. Eric himself is a long time Informix expert who have worked in Informix France and Portugal.

The site already has a respectable list of people and you just have to register to access the CV database. So, best wishes for this great initiative and I do believe that this kind of actions may be key to address one of the apparent issues that prevent broader Informix adoption: Possible lack of resources.

Versão Portuguesa:

Muito tempo sem escrever (como vem sendo hábito), mas novamente por bons motivos (tenho andado ocupado). Mas é um grande prazer voltar aqui e iniciar os artigos de 2014 com uma muito boa notícia. Nasceu um novo site, cujo objetivo é criar uma base de dados de recursos humanos especializada em Informix. O site chama-se Informix SWAT (Informix Specialized Worldwide Advanced Technicians) e pode ser usado para anunciar conhecimento técnico (basta submeter o CV) ou para encontrar recursos que necessite para preencher vagas ou apenas para um projeto temporário. O endereço do site é http://www.informix-swat.com e a pessoa por trás disto é o Eric Vercelletto, "pai" do http://levillageinformix.blogspot.com . O Eric é ele próprio um especialista de longa data em Informix, tendo já passado pela Informix França e Portugal.

O site já contém uma lista respeitável lista de pessoas e apenas terá de se registar para aceder aos seus CVs. Portanto, os melhores votos para esta iniciativa e acredito sinceramente que este tipo de ações podem ser chave para endereçar um dos aparentes problemas que podem impedir uma adoção mais generalizada do Informix: A possível falta de recursos especializados na tecnologia.

Monday, December 09, 2013

Informix in mobile related searches / Informix em pesquisas relacionadas com mobile

This article is written in English and Portuguese (original version here)
Este artigo está escrito em Inglês e Português (versão original aqui)


English version

In a recently released media statement, job search site Dice.com, made public a list of the top 20 search subjects, that hiring managers and recruiters are searching when they request people with mobile experience. Some of them cause no surprise (Androind and iOS) others may cause some surprise for the ranking where they show up (Blackberry in 4th)... But I'm sure, even in the Informix community, the 10th place is a surprise... Yes... Informix ranks in top 10, and in fact it's the only database that appears on the list.
It's possible to imagine a few reasons for this:

  • Dice.com president, Shravan Goli, suggests Informix (and .NET) may appear because companies are trying to "mobilize" their current infrastructures
  • IBM bet on NoSQL (MongoDB API compatibility) may help on this
  • IBM work porting Informix to ARM platform (in theory we may see Informix on Android in the future) may help also
In any case I feel this is very relevant for a database that accordingly to it's competitors is dead. If we consider the above thee options as possible, it shows it has a past, a present, and more important a future (which other "traditional" RDBMS can claim these two recent enhancements besides Informix?)


Versão Portuguesa

Num recente comunicado de imprensa, o site de empregos Dice.com, tornou pública uma lista de 20 termos, que gestores e recrutadores pesquisam quando procuram perfis de candidatos com experiência em mobile. Alguns desses termos não causam surpresa (Androind e iOS) outros podem causar surpresa pela posição em que aparecem (Blackberry em 4º)... Mas tenho a certeza que, mesmo para a comunidade Informix, o 10º lugar é uma surpresa... Sim... Informix aparece no top 10, e de facto é a única base de dados que aparece na lista.
É possível imaginar algumas razões para isto:
  • O presidente da Dice.com, Shravan Goli, sugere que os termos Informix (e .NET) podem aparecer porque as companhias estão a tentar "mobilizar" as suas infraestruturas atuais (ou seja desenvolver aplicações móveis que integrem com os sistemas existentes)
  • A aposta da IBM  no NoSQL (compatibilidade com a API do MongoDB)
  • O trabalho da IBM em portar o Informix para a plataforma ARM (em teoria podemos ter Informix em Android no futuro)
Em qualquer caso, entendo que isto é muito relevante para uma base de dados que de acordo com a sua concorrência está morta. Se considerar-mos as hipóteses acima como possíveis, mostram que o produto tem um passado, um presente e mais importante, um futuro (que outra RDBMS "tradicional" pode gabar-se dos dois últimos desenvolvimentos para além do Informix?)