Informix

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Informix
Image illustrative de l'article Informix
Logo

Développeur IBM
Environnements Multiplate-forme
Site web Informix

Informix est une combinaison de base de données relationnelle et de base de données orientée objet. En 2001, cette société a été achetée par IBM. Son nom complet est aujourd'hui IBM Informix Dynamic Server.

Historique[modifier | modifier le code]

Au commencement...[modifier | modifier le code]

Au commencement étaient Laura King et Roger Sippl qui ont fondé la société RDS (Relational Database Systems), où ils ont développé la technologie ISAM (gestion des accès en séquentiel indexé). Avec l'émergence des bases de données relationnelles, ils ont utilisé cette technique pour créer Informix, un ensemble fonctionnant sur plateforme Unix qui comportait un générateur d'états (ace), un générateur d'écrans interactifs (perform) et le langage de programmation Informer.

Le produit a terminé son cycle avec la version 3.30 vers 1985. C'est alors qu'ils ont parié sur l'avènement du langage à cette époque plutôt confidentiel: SQL.

Avènement de Informix-SQL et Informix-4GL[modifier | modifier le code]

En séparant la couche interface de la couche d'accès aux données, ils ont créé Informix-SQL 1.10 qui incluait ace, perform et l'accès aux bases de données (isql) . Plus tard est né Informix-4GL 1.00, véritable langage de 4e génération basé sur le langage C, qui a été durant très longtemps le langage de programmation le plus utilisé après le C, toutes plateformes Unix confondues. Parallèlement, C-ISAM, la couche d'accès aux données, devenait un produit à part entière, devenait un produit très largement diffusé, notamment intégré dans le noyau unix. De nombreuses applications fonctionnent encore sur C-ISAM, technologie très efficace et robuste.

On passe à la mémoire partagée, aux processus démons et aux raw-devices[modifier | modifier le code]

Entretemps, la compagnie RDS est devenue Informix Software, alors que le laboratoire développait Informix-Turbo. En reprenant la base de C-ISAM pour l'appliquer cette fois-ci sur des raw-devices Unix, le serveur changeait radicalement d'architecture en adoptant des processus serveur continus et spécialisés (daemons) et l'utilisation de la mémoire partagée. En séparant les tâches de lecture et l'écriture des données et en les remontant en mémoire partagée, elles deviennent accessibles centralement à tous les utilisateurs, avec pour effet de réduire très sensiblement les entrées-sorties disque.

V4 : le split moteur / interface[modifier | modifier le code]

En 1990, les produits alors "bundleisés" ( base de données + interface ), deviennent des produits indépendants. Nait alors la version 4.0, qui offre Informix-SE ("moteur" basé sur C-ISAM), Informix-OnLine (moteur basé sur RSAM issu de Turbo), Informix-SQL, Informix-4GL et Informix-ESQL/C.

V5 : 2-phase commit, contraintes, triggers[modifier | modifier le code]

En 1992 sort la version 5.0, introduisant le support de transactions distribuées (2-phase commit), les procédures stockées, les contraintes d'intégrité référentielles et de vérifications, et un peu plus tard les déclencheurs(triggers). Le SET EXPLAIN, commande SQL permettant d'analyser le plan d'exécution d'une requête SQL, a été implémenté vers cette époque.

V6 : on refait le même produit, mais en architecture parallèle[modifier | modifier le code]

Durant ce temps, le laboratoire, sous l'impulsion de Mike Saranga l'un des pères de DB2, prépare une architecture révolutionnaire basée sur la parallélisation des fonctions nucléaires d'accès à la base de données, nommée Dynamic Scalable Architecture(DSA). Tirant parti des machines multi-processeurs (SMP et MPP) et du multi-threading, les composantes des requêtes SQL (tri, groupage, agrégations, jointures et lecture disque) pourront désormais être traitées en parallèle, diminuant très conséquemment les temps de réponses. Cette nouvelle architecture, de par sa conception, permettait également à la base de données de monter très haut en puissance (escalabilité), de façon pratiquement linéaire en rajoutant des processeurs au serveur. Début 1994 sort la version 6.0, n'implémentant que la lecture disque parallèle, rapidement suivie de la version 7.0 qui parallélise toutes les fonctions citées plus-haut. DSA a également implémenté le disk-mirroring et la réplication de données de type primaire-secondaire destinée à la haute disponibilité (HDR).

Informix Universal Server : de la vidéo en base de données relationnelle[modifier | modifier le code]

En 1995, Informix Software acquiert Illustra, fondée par Michael Stonebraker (aussi le père de Ingres et Postgres), dans le but de fusionner cette base de données orientée objet avec l'architecture DSA, pour donner Informix Universal Server (V9) combinant la robustesse et la performance de la version 7 avec l'ouverture encore incomprise du monde objet. Il devenait alors possible de manipuler virtuellement n'importe quel type de données (XML, image, texte, vidéo, spatiale, géodétique, séries de temps, types "maison", etc.) dans le cadre d'une base de données relationnelle. Sont également sortis à cette époque Informix XPS (V8), ligne de produit très haut de gamme spécialisée dans le data warehouse, la première version de Informix Dynamic Server sur Linux, ainsi que la première version 64bit sur les machines Digital Equipment.

L'ascension et le déclin, simultanément[modifier | modifier le code]

