Saturday, August 20, 2011

10 years of IBM / 10 anos de IBM

This article is written in English and Portuguese

Este artigo está escrito em Inglês e Português



English version



On July 2, 2001, IBM announced the completion of Informix acquisition. So, 10 years have passed since the deal that changed many people lives. A lot was written at the time and since then about the deal, about Informix future, about competitors reactions etc. This historical milestone made me take a look back and think about what's been going on. There are several perspectives about this: The professional, personal, the technical and the marketing ones (and probably more that don't come to mind at this moment). Personally, the acquisition happened three years after I joined Informix Portugal. At the time I was already deeply involved with a Portuguese customer (large Telco) and I believe I gained precious experience since then. Being at IBM I had the opportunity to have some experience with other products (from areas that touch the database area), although the focus was and still is Informix. Informix allowed me to interact with many large (from a small country perspective) companies. So, it was a very positive transition. Of course not everything is perfect. Needless to say that the environment in a small company branch (around 20 people at the time) is by no means similar to the environment of a larger corporation like IBM. The processes inside big corporations are more complex. This is a fact and there's nothing we can do against it.



From a technical perspective, the Informix evolution was incredible. For those of you who know Informix, just think about the releases that came out inside IBM: 9.3 (little to no influence from IBM because it was launched in 2001), 9.4 (2003), 10 (2005), 11.10 (2007), 11.50 (2008) and 11.7 (2010). By the way, from these, only 9.3 has no support at all and 9.4 and 10 are on limited support. There's value for money here, and investment protection. You can compare this to our main competitor for example. They launched 9i R1, 9i R2, 10g R1, 10 R2, 11g R1 and 11g R2. To the best of my knowledge only latest two are fully supported, so more or less the same number of releases and more supported versions for us. Not bad for a database which had no future ten years ago, I'd say.

If I try to recall all the new features I'll end up with another very large article. But some of them must be mentioned:

  • 9.3

    ER in the ORDBMS product line (9.x)

  • 9.4

    Larger chunks

    ER and HDR at the same time

    PAM authentication

    B-Tree scanners (as opposed to older B-Tree cleaner)

  • 10

    Multiple page sizes

    Online index build

    Column encryption

    External directives

    Table level restore

  • 11.10

    MACH 11 (multiple secondary nodes)

    Non blocking checkpoints

    Open Admin Tool

    SQL admin API

    Database scheduler

    Last Committed Read

  • 11.50

    Updatable secondaries

    Compression

    Connection Manager

    Start of XPS to IDS feature porting

  • 11.70

    Storage provisioning

    Non OS users (mapped users)

    No limit for the number of extents

    On line table reorg

    Several XPS features (multi-index path, star join...)

    Informix warehous accelerator





And then we get to the marketing perspective... This is the fun part. It's a never ending discussion, and I thought it would be interesting to make some comparisons, like for example quotes versus reality. Announcements versus reality. Declarations of intentions versus reality. I browsed the Internet trying to find what people said and thought at the time and since then.



Let's start a few years before:



"I think Informix is doing a great job of marketing. They now get the Sybase marketing award. It's something we have never done a very good job of. Talk to somebody at Sybase or Microsoft and ask them what they think of DataBlades. Everyone thinks it's crazy. It's not that it's a bad idea -- it's madness. And they did not -- they did not -- integrate those two products. They did not, they cannot, they will not, it's impossible.", Larry Ellison, at InfoWorld interview, February 1997



Actually, we now "activate" ("register" in Informix jargon) datablades automatically if the user calls a function that belong to one of them. And we ship several of them for free. One of them (TimeSeries) is used to beat competition on "smart metering". Other (BTS) is used to incorporate open source text indexing technology into Informix.

On the same article, Larry Ellison mentions that Informix had 4 products. Although he apparently only names 3 (and 2 seem to be the same), this was in part true. There was the "OLTP" engine, the "DW" (XPS) and the Universal Server (IUS). These days are gone. XPS does still exists, although some of it's functionality is in IDS. There is no distinction between OLTP and "object" or universal servers.



By the time of the acquisition:



"We've found in the past is that when you're acquiring other products, the integration problem is greater than the value you gain from acquiring the product. This will be an integration nightmare.", Paul Marriott, business development manager for 9I at Oracle, in ARNnet site, on April 2001



Was this opinion taken into account when Oracle bought JD Edwards, Peoplesoft, Siebel, Hyperion, Innobase, BEA, Sun....? I believe not. Maybe they just don't learn from their "mistakes", or this quote was just another FUD statement...



"Surely Oracle is going to pick up a few customers from you though -especially the Informix customers?

JK; I don't think you can make that general a statement. Oracle is trying to give the impression that we are going to tell the Informix customers that they've now got to move to DB2. But obviously we aren't doing that. We acquired the Informix assets because we value them. We aren't going to force a migration on customers and partners that isn't right for them - that makes no business sense at all. We've spoken to the Informix customers and partners and have told them that Informix will be supported and developed for the foreseeable future - and the Informix customers are very happy with this. They appear to like the whole proposition so we certainly don't anticipate losing them to Oracle." , Jim Kelly, IBM's Vice President, Marketing Data Management Solutions Division, in an interview to an analyst from Bloor Research, on July 2001

AFAIK, no customer was forced to move to DB2. Some customers were forced to move, because their application suppliers (SAP for example) discontinued Informix in their latest versions. These customers had the chance to choose the new database platform. Some choose DB2, others Oracle, others SQL Server (or other databases like SAPdb)... Similar statements were produced by different IBM executives at the time of the acquisition and later.



And just for fun:



"But quite frankly if Informix is still being marketed as an

independent product five years from now I'll be shocked.", Daniel Morgan, an Oracle ACE in comp.databases.oracle.server on June 2001



Hopefully, five or six years after the predicted date, he has already recovered from the shock.





Let's leave the quotes... I'd also like to give you an example of "declarations of intentions vs reality". While working on a project with another IBM product, I felt the need to test something with a competitor (Oracle) database which is used at the customer site. For my purposes the "free edition" was perfectly enough and it allowed me to work on my own environment. I did the download, but after some days I stopped to think about one detail: The current available version of the "free edition" was 10g (launched 4 or 5 years ago). Now... this version is not fully supported anymore (at least without further costs). So I decided to look for a more recent version. Guess what? It' not available. Some more investigation showed me that a new version was made available in April this year, but only for "beta". Now... What on earth is a "beta" version of a free edition?! After all the product should be the same. Only with certain restrictions.

If you want to compare this with the IBM policy for Informix, you'll noticed that the "free edition" is up to date with the latest available fixpack. Do you notice a different behavior here? I do. And I don't think that's because I work for IBM...





On a more personal perspective, from local market, we see that we haven't been loosing customers. More important our customer are very happy with Informix for the well known reasons (reliability, simplicity, robustness, ease of management). This is not marketing. It's a bit hard to point out a true "pure" Informix DBA and I know the biggest installations in my country. We have Informix in some of the biggest retail chains, in the Telcos, in logistics/transportation, in Finance, in central and local administration and in industrial environments. And all of these barely notice that they run Informix. This is a great achievement, but at the same time I feel it's also a downside. Although this is a paradox, I truly believe that a software that has problems may have better chances of success. Why? Because it makes the people who work with it more "visible" when they solve problems.

