SGBD : le In-Memory convient-il à votre entreprise ?
Voici un bilan des avantages et des inconvénients des bases de données In-Memory. Et les critères à prendre en compte lors d’un appel d'offres ou d’une évaluation avant de passer au In-Memory.
L'utilisation de la technologie des bases de données In-Memory est une tendance de plus en plus affirmée sur le marché des systèmes de gestion des bases de données (SGBD). Bien que le concept de traitement des données en mémoire, les approches et les technologies adoptées aussi bien pour les SGBD récents que pour ceux qui existaient déjà le sont.
Les systèmes de gestion des bases de données In-Memory (SGBD In-Memory) utilisent la mémoire cache comme mémoire principale pour le stockage, la gestion et la manipulation des données.
Traditionnellement, les systèmes stockent les données sur des disques. La plupart d'entre eux transfèrent ces données vers la mémoire dans un cache (ou un pool de mémoires tampon) lorsque le système y accède. Ce transfert en mémoire rend plus efficaces les accès suivants aux données. Mais ces mouvements constants entre les disques et la mémoire peuvent entraîner des problèmes de performances.
Les systèmes de gestion des bases de données In-Memory sont utilisés principalement pour améliorer les performances des requêtes et des applications qui accèdent aux données. Ils peuvent également bénéficier d'un jeu d'instructions réduit compte tenu de la réduction du nombre d'activités ayant besoin d'accéder aux données (à la différence d'un accès à partir d'un disque).
Le système de base de données NewSQL est une autre ramification des tendances In-Memory et NoSQL actuelles.
Le concept de NewSQL consiste à adopterla tendance du marché axée sur le NoSQL avec des architectures, des configurations et des mises en oeuvre actuelles des bases de données, mais pour prendre en charge le SQL, tirant ainsi parti des connaissances de l'immense réservoir de développeurs SQL. Les systèmes SGBD NewSQL ne sont pas tous In-Memory, mais beaucoup d'entre eux le sont.
Conditions du marché pour les bases de données In-Memory
L'idée d'accélérer les processus en utilisant la mémoire n'est pas nouvelle. Mais alors, quels sont les facteurs qui expliquent la tendance en faveur des SGBD In-Memory ?
D'abord, la technologie utilisée est de plus en plus répandue et de moins en moins coûteuse.
La quantité de mémoire disponible sur les serveurs actuels continue d'augmenter, nombre d'entre eux offrant 32 téraoctets (To) de mémoire ou plus. De plus, le coût de la mémoire continue de baisser ; actuellement, il est possible d'acheter 8 Go de mémoire (RAM) pour 70 dollars, contre plusieurs centaines de dollars il y a à peine quelques années.
Même si la mémoire vive n'est pas encore aussi bon marché que les disques, son prix continue de diminuer et en font un choix pertinent pour un nombre croissant d'utilisations grâce à son rapport performances/prix, compte tenu du gain en performances potentiel des SGBD In-Memory par comparaison avec les SGBD classiques utilisant des disques.
Mais le prix du matériel ne suffit pas à créer une tendance. La nécessité d'accroître la vitesse dans les applications récentes contribue au succès grandissant des SGBD In-Memory. Les entreprises créent et adoptent toujours plus d'applications Web en temps réel, qui peuvent tirer parti des performances haut de gamme qu'offre la technologie In-Memory.
Grâce à une fiabilité et une persistance des données améliorées, les SGBD In-Memory répondent désormais aux besoins en traitement transactionnel et analytique de la plupart des entreprises.
Et avec la technologie actuelle de traitement dans la mémoire, la persistance n'est plus un obstacle. Par nature, la mémoire est une forme volatile de stockage. Si le serveur n'est plus alimenté, les données en mémoire seront perdues. Les SGDB In-Memory proposés actuellement sur le marché ont été conçus de manière à ce que les données qui sont dans la mémoire y restent même après une panne.
Grâce à une fiabilité et une persistance des données améliorées, le In-Memory répond désormais aux besoins en traitement transactionnel et analytique de la plupart des entreprises.
Types de bases de données In-Memory
A première vue, il peut sembler facile de définir le SGBD In-Memory, mais le traitement des données en mémoire a une longue histoire et a emprunté différents chemins.
L'une des premières formes de traitement des données en mémoire a été mise au point par des programmeurs COBOL qui avaient créé des tables en mémoire pour stocker des données auxquelles un programme pouvait accéder de nombreuses fois en cours d'exécution. Bien sûr, ce système n'était pas une base de données, mais c'était une forme primitive d'accès aux données en mémoire adoptée pour accroître la vitesse de traitement.
A mesure que l'informatique entrait dans l'ère du SGBD, les techniques ont évolué afin d'accéder aux données à partir de la mémoire plutôt que des disques.
Tout administrateur de bases de données qui a utilisé n'importe quel type de SGBD a probablement essayé de faire en sorte qu'il accède aux données dans la mémoire plutôt que sur des disques. Les administrateurs de bases de données doivent alors configurer les niveaux appropriés de mémoire pour mettre les données en cache dans des pools de mémoires tampon. La mise en cache permet aux données de rester dans la mémoire en vue des accès suivants.
Il existe une autre forme de traitement des données en mémoire qui consiste à utiliser des disques SSD. Ces disques sont des périphériques de stockage qui fonctionnent avec des puces mémoires plutôt qu'avec un disque mécanique, afin d'assurer un stockage persistant des données.
L'histoire des SSD remonte aux années 50, à l'époque des gros ordinateurs centraux et des superordinateurs. Dans les années 80, les bases de données des systèmes de gestion informatiques étaient stockées sur un type de disques SSD élémentaires. Mais jusqu'à très récemment, cette technologie était trop coûteuse pour être largement adoptée. Aujourd'hui, le prix de la mémoire étant plus abordable, il est possible de créer une forme simple de bases de données en mémoire qui consiste à stocker les fichiers sur des disques SSD.
Mais un SGBD In-Memory aujourd'hui offre bien plus qu'un SGBD standard stocké sur un SSD.
Le In-Memory actuel est conçu spécifiquement pour le traitement en mémoire. Toutes les données sont stockées dans la mémoire vive dynamique (ou DRAM) sur un serveur, et toutes les opérations s'exécutent dans la mémoire. Toutes les données sont dans la mémoire et ces données peuvent être compressées pour améliorer les performances de stockage et d'accès.
Il existe également une autre forme d’In-Memory couramment utilisé qui comporte des bases de données en mémoire sur disque hybrides. Ces disques hybrides fonctionnent non seulement avec des puces mémoires pour stocker les données, mais également avec des disques durs.
L'avantage d'un SGBD hybride est sa flexibilité, qui permet de concevoir les bases de données en équilibrant les performances, le coût et la persistance. Nombre d'applications peuvent bénéficier de la possibilité d'accéder rapidement à certaines données, tandis que les autres, moins souvent utilisées, sont stockées sur disque. Les disques restent meilleur marché que les mémoires, les compromis qu'une solution hybride rend possibles séduisent donc beaucoup d'entreprises qui ont des besoins variés et des budgets serrés. La plupart des principaux fournisseurs de systèmes de gestion de bases de données relationnelles (SGBDR) ajoutent des fonctionnalités In-Memory à leur offre pour compléter le stockage sur disque existant.
Les SGBD In-Memory peuvent être relationnels, NoSQL, NewSQL ou tout autre type de SGBD. Vous pouvez les utiliser pour le traitement opérationnel des transactions ou pour des applications analytiques, d'informatique décisionnelle (BI).
Bien sûr, chaque système a des caractéristiques et fonctionnalités différentes qui peuvent lui permettre de prendre en charge le traitement opérationnel mieux que le traitement analytique (ou le contraire).
Avantages et inconvénients des bases de données In-Memory
Le point fort évident des SGBD In-Memory est le gain important en termes de performances qu'ils permettent d'obtenir par rapport aux systèmes fonctionnant avec des disques. On peut raisonnablement tabler sur des performances trois à quatre fois supérieures avec un SGBD In-Memory, et beaucoup plus dans certains cas.
Les offres In-Memory reçoivent traditionnellement un bon accueil sur le marché des bases de données intégrées, où l’on apprécie une architecture peu encombrante et non invasive. Mais le marché actuel du In-Memory, et ses nombreuses offres de niveau professionnel, prend en charge bien plus que les seules applications intégrées.
Ceci dit, si leurs performances sont tellement meilleures, comment se fait-il que tout le monde n'ait pas migré vers un SGBD In-Memory ?
En partie à cause de son coût. Comme nous l'avons vu plus haut, la mémoire coûte toujours plus cher qu'un disque, même si le prix des puces DRAM baisse d'année en année.
Les autres facteurs qui en freinent l'adoption sont le manque d'expertise en SGBD In-Memory, les mises en oeuvre SGBD existantes (auxquelles sont ajoutées des fonctionnalités In-Memory pour certaines) et les options non standard ; parfois pour obtenir la vitesse la plus élevée - vous pouvez avoir besoin d'utiliser une interface autre qu'une simple interface SQL.
Enfin, la taille des bases de données était traditionnellement un facteur limitatif, mais les avancées technologiques suppriment cette contrainte.
Malgré cela, bien que les SGBD In-Memory puissent gérer les très grandes bases de données, nombreux sont ceux qui croient encore que les bases en mémoire doivent avoir une taille limitée. Il reste beaucoup d'efforts à faire pour informer afin de battre cette idée en brèche. Il existe des exemples de SGBD In-Memory dont la capacité peut atteindre plus d'un téraoctet.
Cas d'utilisation des SGBD In-Memory, l’accent sur le temps réel
Les cas d'utilisation des SGBD In-Memory sont nombreux et variés. Toute application susceptible de bénéficier d'une hausse des performances peut potentiellement tirer parti de l'utilisation d'un SGBD In-Memory.
Pour ce qui est des utilisations spécifiques, ces systèmes peuvent présenter un réel intérêt pour les applications ayant des besoins en gestion des données en temps réel, notamment celles utilisées dans les domaines des télécoms et de la gestion des réseaux, des marchés financiers, de la défense et du renseignement, des voyages et des réservations, des centres d'appel et des jeux.
Les applications qui ont besoin de données immédiatement sont également de bonnes candidates, par exemple l'informatique décisionnelle (BI) en temps réel, la détection des fraudes, l'analytique en temps réel et les données en streaming.
Facteurs supplémentaires à prendre en compte dans votre évaluation d'achat
Lorsque vous réfléchissez à l'achat d'un SGBD In-Memory, d'autres éléments doivent être pris en considération dans votre évaluation.
Bien que la plupart des SGBD In-Memory offrent des options qui permettent de gérer la question de la persistance des données, vous devez prêter soigneusement attention à la manière dont la durabilité des données est abordée. Etant donné que les données sont dans la mémoire - qui n'est pas persistante - le SGBD In-Memory doit offrir un moyen de les stocker de manière permanente dans une mémoire persistante. Que se passe-t-il si vous débranchez le serveur ?
Il existe différents moyens de gérer la durabilité dans un SGBD In-Memory.
L'une des possibilités consiste à journaliser les transactions, afin que des instantanés (snpshots) périodiques de la base soient enregistrés sur un support non volatile. Si le système tombe en panne et doit être redémarré, la base de données peut être restaurée à la dernière transation exécutée ou par progression.
Autre possibilité : conserver des copies supplémentaires, qui seront essentiellement des bases de données de secours sur un support non volatile. Autre possibilité encore : utiliser une RAM non volatile (NVRAM), telle qu'une RAM équipée d'une batterie de secours ou une RAM ferroélectrique (FRAM), sur laquelle les données peuvent être conservées lorsque l'alimentation est coupée. Et, bien sûr, les SGBD In-Memory hybrides peuvent utiliser un stockage sur disque pour assurer la durabilité.
Avez-vous réellement besoin d'un SGBD In-Memory ?
Vous devez également déterminer si vous avez réellement besoin d'un SGBD In-Memory ou si une autre technologie ne serait pas plus appropriée.
Par exemple, si vous déployez des bases de données sur un disque SSD en utilisant le SGBDR existant, est-ce que vous n'obtiendrez pas des gains en performances suffisants avec moins de perturbations pour votre environnement ?
Les performances d'un SGBD In-Memory seront supérieures à celles d'un SGBD classique sur SSD, mais mieux vaut effectuer des tests pour vous assurer que les gains supplémentaires justifient le choix d'une technologie différente et d'un nouveau fournisseur.
En outre, pour créer certaines appliances de base de données, les développeurs utilisent les systèmes et la technologie In-Memory. Une appliance de base de données doit être une solution clé en main nécessitant peu ou pas de configuration et d'installation. Pour autant, une administration quotidienne reste indispensable.
Assurez-vous par conséquent que vous maîtrisez bien la technologie SGBD intégrée pour toute appliance que vous achetez.