- Informix
-
Informix est une combinaison de base de données relationnelle et de base 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
Au commencement...
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
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 4ème 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
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
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
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
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 video en base de données relationnelle
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, video, 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
A cet é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
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
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). A noter que la version 11.70 propose l'édition Innovator-C Edition qui est gratuite et peut être utilisée en environnement de production.
Le nouveau dataware house
IBM a lancé en Avril 2011 Informix Warehouse Accelerator, une composante de Informix Dynamic Server 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 : lors du programme bêta, les temps de réponses ont été réduits de entre 10 fois et 300 fois par rapport à la version antérieure que possédaient les clients testeurs.
Voir aussi
- 4GL : le langage associé à Informix
Liens externes
- (en) Site IBM Informix
- (fr) Télécharger Informix Dynamic Server Innovator-C Edition
- (en) IIUG (International Informix Users Group) IIUG
- (en) The Informix Zone: enquête sur la robustesse des moteurs Informix
- (fr) UGIF (Users Group Informix France)
- (fr) Le Village Informix: blog informix en langue française
Wikimedia Foundation. 2010.