As an example, in 2010 I was extensively congatulated when I got involved in a critical situation (caused by a sequence of human errors). The issue was escalated to an high level, and after it was solved the appreciation messages and the echos spread across the hierarchical chain. Now... In a normal situation, no problem should have ocurred, and I would still be completely anonymous from a hierachical point of view.

People who manage Informix tend to do other stuff as well and many times they're a bit "invisible". This is not fair since it also means they're doing their job right, but I've seen this happen several times. You probably know the saying... It's better to have "bad publicitly" than no publicity at all...



Now, let's take a look at what changed in Informix (not the new features) since the acquisition:

  • It gained presence in the IBM events like Information on Demand
  • We have monthly webcasts (chat with the labs)
  • We have PIDs (Post Interim Drops) which are cumulative patch updates This means that I rarely ask for a specific patch since most of the time there's a PID with the fix already available
  • We've been seeing major version releases each 1-2 years (2001,2003,2005,2007,2008,2010). And we've been having new fixpacks each 3 or 4 months which include new features
  • We have InfoCenter with the most up to date documentation in an easily searchable interface
  • We still have the PDF documentation for the people who know their ways around the manuals
  • We have better integration with the IBM product porfolio
  • Informix is used as a repository for some of these products (Cognos express, Optim as an option...)
  • Some new features came directly from other products (DB2 for example). Meaning we get improvements with little engineering effort
  • We have a wider range of editions, including a free one
  • We are still innovators, as the recent TimeSeries success stories show. There are new requirements and we're able to fulfill them
  • Informix is a brand inside the IBM Information Management pillar. Remember that at first we were integrated in the "DB2" pillar. Informix is currently on par with DB2, Cognos, Guardium etc.


