Wednesday, October 13, 2010

Panther: The beginning / Panther: O início

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

English version:

Around 2007, after IBM launched the version 11.10 (Cheetah), I wrote a series of articles focusing on several new features. I called it "Chetah spot by spot: ...". I wanted to do the same for Panther, but I have a big problem: What is a Panther? Does it have spots?! Kate Tomchik (IIUG board member), asked about this in Jerry Keesee's (Informix development director) Facebook profile... For me a Panther is a black variant of several animals (leopard, jaguar and possibly a mountain lion or cougar). So, although it may have spots, they're not very visible... So, in short, I don't have a nice title for these articles... it's a shame, but I think we can all live with that :)
So, I took a look at the Panther release notes and looked at the new features... Too many! Too good. Since this is the first article, I'll try to group them (giving some highlights) following my personal view:

  • Embeddability
    This version is the best Informix version ever in terms of ability to embed it into some controlled environment. Some features that contribute to this are: better install, several capabilities for cloning and deploying instances, more autonomic features, improved ability to control it in a programmable way (alarm codes, oninit return codes), storage provisioning etc.
  • Grid
    Imagine you have a large number of instances. And you need to run something in all of them (or a subset). How do you do it? With scripts.... Yes... I've done it... But now you can do it with "grid functionality". You just define the grid nodes (add/delete) and then you connect to the grid, run you SQL, and voilá.... This requires a lot more explanation, but it's that simple.
  • Performance
    As always, a new version is expected to run faster than it's predecessors. This can be done with code improvements and new features. Panther has both. To list a few, it has several Informix XPS features that were ported into Dynamic Server like XPS api (faster tables and indexes access times), Index Skip Scan, Multi Index Scan, improved light scans, push down hash joins (or Star joins), and a few others like Forest of Trees Indexes (FOT), DLL preload, improved name service connection time (NS_CACHE) etc.
  • Warehousing
    Well... I named a few in the performance group. But there are others, like fragment level statistics, more fragmentation schemes (interval, list), online fragment attach/detach for interval fragmentation scheme
  • Security
    This is one of my favorites... Users don't need to be recognized by the OS anymore, trusted context was ported from DB2 (change the authentication inside an already established session - perfect for application servers, and hopefully in the future for 4GL web services), and finally the ability to audit only specific tables (when using the RDRW, INRW, DLRW and UPRW mnemonics). This last one was the Achilles' heel of the Informix auditing facility
  • Others
    It's weird to group such nice features into an "others" category, but I'll do it anyway for simplification: End of extent limit, online table reorg, WebSphere MQ datablade enhancements, OAT enhancements (too match all the relevant new features), DDL support for "CREATE/DROP ... IF [NOT] EXISTS", DDL on secondary nodes, Enterprise Replication without primary key, connection manager improvements, SPL debugging, Optim Development Studio and IBM Mashup Center 2.0 included, etc.
The next article will focus on the installation process. After that I'll proceed with several other features. Don't expect a specific order. I thought about going for the more important features first, but then I realized that there are excellent features in totally different areas. What can be fundamental to some people may as well be nearly useless to others... So, the order will not reflect the feature importance.


Versão Portuguesa:

Em 2007, após a IBM ter lançado a versão 11.10 (Cheetah), eu escrevi uma série de artigos que focavam várias funcionalidades novas. Na altura, só em Inglês, chamei-lhes "Chetah spot by spot: ..." que se poderiam traduzir por "Cheetah, mancha por mancha". Queria fazer algo semelhante para a nova versão com o nome de código "Panther" ou pantera mas deparei-me com um problema: O que é uma pantera? Tem manchas? A Kate Tomchik, perguntou sobre isto no profile do Jerry Keesee (director de desenvolvimento do Informix) no Facebook... Para mim, uma pantera é uma variante negra de vários animais (leopardo, jaguar e possivelmente leão da montanha ou puma). Portanto, embora possa ter manchas serão pouco visíveis.... Em resumo, não tenho um título sonante para estes artigos... é uma pena, mas penso que conseguimos viver sem isso :)

