This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português
English Version:
I recently got an advice on how to make better use of Twitter... And so I did... I increased the number of people or accounts I'm following and today I was flooded by messages about the launch of one of the database competitors. If you've been paying attention to the net you probably know which one I'm talking about... I've seen some references before and I decided to investigate a little further what were the new features causing all this buzz around it... I must grant credit to the company behind it, since it was not difficult to get information and find several articles and papers and people talking about it.
I think that in the IT field we tend to close ourselves around what we know better. I've seen it in Oracle DBAs, in people working with Informix (you should know it's much harder to find an Informix DBA than a DBA from any other database since we tend to have several hats and play several roles) and with people working in different environments (z/OS is a classical example). And apparently it also happens with people working with SQL Server. I'd say that only this can explain all this enthusiasm... Let me explain why, by picking two of the flagship features of it's new version (I'll be using the terms I've found on the Internet in blogs, articles and so on):
- AlwaysOn
Believe it or not this is a form of replication that allows databases to be put together in groups that use a primary server and one or more secondary servers. The replication can be synchronous, or asynchronous. The secondary servers can accept read only queries. It includes some sort of connection redirection and something I could not exactly understand that allows temporary statistics to be computed on the secondaries and stored in temporary spaces...
- ColumnStore indexes
This is interesting.... It combines several technologies like in-memory database, columnar storage and star model optimization. This allows incredible time savings, but has some drawbacks, like not being able to update a table with an index of this type (several workaround are mentioned, but all of them have serious implications). It's up to the optimizer to decide if it will use this kind of index or the traditional query plans.
I'm sure that if you're an Informix user, or someone paying attention to the Informix scene, you have a smile on your face by now... And I would not need to explain why. But for the people who are a bit more distracted, or as I mentioned above live on a closed world, let me explain why Informix people have a smile on their faces at this point in the article:
In 2007 (yes, five years ago), IBM introduced version 11.1, code named Chetah, and one of the features was something called MACH-11. This did not cause half the buzz that we're seeing today, but in very short words, it was the ability to configure a set of Informix instances (where we can have several databases) with a primary server, a "close" secondary server, called HDR (which can by synchronous), and several remote secondary servers (RSS) which receive the logs. The communication between these can be encrypted (there are known customer cases using the Internet to ship their logical logs to the other side of the world). Note that the single node HDR existed since version 7 (can't remember the year, because it was before I joined Informix). The HDR was always readable. The RSS are naturally also readable. In 2009 (if memory serves me well, yes, 3 years ago) IBM introduced version 11.5, called Panther where MACH-11 was extended: We can now configure the secondary servers to accept write instructions which are transparently sent to the primary server. A new piece of software was introduced, called the Connection Manager, that can redirect clients based on pre-defined criteria (or SLAs) which are mapped to the several kinds of servers (or to specific server names). Finally, the statistics gathered on the primary are automatically available on the secondary servers, so there is no need to re-calculate them on the secondary servers. All this works in shared nothing architecture which allows for big geographic dispersion and naturally allows for disaster recover... Oh... and it's terribly simple to setup and use, and it's included even in the free product versions (with some restrictions). And I could continue, writing that in 2010 IBM launched version 11.7 which included the concept of flexible grid, ideal for truly distributed systems that need to dhare data.
Last year, (Q1) IBM announced the addition of new technology to the Informix product line, which targeted BI environments with a star schema design that needed very fast response times for analytical queries. This has the name of Informix Warehouse Accelerator, and combines several technologies: in-memory database, columnar storage and full cluster capabilities (for horizontal scaling). It duplicates the data into the accelerator memory and the Informix optimizer redirects the queries that can be accelerated and that would benefit from that acceleration. You can keep using the base tables as usual, you don't have to change the application layer, and you can control through SQL if you want to use the most recent data (stored in the traditional row storage) (slower) or the possibly older data stored in the accelerator (faster). Note that this creates full star (fact tables and dimensions) data duplication for full power acceleration.
So, although as expectable there are a few technical differences that can make us prefer one or the other, the biggest difference between some of these features seems to be the year they were launched... And yes, the buzz generated around them... and that with Informix you have more platform choices. At times like this I tend to agree with people that complain about IBM (they used to complain about Informix) marketing... Maybe, just maybe, IBM should concentrate on marketing instead of product development... That seems to be what others do with apparently good results... But again, if you're an Informix user, I'm sure you prefer the opposite.
Versão Portuguesa:
Recentemente fui aconselhado sobre como tirar mais partido to
Twitter... E assim fiz... Aumentei o número de pessoas ou contas que
sigo, e hoje fui inundado de mensagens sobre o lançamento de um dos
fornecedores de base de dados concorrentes. Se tem prestado atenção à
Internet deve saber a qual me estou a referir... Já tinha visto algumas
referências antes e decidi investigar um pouco mais quais eram as novas
funcionalidades que causavam toda esta movimentação... Tenho de
reconhecer e dar crédito à empresa por detrás do produto, pois não foi
difícil obter informação e encontrar vários artigos,
papers e pessoas a escrever sobre o assunto.
Tenho para mim que as pessoas na área das TIs tendem a fechar-se
sobre aquilo que conhecem melhor. Tenho visto isto em DBAs Oracle, em
pessoas que trabalham com Informix (deverá saber que é muito mais
difícil encontrar um DBA Informix que um DBA de qualquer outra base de
dados, dado que tendemos a usar vários chapéus e desempenhar várias
funções) e também em pessoas que trabalham em diferentes ambientes (o
mundo dos mainframes é um exemplo clássico). E aparentemente isto
também acontece com pessoas que trabalham com SQL Server. Diria que essa
é a única explicação para tamanho entusiasmo... Deixem-me explicar
porquê, pegando em duas das funcionalidades mais badaladas por esses
blogs e twits que se referem a este lançamento (vou usar os termos
originais em Inglês, que encontrei na Internet):
- AlwaysOn
Acredite-se ou não, parece ser uma forma de replicação que permite
colocar várias bases de dados em grupos que usam um servidor principal e
um ou mais servidores secundários. A replicação pode ser síncrona ou
assíncrona. Os servidores secundários podem aceitar queries só de
leitura. Incluí algum tipo de redirecionamento de conexões e algo que
não consegui compreender totalmente mas que permite que sejam calculadas
estatísticas nos nós secundários que são guardadas em espaços
temporários.
- ColumnStore indexes
Isto é interessante... Combina várias tecnologias, como base de dados
em memória, armazenamento em colunas e optimização de modelos em
estrela. Isto permite enormes poupanças de tempo, mas traz algumas
desvantagens, como não permitir alterações (INSERTs, UPDATEs, DELETEs)
em tabelas com este tipo de índices (são apresentadas várias formas de
contornar a limitação, mas todas com sérias implicações). Cabe ao
optimizador decidir se deve usar este tipo de índice ou usar os planos
de execução tradicionais.
Tenho a certeza que se é um utilizador de Informix, ou se tem estado
atento ao mundo Informix, deverá ter um sorriso na cara por esta
altura... E não necessitaria de explicar porquê, podendo encerrar já
aqui este artigo. Mas para as pessoas mais distraídas, ou como disse
acima, para quem viva num mundo mais fechado, vou explicar porque é que
os utilizadores de Informix estarão a sorrir neste momento.
Em 2007 (sim, há cinco anos atrás), a IBM lançou a versão 11.1, com o
nome de código Cheetah, e uma das suas funcionalidades foi o MACH-11.
Isto não causou metade do alarido de hoje, mas em breves palavras, é a
capacidade de configurar um conjunto de instâncias Informix (onde
podemos ter várias bases de dados) com um servidor primário, um servidor
secundário "próximo", chamado HDR (que pode ser síncrono) e vários
servidores secundários remotos (RSS) que recebem os logs. A comunicação
entre os servidores pode ser encriptada (há casos conhecidos de clientes
que usam a Internet para enviar os logical logs para o outro lado do
mundo). Note-se que o nó secundário único (HDR) existia desde a versão 7
(não sei o ano, pois foi antes de entrar na Informix). O HDR sempre
disponibilizou acesso para leitura. Os RSS incluíram desde o início a
capacidade de aceitar queries para leitura. Em 2009 (se a memória não me
falha, sim, há três anos atrás) a IBM introduziu a versão 11.50,
chamada Panther onde o MACH-11 foi melhorado. Podemos agora configurar
os servidores secundários para aceitar instruções de escrita que são
enviadas de forma transparente para o primário. Uma nova peça de
software foi introduzida
com o nome de Connection Manager, que permite redirecionar os clientes
baseado em critérios pré-definidos (ou SLAs) que são mapeados nos vários
tipos de servidores (ou em identificadores específicos de cada
servidor). Finalmente as estatísticas calculadas no servidor primário estão automaticamente
disponíveis nos servidores secundários, por isso não há necessidade de
as re-calcular nos secundários. Tudo isto funcionam numa arquitetura
shared nothing o que permite uma vasta dispersão geográfica e automaticamente disponibiliza
disaster recovery.
Ah... E é terrivelmente fácil de criar e usar, e vem incluído até nas
versões gratuitas do produto (com algumas restrições). E poderia
continuar, dizendo que em 2010 a IBM lançou a versão 11.7 que introduziu
o conceito de
flexibale grid, algo verdadeiramente pensado para ambientes distribuídos mas com necessidade de partilhar dados.
O ano passado (Q1) a IBM anunciou a adição de nova tecnologia á linha
de produtos Informix, cujo alvo foi ambientes de BI com modelos em
estrela que precisem de tempos de resposta muito rápidos em
queries
analíticas. Tem o nome de Informix Warehouse Accelerator e combina
várias tecnologias: base de dados em memória, armazenamento de colunas,
capacidade de trabalhar em
cluster (para crescimento horizontal). Duplica os dados para a memória do acelerador e o optimizador do Informix redirecciona as
queries
que podem ser aceleradas (se daí vier proveito). Podemos continuar a
fazer o uso normal das tabelas de base e não é necessário mexer na camada
aplicacional, e podemos controlar através de SQL se queremos ver os
dados mais recentes (guardados no formato de linha tradicional) (mais lento) ou a
versão possivelmente mais antiga guardada no acelerador (muito mais rápido). Note-se que
isto duplica completamente o modelo em estrela (tabela de factos e as
dimensões) para atingir uma maior performance (toda a query é resolvida
no acelerador).
Portanto, embora como seja expectável, existam algumas diferenças
técnicas que nos façam gostar mais de uma abordagem ou da outra, a maior
diferença entre algumas destas funcionalidades parece residir mais no
ano em que apareceram... E sim, no ruído à volta... e no facto de em
Informix podermos escolher a plataforma. Em alturas como esta
sinto-me tentado a concordar com quem se queixa do marketing da IBM (já
se queixavam da Informix). Talvez, quem sabe, a IBM se devesse
concentrar mais no marketing do que no desenvolvimento dos produtos...
Parece ser o que outros fazem e com aparentes bons resultado... Por
outro lado, se é um utilizador Informix tenho a certeza que prefere o
contrário.