IBM vient d'ajouter à sa base de données DB2 un ensemble de technologies d'accélération pour exécuter en mémoire le traitement d'importants volumes de données. Sous le nom de BLU (acronyme pour Big data, Lightening fast -à la vitesse de l'éclair- et Ultra easy -très facile), ces technologies regroupent des fonctions de traitement parallèle, d'exécution en colonnes, de déduplication et de compression de données. L'objectif est de permettre un fonctionnement optimisé en mémoire, a expliqué Tim Vincent, vice-président et CTO d'IBM pour les logiciels d'Information Management. Les technologies BLU vont aussi contribuer à éliminer de nombreux ajustements manuels effectués sur les requêtes SQL pour doper les performances. Selon IBM, grâce à elles, la version 10.5 de DB2 pourra diviser par un facteur 25 les temps d'analyse de données, voire davantage.

Avec ces améliorations, il ne sera plus nécessaire d'installer de façon distincte une base de données en mémoire -comme TimesTen d'Oracle, par exemple- pour procéder à la fois à des analyses rapides et à des traitements transactionnels. Du point de vue des coûts, « nous n'allons pas vous obliger à dimensionner votre base pour que tout tienne en mémoire », pointe Tim Vincent.

DB2 10.5 comme alternative à une plateforme Hadoop

Sur le web, IBM montre comment un système 32 coeurs utilisant les technologies BLU peut exécuter une requête sur un jeu de données de 10 To en moins d'une seconde. « Dans ces 10 To, vous interagissez peut-être  avec 25% de ces données dans le cadre des opérations quotidiennes. Et vous n'avez besoin de conserver que 25% de ces données en mémoire », détaille Tim Vincent. « Aujourd'hui, vous pouvez acheter un serveur doté de 1 To de mémoire vive et de 5 To de stockage SSD pour moins de 35 000 dollars ».

En utilisant DB2, il sera aussi possible de se passer d'un entrepôt de données distinct et de réduire ainsi les coûts, considérant que le nombre d'administrateurs de base de données disponibles est généralement plus important que celui des experts en datawarehouse. Dans certains cas, cela pourra même constituer une alternative à une plateforme de traitement Hadoop, qui plus est, plus facile à maintenir, assure le CTO de l'activité Information Management.

Une table de métadonnées pour réduire l'utilisation CPU

Parmi les technologies BLU figure un algorithme de compression qui stocke les données de telle façon que, dans certains cas, celles-ci n'ont pas besoin d'être décompressée pour être lues. Tim Vincent explique qu'elles sont compressées dans l'ordre dans lequel elles sont stockées, ce qui signifie que des opérations telles que l'ajout d'une clause WHERE (où) à une requête pourront être exécutées sans décompresser le jeu de données.

Autre gain de temps : le logiciel conserve une table de métadonnées qui liste les valeurs clés hautes et basses pour chaque page ou colonne de données. Ainsi, lorsqu'une requête est exécutée, la base peut vérifier si les valeurs recherchées se trouvent sur la page. « Si la page n'est pas en mémoire, on ne va pas la lire et si elle s'y trouve, il n'est pas nécessaire de l'amener via le bus vers le processeur et de griller des cycles de CPU pour analyser toutes les valeurs de la page », explique Tim Vincent. « Cela permet d'être beaucoup plus efficace sur l'utilisation des processeurs et de la bande passante ».

Avec le traitement en colonnes, une requête peut s'arrêter uniquement sur les colonnes sélectionnées d'une table plutôt que de consulter toutes les lignes, ce qui utiliserait davantage de mémoire. « Nous avons mis au point un algorithme très efficace pour déterminer quelles colonnes et quelles rangées de colonnes il va falloir mettre en mémoire », précise le CTO.

BLU, pierre angulaire de l'IaaS SmartCloud

Sur le versant matériel, le logiciel dispose de capacités de traitement parallèle qui permettent de distribuer une instruction sur plusieurs processeurs en utilisant le jeu d'instructions SIMD (single instruction multiple data) disponible sur les puces Intel et PowerPC. Le logiciel peut alors faire exécuter une requête sur autant de colonnes que le système peut placer dans un registre. Selon Tim Vincent, le registre est l'exemple le plus efficace que le système fait de l'utilisation de la mémoire.

IBM n'est pas le seul à explorer de nouvelles façons de faire rentrer de volumineuses bases de données en mémoire. Au début du mois de juin, Microsoft a annoncé que la version 2014 de sa base de données SQL Server intègrerait elle aussi, sous le nom d'Hekaton, un ensemble de technologies destinées à maximiser l'utilisation de la mémoire de travail, de même qu'une technique de traitement en colonnes empruntée à la technologie PowerPivot mise en oeuvre dans son tableur Excel.

L'analyste Curt Monash, de Monash Research, souligne dans son blog qu'avec l'arrivée de DB2 10.5, d'IBM, Oracle se retrouve à être le seul fournisseur important de base de données à ne pas avoir de véritable technique de traitement en colonnes. IBM lui-même utilise les composants BLU de DB2 10.5 comme pierre angulaire dans son infrastructure « as a service » SmartCloud, pour renforcer les capacités de traitement sur le reporting et l'analyse de données. Le fournisseur pourrait aussi intégrer les technologies BLU au sein d'autres bases de données, comme Informix, par exemple.