Continuando, dei uma vista de olhos nas release notes do Panther à procura das novas funcionalidades... Muitas e muito boas. Sendo este o primeiro artigo, vou tentar agrupá-las (salientando algumas) seguindo a minha visão pessoal:

  • Embeddability
    Esta é a melhor versão Informix de sempre em termos de capacidade de embeber a base de dados num ambiente controlado. Algumas funcionalidades contribuem para isto: Melhor instalação, várias formas de clonar e "implantar" instâncias, mais funcionalidades autonomicas, melhoria nas possibilidades de controlar as instâncias de forma programática (códigos de alarme, códigos de retorno do oninit), aprovisionamento de espaço etc.
  • Grid
    Imagine que tem um grande número de instâncias. E que necessita executar algo em todas elas (ou numa parte). Como é que o faz? Com scripts... sim... já o fiz... Mas agora pode fazê-lo com a funcionalidade "grid". Só tem de definir os nós do grid (adicionar/remover) e depois conectar-se à grid correr o SQL e voilá.... Isto requer muito mais explicações, mas é assim tão simples...
  • Desempenho
    Como sempre, espera-se que uma nova versão seja mais rápida que as anteriores. Isto pode ser feito com melhorias no código ou novas funcionalidades. O Panther tem ambas. Só para listar algumas, tem várias funcionalidades que foram portadas do Informix XPS para o Dynamic Server como a XPS api (melhores tempos de acesso a tabelas e indíces), Index Skip Scan, Multi Index Scan, melhoria nos light scans, push down hash joins (ou Star Joins) e mais algumas como indíces Forest Of Trees (FOT), pré-carregamento de DLLs, melhores tempos do serviço de nomes (NS_CACHE) etc.
  • Warehousing
    Bom.... Já mencionei algumas no grupo de desempenho. Mas existem outras, como estatisticas ao nível dos fragmentos (ou partições), mais formas de framentação/particionamento (intervalo, lista), attach/detach de fragmentos online para tabelas particionadas por intervalo
  • Segurança
    Este é um dos meus favoritos.... Os utilizadores já não necessitam de ser reconhecidos pelo sistema operativo (note-se que a autenticação já podia ser feita externamente, mas os utilizadores tinham de ter a sua identidade - uid, home dir, group etc. - conhecido pelo SO), trusted context foi portado do DB2 (mudar a autenticação dentro de uma conexão já estabelecida - perfeito para servidores aplicacionais, e esperemos no futuro para os web services em 4GL), e finalmente a possibilidade de auditar tabelas específicas (quando se quer usar as menemónicas RDRW, INRW, DLRW e UPRW). Esta última era o calcanhar de Aquiles do sistema de auditing do Informix
  • Outros
    É estranho agrupar estas funcionalidades tão interessantes numa categoria "Outros" mas faço-o para simplificar: Fim do limite de extents, reorganização (junção de extents) de tabelas online, melhorias no datablade WebSphere MQ, melhorias no Open Admin Tool (para acompanhar as novas funcionalidades do motor), suporte para a sintaxe "CREATE/DROP ... IF [NOT] EXISTS", DDL nos nós secundários, Enterprise Replication sem chave primária, melhorias no connection manager, depuramento de stored procedures SPL, Optim Development Studio e IBM Mashup Center 2.0 incluído etc.

O próximo artigo focará o processo de instalação. Depois prosseguirei com várias outras funcionalidades. Não espere uma ordem específica. Pensei em abordar primeiro as funcionalidades mais importantes, mas depois tomei consciência que há excelentes novidades em áreas completamente distintas. O que pode ser fundamental para um cliente pode ser praticamente inútil para outro. Assim a ordem não reflectirá a importância das funcionalidades

No comments:

Post a Comment