À cette époque, Informix Dynamic Server était reconnu par les experts comme la perle des SGBD, que ce soit au niveau performance ou au niveau fonctionnalités. La réplication Entreprise (v7.3), de type asynchrone, permet de créer une architecture fonctionnelle distribuée sans avoir à coder de complexes fonctionnalités de synchronisation. Malheureusement, diverses erreurs de stratégie, combinées avec des pratiques fiscales 'hors-normes', ont conduit à l'affaiblissement de la compagnie, bien que Informix Dynamic Server garde paradoxalement sa supériorité technique face à la concurrence. La conséquence à moyen terme fut le rachat de la compagnie par IBM début 2001.

Le rachat par IBM, phase 1[modifier | modifier le code]

S'en est suivie une longue traversée du désert, période à laquelle IBM s'est contentée de maintenir le produit acquis, apparemment sans grande conviction. Le projet de fusion Informix et DB2 n'aboutit pas et le produit perd beaucoup de visibilité sur le marché. Devant répondre à la satisfaction de la base installée, le laboratoire IBM/Informix a lancé de nouvelles versions (10.0 en 2005 : consolidation de la fusion des versions 7 et 9 plus quelques améliorations techniques), 11.10, (nom de code Cheetah) en 2007, 11.50 en 2008, 11.70 en 2010.

IBM, phase 2[modifier | modifier le code]

Toutefois depuis la sortie de la 10.50, de nouvelles fonctionnalités apparaissent, certaines provenant de DB2 qui reste une référence en la matière, d'autres provenant de la demande de la base installée qui n'a pas du tout envie d'essayer d'autres SGBD, et enfin l'inclusion de techniques de data warehouse dans le moteur OLTP. Pas de grandes révolutions, mais une montée en puissance constante qui fait d'Informix Dynamic Server un produit extrêmement performant et robuste (plus de 500 jours de disponibilité continue chez une des plus grosses implémentations mondiales). Les laboratoires ont également développé le concept de réplication HDR (haute disponibilité) et Entreprise pour aboutir au cluster MACH11.

MACH11 est un système évolué de grid computing mettant en œuvre une technologie avancée de réplication composite, que se soit pour partager des nœuds multiples (High Availability Data Replication et/ou Remote Secondary Standby) et/ou partager des disques sur le même grid (Shared Disk Secondary). Ce système permettant de combiner à volonté ER, HDR, RSS et SDS, a pour but de répartir la charge et garantir une véritable disponibilité 24x7x365.

Avec la version 12.10, le concept du Flexible Grid, qui permet d'effectuer de la Réplication Entreprise entre hardware/OS différents ainsi qu'entre versions Informix différentes (version >= 11.70 xC1), étend considérablement le concept déjà ancien de requêtes partagées (introduit en 1991 avec la version 4.0) pour permettre l'exécution de requêtes SQL partagées sans devoir savoir sur quel serveur se trouvent les données. Les GRID QUERIES, qui s'exécutent avec la syntaxe suivante :

select partnum, sku, qty from inventory '''GRID ALL''' grid1 where order_date >= today;

permettent désormais de distribuer les très grosses tables entre de multiples serveurs, tout en ne considérant qu'une seule table lors des requêtes sur ces tables.

La technologie TimeSeries, basée sur un datablade Informix lancé en 1998, remporte à l'heure actuelle un grand succès dans l'industrie des fournisseurs d'énergie et autres industries basées sur les séries de temps, à cause de ses performances sans précédent que ce soit au niveau rapidité d'exécution que des économies très conséquentes en termes de consommation d'espace-disque.

À noter qu'il existe depuis la version 11.70 une licence gratuite de production : IBM Informix Innovator-C Edition.

Le nouveau dataware house[modifier | modifier le code]

IBM a lancé en Avril 2011 Informix Warehouse Accelerator, une composante de IBM Informix 11.70 XC2 Ultimate Edition, qui est un accélérateur de requêtes basé sur la conjonction de diverses techniques de pointe telles que la compression de données, le contenu dans la base de données totalement en mémoire, et le concept de base de donnée orientée colonne.

Visant clairement le secteur du data warehouse, ce module installé sur un gros serveur Linux 64bit, est sollicité par l'optimiseur de l'instance OLTP pour exécuter les requêtes complexes à extrêmement complexes, avec la totalité des données en mémoire RAM, organisées en colonnes et non pas en rangées. Le résultat ne se fait pas attendre, et c'est vraiment le cas de le dire : les temps de réponse obtenus chez les heureux clients qui ont embarqué IWA oscillent entre 30 et 900 fois plus courts qu'avec leur installation habituelle, sans toucher absolument rien de leur application ni de leurs requêtes.

Le gros avantage de cette solution par rapport aux solutions concurrentes, mis à part le rapport coût global de l'infrastructure/performance, est l'absence pratiquement totale d'administration de cette "appliance", sachant qu'une fois que le ou les DataMart est défini et chargé initialement, il peut être nourri en flux continu (V12.10). Pas d'index à gérer, et surtout pas d'application à modifier: le client habituel se connectera comme il l'a toujours fait, et c'est l'optimiseur Informix qui fera le choix d'activer l'accélérateur ou non.

La version 12.10 permet désormais de traiter les données issues de TimeSeries sur l'Accélérateur.

Voir aussi[modifier | modifier le code]

Article connexe[modifier | modifier le code]

  • 4GL : le langage associé à Informix

Liens externes[modifier | modifier le code]