... And what didn't change:



  • Informix is still light, easy to install and manage
  • Informix is still robust
  • Informix still scales pretty well
  • Informix support is still good (I'm biased, but I talk a lot with customers that have to deal with other vendors support)
  • Customers still like Informix
  • People still complain about the marketing of the product
  • We don't see Informix in the news
  • IIUG is still a great asset for the Informix community


I believe most people reading this who are aware of Informix history may consider I looked only at the bright side, and there is a dark side. Things that were not accomplished or things that become worst since the acquisition. But keep in mind that it's not totally fair to compare what happened inside IBM with what happened before IBM (specially during the "golden years"). A fair comparison would have to be done between what would have happened if IBM had not buy Informix, and that's impossible to tell. Naturally every Informix supporter can think that it should have more visibility inside IBM (this is a general idea we pick from the forums and independent blogs and sites), or that we're lacking better marketing etc.

From my point of view the balance is positive. And I'm looking forward to the 20th anniversary after IBM acquisition. Let's see what happens in the next ten years. Ten years ago I think many people would not expect the evolution we had.







Versão Portuguesa



No dia 2 de Julho de 2001 a IBM anunciou a conclusão da aquisição da Informix. Portanto, passaram 10 anos desde o negócio que mudou a vida de muitas pessoas. Muito foi escrito na altura e desde então sobre o negócio, sobre o futuro do Informix, sobre as reacções da concorrência etc. Este marco histórico fez-me olhar para trás e pensar sobre o que se tem passado. Há várias perspectivas sobre isto: A pessoal, a profissional, a técnica e a de marketing (bem como outras que não me ocorrem de momento).

Pessoalmente, a aquisição aconteceu três anos depois de ter ingressado na Informix Portugal. Na altura já estava bastante envolvido com um cliente Português (grande empresa de telecomunicações) e penso que ganhei uma experiência preciosa desde então. Pertencer à IBM deu-me oportunidade de me envolver com outros produtos (de outras áreas, mas que tocam o mundo das bases de dados), embora o foco fosse e ainda o seja, o Informix. O Informix permitiu-me interagir com várias grandes (da perpectiva de um país pequeno) empresas. Portanto foi uma transição muito positiva. Naturalmente nem tudo é perfeito. Escusado será dizer que o ambiente de uma filial (cerca de 20 pessoas na altura) de uma pequena companhia mundial, não é de todo semelhante ao ambiente de uma grande companhia como é o caso da IBM. Os processos dentro de grandes empresas têm necessariamente de ser mais complexos. Isto é um facto e ninguém poderá fazer nada contra isso.



Do ponto de vista técnico, a evolução do Informix foi incrível. Para os que conhecem Informix, basta que recordem as versões que sairam já dentro da IBM: 9.3 (pequena ou nenhum influência da IBM dado que foi lançada em 2001), 9.4 (2003), 10 (2005), 11.10 (2007), 11.50 (2008) e 11.7 (2010). Já agora, destas apenas a 9.3 não tem qualquer tipo de suporte e a 9.4 e 10 estão num esquema de suporte limitado (mas sem custos adicionais). Há aqui valor e protecção de investimento. Pode comparar isto com o nosso maior concorrente: Lançaram o 9i R1, 9i R2, 10g R1, 10 R2, 11g R1 and 11g R2. Tanto quanto julgo saber, só os últimos dois são suportados sem mais custos adicionais, por isso, mais ou menos o mesmo número de releases e maior número delas suportadas por nós. Nada mal para uma base de dados que como muitos diziam não tinha futuro há dez anos atrás.



Se enumerasse as novas funcionalidades acabaria com mais um artigo muito grande. Mas pelo menos algumas devem ser referidas:

  • 9.3

    ER na linha de produto ORDBMS (9.x)

  • 9.4

    Chunks maiores que 2GB

    ER e HDR ao mesmo tempo

    Autenticação PAM

    B-Tree scanners (em oposição à anterior B-Tree cleaner)

  • 10

    Diferentes tamanhos de página

    Criação de indíces Online

    Encriptação de colunas

    Directivas externas

    Restore de uma tabela a partir de um arquivo

  • 11.10

    MACH 11 (multiplos nós secundários)

    Checkpoints sem bloqueio

    Open Admin Tool

    SQL admin API

    Database scheduler

    Last Committed Read

  • 11.50

    Secundários com possibilidade de alterações (DML)

    Compressão

    Connection Manager

    Início da transposição de funcionalidades do XPS para o IDS

  • 11.70

    Storage provisioning

    Utilizadores não reconhecidos pelo SO (mapped users)

    Eliminação do limite de extents para uma partição

    Reorganização de tabelas Online

    Várias funcionalidades do XPS (multi-index path, star join...)

    Informix Warehouse Accelerator





E agora temos a perspective de marketing.... Este é o aspecto mais divertido. Trata-se de uma discussão sem fim e lembrei-me que seria interessante fazer algumas comparações, como por exemplo citações versus realidade, anúncios versus realidade e declarações de intenções versus realidade. Efectuei umas pesquisas sobre o que as pessoas disseram na altura e desde então.



Comecemos uns anos antes (tradução pessoal. Pode consultar o original nos links):



"Eu penso que a Informix está a fazer grande trabalho de marketing. Eles agora obtêm o prémio de marketing Sybase. É algo em que nós nunca fizemos um bom trabalho. Fale com alguém na Sybase ou Microsoft e pergunte-lhes o que pensam dos Datablades. Toda a gente lhe dirá que é uma loucura. Não é que seja uma má ideia -- é loucura. E eles não -- eles não -- integraram esses dois produtos. Eles não o fizeram, não o podem fazer, não o irão fazer, é impossível.", Larry Ellison, numa entrevista à InfoWorld, em Fevereiro de 1997



Na verdade, nós actualmente "activamos" ("registamos" em linguagem Informix) datablades automaticamente sempre que um utilizador chama uma função que pertence a um deles. E fornecemos vários gratuitamente. Um deles (TimeSeries) é usado para bater a concorrência em "smart metering". Outro (BTS) é usado para incorporar tecnologia de código fonte aberto de indexação de texto, no Informix.

No mesmo artigo, Larry Ellison menciona que o Informix tinha 4 produtos diferentes. Embora aparentemente só refira 3 (e dois parecem ser o mesmo), isto era em parte verdade. Existia o motor "OLTP", o de "DW" (XPS) e o servidor universal (IUS). Esses dias já terminaram. O XPS ainda existe, embora muitas das funcionalidades já estejam no IDS. Não há distinção entre o produto para OLTP e o que na altura era chamado de servidor universal.



Na altura da aquisição:



"Descobrimos no passado que quando adquirimos outros produtos, o problema da integração é maior que o valor ganho pela aquisição do produto. Isto será um pesadelo de integração", Paul Marriott, gestor de desenvolvimento de negócio para o 9I na Oracle, no site ARNnet, em Abril de 2001



Esta opinião foi tida em conta quando a Oracle comprou a JDEdwards, Peoplesoft, Siebel, Hyperion, Innobase, BEA, Sun....? Calculo que não. Talvez não aprendam com os erros ou esta citação tenha sido apenas mais uma a contribuir para o FUD (fear, uncertainty and doubt)...



"Certamente a Oracle irá conseguir obter algums clientes vossos - especialmente clientes Informix?

JK; Não me parece que se possa generalizar essa afirmação. A Oracle está a tentar dar a impressão que nós iremos dizer aos clientes Informix que agora têm de migrar para DB2. Mas obviamente não faremos isso. Adquirimos os bens da Informix porque os valorizamos. Não iremos forçar uma migração em clientes e parceiros que não seja indicada para eles - Isso não faz qualquer sentido em termos de negócio. Temos falado com clientes e parceiros Informix e temos dito que o Informix será suportado e desenvolvido no futuro previsível - e os clientes Informix estão muito contentes com isto. Parecem gostar de toda a proposição de valor e portanto não antecipamos perdê-los para a Oracle", Jim Kelly, IBM's Vice President, Marketing Data Management Solutions Division, numa entrevista a um analista da Bloor Research, em Julho de 2001

Tanto quanto sei, nenhum cliente foi forçado a migrar para DB2. Alguns clientes foram forçados a migrar porque os seus fornecedores aplicacionais (SAP por exemplo) descontinuaram o suporte para Informix nas suas versões mais recentes. Estes clientes tiveram a possibilidade de escolher a nova plataforma para base de dados. Alguns escolheram DB2, outros Oracle e outros SQL Server (ou outras BDs como SAPdb)...

Afirmações semelhantes foram proferidas por outros executivos da IBM na altura da aquisição e após a mesma.



E apenas por brincadeira:



"Mas muito sinceramente, se o Informix ainda for comercializado como um produto independente, daqui a cinco anos ficarei chocado.", Daniel Morgan, um Oracle ACE no comp.databases.oracle.server em Junho de 2001



Com um pouco de sorte, após cinco ou seis anos depois da data prevista, ele já terá recuperado do choque.



Deixemos as citações... Também gostaria de deixar um exemplo de "declarações de intensões versus realidade". Durante um projecto com outro produto IBM, senti a necessidade de testar algo com uma base de dados da concorrência (Oracle), que é usada no cliente onde decorre o projecto. Para as minhas necessidades, a edição gratuita era perfeitamente suficiente e permitia-me trabalhar mais confortavelmente no meu próprio ambiente. Efectuei o download, mas após alguns dias parei para pensar sobre um detalhe: A versão actualmente disponível da edição gratuita era a 10g (lançada há 4 ou 5 anos). Repare-se... esta versão já nem é totalmente suportada (sem custos adicionais). Por isso decidi procurar a versão mais recente. Adivinhe...? Não está disponível. Alguma investigação mostrou-me que a nova versão foi disponibilizada em Abril deste ano, mas apenas em "beta". Agora... O que diabo é uma versão "beta" de uma edição livre?! Ao fim ao cabo o produto deverá ser o mesmo. Apenas com algumas restrições.

Se compararmos isto com a politica da IBM para o Informix, reparamos que a edição gratuita, está a par com os último fixpack disponibilizado. Nota aqui uma diferença de comportamento? Eu noto e julgo que não é por trabalhar na IBM...



Numa perspectiva mais subjectiva, sobre o mercado local, vemos que não temos perdido clientes. Mais importante, os clientes continuam contentes com o Informix pelas razões bem conhecidas (fiabilidade, simplicidade, robustez e facilidade de gestão). Isto não é marketing. É-me um pouco difícil indicar um verdadeiro e "puro" DBA Informix, e conheço as maiores e mais criticas instalações de Informix no meu País. Temos Informix em grandes cadeias de lojas, nas telecomunicações, em logística e transportes, na área financeira, na administração central e local e na área industrial. E em todos estes sitios mal se apercebem que correm Informix. Isto é um grande feito, mas ao mesmo tempo é um grande problema. Apesar de isto ser um paradoxo, acredito verdadeiramente que um software que cause ou esteja envolvido em problemas tem mais facilidade em ter sucesso. Porquê? Porque faz com que as pessoas que trabalhem com ele se tornem mais "visíveis" quando resolvem problemas. A título de exemplo, em 2010 fui extraordinariamente elogiado pelo envolvimento numa situação complicada (originada por uma sequência de erros humanos). O assunto foi escalado ao mais alto nível e após resolvido surgiram os elogios e os ecos percorreram a cadeia hierarquica. Ora numa situação normal, nada de errado teria acontecido e eu continuaria anónimo para a hierarquia.

Quem gere Informix tende a efectuar uma série de outras tarefas. E tendem a ser "invisíveis". Isto não é justo, pois naturalmente significa que estão a fazer o seu trabalho correctamente, mas já o tenho presenciado inúmeras vezes. Como diz o ditado: "que falem mal, mas que falem"...



Vejamos agora o que mudou (não as novas funcionalidades) desde a aquisição:

  • O Informix ganhou presença nos eventos globais da IBM (como o Information on Demand)
  • Temos webcasts mensais (chat with the labs)
  • Temos PIDs (Post Interim Drops) que são patches cumulativos. Isto significa que raramente peço um patch específico pois na maioria dos casos já existe um PID com a correcção necessária já disponível
  • Temos tido novas versões (major releases) cada 1-2 anos (2001,2003,2005,2007,2008,2010). E temos tido fixpacks cada 3-4 meses, que inclúem novas funcionalidades e não apenas correcções
  • Temos o InfoCenter com a documentação mais actualizada e uma interface que permite a procura fácil de termos
  • Continuamos a ter a documentação em PDF para quem já conhece a sua estrutura e prefere tê-la disponível no computador (ou dispositivo móvel)
  • Temos melhor integração com o portfolio de produtos IBM
  • O Informix é usado como repositório em alguns dos outros produtos IBM (Cognos Express e Optim como opção, ...)
  • Algumas novas funcionalidades vieram directamente de outros produtos (DB2 por exemplo). Isto traduz-se em novas melhorias com pouco esforço de engenharia
  • Temos um leque maior de edições, incluindo uma gratuita
  • Continuamos inovadores, como as recentes histórias de sucesso com o TimeSeries mostram. Existem novos requisitos e somos capazes de os preencher
  • Informix é uma marca dentro do pilar de Information Management da IBM. Recorde-se que de início foi incluído no pilar chamado "DB2". O Informix está actualmente a par do DB2, Cognos, Guardium etc.


... E o que não mudou:



  • Informix ainda é leve, fácil de instalar e gerir
  • Informix ainda é robusto
  • Informix ainda é escalável
  • O suporte Informix ainda é bom (sou suspeito, mas falo muito com clientes que têm de lidar com o suporte de outros vendedores...)
  • Os clientes ainda gostam do Informix
  • As pessoas ainda se queixam do marketing em torno do Informix
  • Continuamos sem ver o Informix nas notícias com frequência
  • O IIUG continua a sem um bem precioso para a comunidade Informix


Acredito que muitas pessoas ao lerem isto, e conhecendo a história do Informix possam considerar que apenas foquei o lado positivo e que existe um lado negro. Pontos que não foram alcançados ou coisas que correm pior desde a aquisição. Mas convém não esquecer que não é totalmente justo comparar o pós aquisição com o pré-aquisição (especialmente durante os "anos dourados"). Uma comparação para ser justa teria de ser feita entre o que se tem passado dentro da IBM com o que se passaria fora da IBM se não tivesse havido a aquisição. Mas isto é pura especulação. Naturalmente todos os apoiantes do Informix pensam que deveria ter mais visibilidade dentro da IBM (ideia recorrente que se percebe nos forums e em blogs e sites externos à IBM), ou que precisamos de mais/melhor marketing. Mas na minha perspectiva o balanço tem sido positivo. E fico expectante pelo 20º aniversário da aquisição. Vamos ver o que acontece nos próximos 10 anos. Há 10 anos atrás penso que muita gente não acreditaria na evolução que o Informix sofreu.



Thursday, June 30, 2011

11.70.xC3 is available / 11.70.xC3 está disponível

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


English version:

My articles backlog keeps increasing, but there are things I can't miss. One of them is the availability of another fixpack of Informix.
The latest one is 11.70.xC3. I spot it on FixCentral a couple of days ago and PDF documentation is already available. InfoCenter is also updated.

As usual there are big news and smaller ones. It really depends on your needs and cares. The follwoing is a straight copy/paste from its release notes:
  • Administration
    • Automatic read-ahead operations
    • Configuring the server response to low memory
    • Reserving memory for critical activities
    • Connection Manager enhancements
    • Enhancements to the OpenAdmin Tool
  • Embeddability
    • Managing message logs in embedded and enterprise environments
  • Developing
    • Built-in SQL compatibility functions for string manipulation and trigonometric support
  • High availability clusters and Enterprise Replication
    • Automatically connecting to a grid
    • Code set conversion for Enterprise Replication
    • Enhancements to the Informix Replication plug-in for OAT
  • Security
    • Non-root installations support shared-memory and stream-pipe connections
    • Retaining numbers for audit log files
    • Restrict operating system properties for mapped users
  • Time Series data
    • Simplified handling of time series data
    • Informix TimeSeries plug-in for OAT
A few remarks:

The possibility of configuring read ahead automatically is great. Let's be honest: How many of us ever really mastered the traditional configuration? Personally I can tell you that a few years ago I tried it in a very controlled environment and I gave up. I could not spot any difference in my tests and over the years I've seen contradictory statements on how it should be setup. So it's a great pleasure to see it can be automatic now.

Server response in a low memory situation is also a great new feature. In cases where I have more than one instance on the same server I insist on setting up SHMTOTAL so that I can isolate any issue caused by excessive memory consumption. This prevents the situation from affecting other instances.
But even so it was usual to see undesirable behaviors on the instance consuming too much memory. And this is easy to understand, because to fix something (rollback, monitor etc.) you still need memory. If you've run out of it, your ability to solve it is constrained.
What IBM did now is give you the ability to reserve some memory, to deal with lack of memory. Seems pretty obvious right? But IBM did more. When you hit the pre-configured thresholds the engine can automatically run some tasks that will allow it to free some memory. So, again, more automation, easier to use in embedded scenarios and more robustness

Connection manager suffered some big changes. Sincerely I need more time to figure them out, but the idea is that a unique connection manager can be used to deal with different needs (high availability, grid, server sets and ER. The configuration file has changed.
As usual, OAT has been changed to accommodate the server side improvements. Several new options are available to deal with log file rotation, low memory conditions setup, lock monitoring (inspired on a plugin initially created by me which is available on the IIUG software repository) and a new plugin to handle TimeSeries.

Several new SQL functions were introduced. This is something that could be solved (most of them could be easily created), but that hurt the new users experience and portability efforts. I would like to see much more in this area...
One interesting new feature is the possibility to configure ER between servers with different codesets. This opens some interesting possibilities for example if you need to convert the codeset of a large database.

Timeseries was also improved, revealing it's one very important aspect of the latests releases.
Finally several security related changes, like improvements for servers in "non-root" installations and for instances configured with mapped users.

I usually concentrate only on the server side improvements, but this time I want to mention a trivial, but long desired change in Client SDK: It now includes dbaccess, the simple but very handy tool. Of course people would like to see a fancy GUI tool on Windows (or even other environments using Java), but that would be much harder, and would certainly increase the footprint.
This is a quick solution for a long lasting problem: the client did not include any query tool. I would vote for the inclusion of other traditional "server side" tools like dbschema and dbload.


Versão Portuguesa

O meu atraso na escrita de artigos continua a aumentar, mas há algumas coisas que não posso deixar passar. Uma delas é a disponibilidade de outro fixpack Informix.
O último é o 11.70.xC3. Encontrei-o há dois dias no site FixCentral e a documentação em PDF já está disponível. O InfoCenter também já está actualizado

Como de costume há grandes novidades e pequenas novidades. Tudo depende das necessidades e preocupações de cada um. O seguinte é a tradução tão fiel quanto possível das novidades especificadas nas notas deste fixpack:

  • Administração
    • Operações automáticas de read-ahead
    • Configuração da reacção do servidor a situações de escassez de memória
    • Reservar memória para actividades criticas
    • Melhorias no Connection Manager
    • Melhorias no OpenAdmin Tool
  • Funcionalidades de inclusão da base de dados em ambientes fechados
    • Gestão de logs de mensagens em ambientes embebidos e empresariais
  • Desenvolvimento
    • Funções SQL de compatibilidade e manipulação de strings e suporte trigonométrico
  • Clusters de alta disponibilidade e Enterprise Replication
    • Conexão automática a uma grid
    • Conversão de mapas de caracteres para Enterprise Replication
    • Melhorias no plugin de replicação Informix para o OAT
  • Segurança
    • Instalações Non-root suportam conexões shared-memory e stream-pipe
    • Retenção de números para os logs de audit
    • Restrição de propriedades de sistema operativo para utilzadores mapeados
  • Dados Time Series
    • Gestão simplificada de dados Time Series
    • Plugin do OAT para Informix TimeSeries


Alguns comentários:

A possibilidade de configurar o read ahead automaticamente parece-me óptima! Sejamos honestos: Quantos de nós conseguiram realmente dominar a configuração tradicional? Pessoalmente posso dizer que há alguns anos atrás tentei num ambiente bastante controlado e desisti. Não consegui identificar diferenças sensíveis nos meus testes, e ao longo dos anos vi indicações contraditórias sobre como isto deveria ser configurado. Por isso é com muita satisfação que vejo que agora pode ser automatizado.

Poder configurar a reacção do servidor em situações de escassez de memória é outra excelente melhoria. Em ambientes onde tenha mais que uma instância por servidor, eu insisto em definir o SHMTOTAL, para que possa isolar qualquer problema causado por excesso de consumo de memória. Isto previne que a situação afecte as outras instâncias (ou no limite a própria máquina). Mas mesmo assim era habitual vermos comportamentos não desejados numa instância que consumisse muita memória. E isto é fácil de entender, porque para corrigir alguma coisa (efectuar um rollback, monitorizar etc.) é necessária memória. Se já a esgotámos, a capacidade de resolver o problema é afectada.
O que a IBM fez agora foi dar-nos a capacidade de reservar alguma memória para lidar com a falta de memória. Parece bastante óbvio, certo? Mas a IBM fez mais. Quando atingimos os limites pré-configurados, o motor pode automaticamente executar algumas tarefas que lhe permitirão libertar memória. Portanto, mais uma vez, mais automatização o que torna mais fácil usar o Informix em ambientes embebidos e aumenta a robustez.

O Connection Manager sofreu grandes alterações. Sinceramente necessito de mais tempo para as analisar, mas a ideia é que um único connection manager pode ser usado para lidar com diferentes necessidades (alta disponibilidade, grid, server sets, e Enterprise Replication). O formato do ficheiro de configuração foi alterado.

Como vem sendo habitual, o Open Admin Tool (OAT) foi alterado para acomodar as melhorias introduzidas no servidor. Novas opções estão disponíveis para lidar com rotação de ficheiros de log, configuração de condições de escassez de memória, monitorização de locks (inspirado num plugin inicialmente criado por mim e disponível no repositório do IIUG) e um novo plugin para lidar com TimeSeries.

Várias novas funções SQL foram introduzidas. Isto é algo que poderia ser resolvido pelo utilizador (a maioria destas podia ser facilmente criada), mas isso dificultava a vida a novos utilizadores e tinha impacto na portabilidade de aplicações. Gostaria de ver muito mais evolução neste aspecto...

Uma funcionalidade interessante é a possibilidade de configurar Enterprise Replication (ER) entre bases de dados que utilizem diferentes mapas de caracteres.
Isto abre possibilidades interessanes se por exemplo necessitar-mos de converter um mapa de caracteres de uma base de dados grande.

O TimeSeries também foi melhorado, revelando que é um dos aspectos mais importantes das últimas versões.
Finalmente, algumas mudanças na área de segurança, como melhorias em servidores instalados como "non-root" e para instâncias configuradas com utilizadores mapeados.

Habitualmente concentro-me apenas nas melhorias do lado do servidor, mas desta vez tenho de mencionar um mudança trivial, mas há muito desejada no Client SDK: Passou a incluir o dbaccess, a ferramenta simples, mas muito útil de interrogação da base de dados. Claro que todos gostaríamos de ver uma ferramenta gráfica nos ambientes Windows (ou mesmo em todos os ambientes, baseado em Java por exemplo), mas a verdade é que isso necessitaria de um esforço muito maior e iria aumentar significativamente a dimensão do cliente.
Isto é uma solução rápida para um problema que existia há muito tempo: o cliente não incluía nenhuma ferramenta de interrogação da base de dados. Eu votaria a favor da inclusão de outras ferramentas "tradicionais" do servidor como o dbschema e dbload.

Tuesday, May 17, 2011

Informix Roadshow 2011 Lisboa (report)

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












English version:

The Lisbon Informix Roadshow 2011 was a success. We got a full room of customers and partners to learn about the latest news in the Informix world.
We had international speakers (Juan Brogeras - SWG Information Management Sales Director SPGI, Steve Shoaf - WW sales Executive - Informix and solidDB, Jose Manuel Ruiz Gallud - Informix Technical Sales - Southwest IOT and Manuel Jorge Sousa - Vice President 4JS for Iberia)

Juan started the sessions with an overview of the Informix business, followed by Steve which explained what Informix Warehouse is and what you can do with it. This was one of the hottest topics.
Manuel proceeded with an excellent overview of 4JS and what the new partnership can bring to customers.
After the break Jose gave us the news on 11.7. By obvious reasons this was another session that raised the assistance interest.
We ended up with a client presentation from PTSI. Eduardo Santana explained us how they migrate all their Informix environments to 11.50. We found out how they did it, what they achieved and what they plan to do next to take advantage of the new features.
I wrapped the session with an overview of the information available on the IBM site about Informix, more specifically the ROI tools, the analyst studies, the documentation, the several editions and the redbooks.
After that we had lunch "outside" which given the weather was a very nice idea. Of course during the break and lunch we had plenty of opportunities to interact with customers and partners and it really made my day receiving the positive feedback about the sessions.

Above you can see Jose Ruiz in action, updating us with all the new benefits of Informix 11.7


Versão Portuguesa:

O Informix Roadshow 2011 de Lisboa foi um sucesso. Tivemos uma sala cheia de clientes e parceiros que desejavam obter as últimas novidades sobre o mundo Informix.

Estre os oradores tivemos alguns com responsabilidades internacionais (Juan Brogeras - SWG Information Management Sales Director SPGI, Steve Shoaf - WW sales Executive - Informix and solidDB, Jose Manuel Ruiz Gallud - Informix Technical Sales - Southwest IOT and Manuel Jorge Sousa - Vice Presidente 4JS para a Iberia)

Juan iniciou as sessões com um apanhado do negócio Informix, seguido pelo Steve que explicou o que é o Informix Warehous Accelerator e o que podemos fazer com ele. Esta foi uma das sessões que mais atenção suscitou.
O Manuel prosseguiu com uma excelente visão da 4JS e o que esta parceria pode trazer aos clientes.
Depois do intervalo o Jose mostrou-nos as novidades da 11.7. Por razões óbvias esta foi outra sessão que despertou mais interesse na assistência.
Terminámos com uma apresentação de um cliente, a PTSI. O Eduardo Santana explicou-nos como é que migraram todos os seus ambientes para a versão 11.50. Descobrimos como o fizeram, o que alcançaram e o que pensam fazer para tirar proveito das novas funcionalidades.
Eu encerrei a sessão com uma descrição da informação disponível no site da IBM sobre Informix, mais especificamente as ferramentas de cálculo de ROI (return on investment), os estudos de analistas, a documentação, as várias edições disponíveis e os redbooks.
Após isso tivemos oportunidade de almoçar "fora", o que dado o bom tempo que se fazia sentir tornou a refeição mais agradável. Naturalmente que durante o intervalo e o almoço tivemos oportunidade de interagir com clientes e parceiros e foi com prazer que recebemos feedback positivo sobre as várias sessões.

Em cima podem ver o Jose Ruiz em acção, actualizando-nos com todos os benefícios do Informix 11.7

Monday, May 9, 2011

IIUG 2011: Last call / Ultima chamada

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

English version:

The 2011 International Informix User Group conference is just around the corner. It will take place in Lenexa, Kansas City between 15 and 18 May. The conference site has all the information you may need. This includes the sessions abstracts, the list of tutorials, hotel and transportation information etc.

And what a great conference this will be. Remember that we have Informix 11.7, Informix Warehouse Accelerator and the Genero partnership with 4Js.
And then you have all the permanent/usual attractions, like deep technical sessions, keynote speakers, the Sunday tutorials etc. Some of my personal favorites this year would be:
  • Sunday tutorials (Flexible grid, Fastest Informix DBA, Partitioning, Certification preparation)
  • Keynote speakers (Jerry Keesee - Director of Informix Database Development, Rob Thomas - Vice President of Business Development, Arvind Krishna - General Manager IBM Information Management) including this year's special with Dr. David Ferrucci the lead researcher and Principal Investigator (PI) for the Watson/Jeopardy! project
    These are great opportunities to understand IBM plans and to ask the difficult questions
  • Several sessions on specific topics like Informix 11.7, Informix Warehouse Accelerator, Performance and Tunning, integrating Informix with other products
  • Free certification opportunity
  • Networking with many people from the Informix community
  • Evening specials... Great fun to trigger networking
As I observed in last year's conference, the IIUG team does everything possible to provide you the best value for money. And they, together with all the people delivering sessions in the conference, really manage to provide great sessions, great tutorials and great entertainment.

If you never had the opportunity to go to one of the IIUG's conferences you really don't know what you're missing. If you had, you know it's worth it. Unfortunately this year I won't be able to join, but I'm eagerly waiting for feedback from the community and to check the presentation materials. To all the lucky attendees I wish you a great conference, and please blog/email about it!

Versão Portuguesa:

A conferência de 2011 do grupo internacional de utilizadores de Informix está quase a acontecer. Terá lugar em Lenexas, Kansas City entre 15 e 18 de Maio. O site da conferência tem toda a informação possível. Isto incluí as sinapses das sessões, a lista de tutorials, informação sobre o hotel e transportes etc.

E tudo indica que esta será uma grande conferência. Lembremo-nos que temos a versão 11.7 do Informix, o Informix Warehouse Accelerator e a parceria Genero com a 4JS.
Para além disso teremos as atracções habituais, como sessões muito técnicas, os oradores especiais, os tutorials de domingo etc. Alguns dos meus favoritos detes ano seriam:

  • Tutorials de domingo (Flexible grid, Fastest Informix DBA, Partitioning, Preparação para certificação)
  • Oradores especiais (Jerry Keesee - Director de Informix Database Development, Rob Thomas - Vice Presidente de desenvolvimento de negócio, Arvind Krishna - General Manager IBM Information Management) incluindo uma participação especial do Dr. David Ferrucci - lead researcher and Principal Investigator (PI) para o projecto Watson/Jeopardy!
    São grandes oportunidades para entender os planos da IBM e para colocar as questões difíceis
  • Várias sessões sobre tópicos específicos como Informix 11.7, Informix Warehouse Accelerator, Performance e optimização, integração de Informix com outros produtos
  • Oportunidade para obter a certificação gratuitamente
  • Convivio com imensas pessoas da comunidade Informix
  • Animação nocturna... Muito divertimento para proporcionar o convivio e interacção entre os participantes
Como pude observar na conferência do ano passado, a equipa do IIUG faz tudo o possível para proporcionar o melhor retorno do investimento. E eles, juntamente com quem apresenta as sessões, conseguem realmente providenciar óptimas sessões, excelentes tutorials e muito entretenimento.

Se nunca teve a oportunidade de participar numa das conferências do IIUG então não sabe o que perde. Se já teve, então sabe que valem a pena. Infelizmente este ano não me vai ser possível participar, mas fico ansioso pelo feedback da comunidade e para espreitar as apresentações quando estiverem disponíveis. A todos os felizardos que vão assistir á conferência, desejo um excelente evento, e por favor bloguem ou contem na lista de mail como está a ser.

Monday, April 4, 2011

New products / Novos produtos

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

English version:

Informix Warehouse Accelerator

There are several news in the Informix area. As I mentioned in the last article, version 11.7.xC2 is already available (including the update on the documentation center), but that's not all. One of the major features of 11.7.xC2 is that it supports a new product called Informix Warehouse Accelerator. This is a separate installable component, that uses a columnar based approach and holds copy of certain groups of tables (datamarts). The data is stored in memory and the queries that can be solved by this system are transparently sent from the main instance. If the data you're querying is not stored/duplicated in the system than the query is solved by the Informix instance. The principle is terribly simple and the installation and configuration is very straight forward. The Accelerator is only available for Linux x86_64 but can work together with Informix on other platforms. The product includes an eclipse based tool to manage the data mapping and configuration of your Informix instance. The product is oriented for data warehouse workloads and was already available for DB2 on z/OS.
The Informix Ultimate Warehouse Edition includes the usual Informix features, the Warehouse Accelerator, compression, LBAC, replications etc.
I've done a few preliminary tests and I can assure you the configuration is very easy. Expect some details in a future article. Meanwhile you can start discovering it at the following URL:

http://www-01.ibm.com/software/data/informix/ultimate-warehouse-edition/

Informix Genero

Informix Genero is another new product targeting the 4GL users. You may recognize the name as a 4JS product. It enables the modernization of 4GL applications (new interface, new functionalities, new deployment environments).

I've seen lots of customers with very customized, flexible and stable applications running with Informix 4GL that complain about the looks (character based) and some lack of functionalities. Nevertheless they don't want to leave 4GL for several reasons:
  • 4GL productivity
  • Programmers mindset (4GL is a procedural language, and moving to object oriented is not always easy)
  • Ease of debug
  • Stability
  • etc.
If you're one of this customers you may want to take a close look at this new IBM offer. Please start here:

http://www-01.ibm.com/software/data/informix/tools/genero.html


Partners conference calls:

If you have interest in these two topics, you can try to check these two partner conference calls:


Versão Portuguesa:



Informix Warehouse Accelerator
Há várias noticias na área de Informix. Como mencionei no último artigo, a versão 11.7.xC2 já está disponível (incluindo a actualização no centro de documentação), mas não é tudo. Uma das funcionalidades da 11.7.xC2 é suportar um novo produto chamado Informix Warehouse Accelerator. Este é um componente instalado separadamente, que usa uma abordagem orientada a colunas e que guarda uma cópia de vários groupos de tabelas (datamarts). Estes dados são guardados em memória e a queries que possam resolver-se no novo sistema serão enviadas transparentementde pelo sistema principal. Se os dados não que estamos a interrogar não existirem neste sistema, então a query é resolvida pelo sistema principal. O princípi é terrivelmente simples bem como a configuração e instalação. O Accelerator só existe para Linux x86_64 (mas pode estar ligado a uma instância Informix noutra plataforma). O produto incluí uma ferramenta baseada no Eclipse que permite a gestão dos mapeamentos de dados e a configuração da instância Informix. O produto é orientado a ambientes de data warehouse e já estava disponível para DB2 em z/OS.
O Informix Ultimate Warehouse Edition incluí as funcionalidades habituais do motor, o Warehouse Accelerator, compressão LBAC, replicação etc.
Já tive oportunidade de fazer alguns testes preliminares e posso assegurar que a configuração é de facto muito fácil. Aguarde mais detalhes num futuro artigo. Entretanto pode começar a descobrir o assunto no seguinte URL:

http://www-01.ibm.com/software/data/informix/ultimate-warehouse-edition/

Informix Genero

O Informix Genero é outro produto cujo alvo são os utilizadores de 4GL. Talvez reconheça o nome como um produto da 4JS. Permite a modernização de aplicações 4GL (novo interface, novas funcionalidades, novos ambinetes de utilização).

Tenho visto muitos clientes com aplicações muito adaptadas, fléxivies e estáveis que sistematicamente se quixam do aspecto (baseado em caracter) e alguma falta de funcionalidades.
No entanto não querem deixar o 4GL por várias razoes.:
  • Produtividade do 4GL
  • Orientação dos programadores(4GL é uma linguagem procedimental e a mudança para programação orientada a objectos nem sempre é fácil)
  • Facilidade de despiste de problemas
  • Estabilidade
  • etc.
Se é um destes clientes, talvez queira dar uma olhadela nestas novas ofertas da IBM: Comec aqui:

http://www-01.ibm.com/software/data/informix/tools/genero.html


Conferências para parceiras;

Se tem interesse em algum destes tópicos pode tentar assistir a estas duas reuniões

Informix Ultimate Warehouse Editions:

Sunday, December 12, 2010

Panther: Name service cache

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

English version:

A recent thread in the IIUG mailing list (relative to a reverse DNS issue) reminded me of a new Panther (version 11.7) functionality that was on my list for articles. I've been avoiding many of the bigger and more important features because they will take a lot of time to write about... I hope this one will be shorter.

Informix needs to read several files or interact with DNS servers each time you try to open a connection. Considering Unix and Linux (Windows is a bit different technically, but not that much conceptually), these are some of the actions the engine must do:
  1. Depending on your host resolution criteria it will probably open the /etc/hosts file to search for your client's IP address. If it's not there it will contact your DNS server in order to request the name associated with the IP address.
    Note that all this is done by a system call.
  2. It will access /etc/passwd (or equivalent) to get your user details (HOME dir, password - this is probably stored in another file like /etc/shadow - , user id, group id etc.)
The engine must also access /etc/services and /etc/group in other situations.
Depending on your environment these activities can take a bit of time, and require some significant CPU usage. There are systems with high number of connections per second which can naturally transform this into a significant issue.
To give you an example I do regular work on a system that used to receive a very large number of requests from CGI programs. So, each request received by HTTP required a new process on the application server, and a new connection on the database server. They had peaks of tens of requests per second. Currently they're using Fast CGI with noticeable improvements.
Anyway, IBM decided to give us the chance to optimize this by caching previous results (file searches and DNS requests). This is done with the new parameter called NS_CACHE (from Name Service Cache). The format of this $ONCONFIG parameter is:

host=num_secs,services=num_secs,user=num_secs,group=num_secs

Each comma separated pair (functionality=num_secs) configures the number of seconds that the engine will cache a query result for that functionality. I'm calling it functionality, because it can be implemented through files or system APIs. The documentation could be clearer, but let's check each one:
  • host
    This is the host and IP address resolution service. Depending on your system configuration (on most Unixes and Linux this is specified in /etc/nsswitch.conf) it can be resolved by reading the /etc/hosts file and/or making a request to your DNS servers
  • service
    This should be the map between service names and system ports, usually done by reading /etc/services. The only situation that comes to my mind where this is used is when you're trying to start a listener (either during engine startup or after that with onmode -P) or when you're trying to make a distributed query to another engine, and you use names in your INFORMIXSQLHOSTS instead of port numbers. In any case, I may be missing something...
  • user
    This is very important. It refers to all the user related info that Informix gathers from the OS and that is relevant to Informix. The information can be stored in /etc/passwd, /etc/shadow, or indirectly be managed by external services like LDAP. It can include:
    - Home dir
    - User ID
    - Group ID
    - Password
    - User status (enable or disable
  • group
    This relates to the OS group information. Usually done by reading /etc/group
If the specified number of seconds to cache the information is zero, it means that we don't want to cache it. So the behavior will be the old engine behavior (for each relevant request, the information must be obtained).
The parameter can be changed online with onmode -wm

It's important that you fully understand the implications of caching these kind of information. By asking Informix to cache this info, we're also assuming the risk of working with stale information. Let's imagine a simple scenario. Assume this sequence of events:
  1. At time T0 you connect using user and password to the engine which is setup to cache user information for 600s (10 minutes).
  2. At time T1 you change that user password
  3. At time T2, the same user tries to connect to the Informix database with the new password. It will fail!
  4. At time T3 (T0 + the number of seconds to cache user information) the user repeats the connection attempt with the new password. It will succeed!
How can you avoid situation 3? If you change the cache timeout to 0, it will work as a flush.
If for example you do some changes to your user's information you can run:


onmode -wm NS_CACHE="host=900,service=900,user=0,group=900"
onmode -wm NS_CACHE="host=900,service=900,user=900,group=900"


These commands will flush the user information cache, and then reactivate it.

So, the point I'd like to make is that this feature can help you improve performance (specially for systems with an high connection rate), but it can have some side effects. You can workaround these ones, but for that you must know they exist.


Versão Portuguesa:

Uma discussão recente na lista de correio do IIUG (relativa a um problema com reverse DNS) lembrou-me de uma funcionalidade nova do Panther (versão 11.7) que estava na minha lista de temas a abordar. Tenho andando a evitar muitas das maiores e mais importantes novidades porque vou demorar bastante tempo a escrever sobre elas.... Espero que esta seja mais reduzida.

O Informix tem de ler diversos ficheiros ou interagir com servidores de nomes (DNS) cada vez que abre uma conexão. Considerando o Unix e Linux (em Windows será um pouco diferente tecnicamente, mas não muito conceptualmente), estas são as acções que o motor tem de fazer durante o estabelecimento de uma conexão:

  1. Dependendo do critério usado para resolver endereços e nomes, provavelmente irá abrir o ficheiro /etc/hosts para procurar o IP da conexão. Se não o encontrar irá provavelmente contactar o servidor de nomes (DNS) e pedir o nome associado ao IP de onde chega a conexão.
    Note-se que isto é feito com uma chamada de sistema e não cabe ao Informix definir os critérios.
  2. Irá aceder ao /etc/passwd (ou equivalente) para obter os dados do utilizador (HOME dir, password - isto deve estar guardado noutro ficheiros como o /etc/shadow- , id de utilizador, id de grupo etc.)
O motor também tem de aceder ao /etc/services e /etc/group noutras situações.
Dependendo do seu ambiente estas operações podem demorar um pouco e requerer um consumo de CPU relevante. Existem sistemas com muitas conexões novas por segundo o que naturalmente pode transformar isto num problema sério.
Para dar um exemplo, trabalho regularmente com um sistema que em dada altura recebia um enorme número de pedidos por CGI. Sendo CGI, cada pedido recebido via HTTP requeria um novo processo na máquina do servidor aplicacional, e uma nova conexão na base de dados. Tinham picos de dezenas de ligações por segundo. Actualmente estão a usar Fast CGIs com benefício notórios.
De qualquer forma a IBM decidiu dar aos utilizadores a oportunidade de optimizarem estes aspectos, através de uma cache que guarda respostas anteriores (pesquisas em ficheiros e resultados de DNS). Isto é feito com um novo parâmetro designado NS_CACHE (de Name Service Cache). O formato do parâmtro do $ONCONFIG é:

host=num_segs,services=num_segs,user=num_segs,group=num_segs

Cada par (funcionalidade=num_segs) separado por vírgula, configura o número de segundos durante os quais o motor irá manter em cache o resultado de uma pesquisa para essa funcionalidade. Estou a chamar-lhe "funcionalidade", porque pode ser implementada usando ficheiros ou APIs de sistema. A documentação deveria ser mais clara, mas vamos ver cada uma:
  • host
    O serviço de resolução de nomes e endereços IP. Conforme a configuração do seu sistema (na maioria dos Unixes e Linux isto é definido em /etc/nsswitch.conf) pode ser resolvido pelo ficheiro /etc/hosts ou fazendo um pedido aos servidores de DNS
  • service
    Este é o mapeamento entre o nome de serviços e as portas de sistema, habitualmente feito através da leitura do ficheiro /etc/services. As únicas situações que me ocorrem em que isto é usado é quando arrancamos com um listener (seja no arranque do motor ou depois quando se usa o onmode -P), ou quando tentamos executar uma query distríbuida a outro motor, e usamos nomes no nosso INFORMIXSQLHOSTS em vez de números de portos. Mas pode estar a escapar-me alguma coisa, e haver outras...
  • user
    Este é muito importante. Refere-se a toda a informação relativa aos utilizadores que o Informix obtém do sistema operativo e que é relevante para o Informix. A informação é guardada no /etc/passwd e /etc/shadow, ou gerida indirectamente em serviços externos como LDAP. Pode incluir:
    - Home dir
    - ID de utilizador
    - ID de grupo
    - Palavra passe
    - Estado do utilizador (activo, inactivo)
  • group
    Isto diz respeito à informação de grupos do sistema operativo. Normalmente feito por consulta ao ficheiro /etc/group

Se o número de segundos especificado para a cache for zero, significa que não queremos fazer caching. Portanto o comportamento será o antigo do motor (para cada pedido a informação tem de ser obtida).

O parâmetro pode ser modificado online com o comando onmode -wm

É importante que entenda completamente todas as implicações de fazer caching deste tipo de informação. Ao pedir ao Informix que guarde e reutilize a informação já obtida, estamos também a assumir o risco de trabalhar com informação entretanto desactualizada. Vamos imaginar um cenário simples. Consideremos a seguinte sequência de eventos:

  1. No momento T0 conectamo-nos usando um utilizador e palavra chave a um motor configurado para efectuar caching por 600 segundos (10 minutos).
  2. No momento T1 mudamos a palavra chave desse mesmo utilizador.
  3. No momento T2 o mesmo utilizador tenta conectar-se ao Informix usando a nova palavra chave. Vai falhar!
  4. No momento T3 (T0+ o número de segundos configurado para a cache de utilizador) o utilizador repete a tentativa de acesso com a nova palavra chave. Vai ter sucesso!
Como pode evitar a situação do ponto 3? Se mudar o tempo de cache para 0, funciona como uma limpeza da cache.
Se por exemplo efectuar mudanças na informação dos utilizadores, pode executar:


onmode -wm NS_CACHE="host=900,service=900,user=0,group=900"
onmode -wm NS_CACHE="host=900,service=900,user=900,group=900"


Estes comandos fazem a limpeza da informação e depois re-activam a cache.

Portanto, o ponto que gostaria de frisar é que esta funcionalidade pode melhorar o desempenho (especialmente em sistemas com elevada frequência de novas conexões), mas também pode ter efeitos secundários. Estes podem ser contornados, mas para isso temos de saber que existem.

Wednesday, November 10, 2010

Quiz game / Adivinha

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

English version:

If you have 15m I'd like to propose you a quiz game. Go to this webpage:

http://www-01.ibm.com/software/data/informix/library.html

scroll down to the white papers section and open the one titled "Smart Systems Require an Embedded Database: Six Criteria to Consider"
It's a joint IBM and Cisco whitepaper that talks about the characteristics a database should have to be used as an embeddable database. The characteristics are analyzed through six criteria: installation, integration, performance, resource management, administration and availability.
If you know what have been introduced in Informix in the latest releases you'll find this quite amusing. So what's the quiz? Try to find out what database the paper is talking about. I don't need to tell you the answer, mainly because you'll surely find out by yourself, but also because the answer is discreetly given at the end of the paper...
It's public that some Cisco equipments include Informix (Cisco support forums support this claim). I personally believe this is enough proof that Informix is an excellent product if you need to embed a database in your solution (whether it is software only or software and hardware). If you take some time to check the latest versions new features you'll find lots of improvements for this type of use.



Versão Portuguesa:

Se tiver 15m livres gostava de lhe propor um jogo de adivinha. Vá até esta página:

http://www-01.ibm.com/software/data/informix/library.html

desça até à secção dos white papers e abra o intitulado "Smart Systems Require an Embedded Database: Six Criteria to Consider" (apenas em Inglês)
É um documento conjunto entre a IBM e a Cisco que fala sobre as características que uma base de dados deve ter para ser usada como uma base de dados embebida. As características são analisadas segundo seis critérios: instalação, integração, desempenho, gestão de recursos, administração e disponibilidade.
Se sabe o que tem sido introduzido no Informix nas últimas versões, vai achar este documento divertido. Portanto qual é a adivinha? Tente descobrir qual é a base de dados falada no documento. Não necessito de lhe dar a resposta aqui, principalmente porque conseguirá perceber a resposta sozinho, mas também porque a resposta é dada de forma muito discreta no final do documento...
É público que alguns equipamentos Cisco incluem Informix (os fóruns de suporte da Cisco sustentam esta afirmação). Pessoalmente acredito que isto é prova suficiente de que o Informix é um excelente produto se necessita de embeber uma base de dados na sua solução (seja apenas de software ou software e hardware).
Se tirar algum tempo para verificar as novas funcionalidades das últimas versões encontrará imensas melhorias para este tipo de utilização.