Qu'est-ce qu'une base de données en mémoire ?

Une base de données en mémoire stocke toutes les données d'une entreprise ou d'un individu dans la mémoire principale d'un ordinateur.

L'analyse des données sur la base de données en mémoire est rapide par rapport aux bases de données traditionnelles, qui utilisent des dispositifs de stockage secondaires. Ces dispositifs de stockage secondaires comprennent un disque dur ou des périphériques à semi-conducteurs. L'unité centrale de traitement (CPU) d'un ordinateur n'a un accès direct qu'aux données stockées dans la mémoire principale. Par conséquent, un ordinateur peut lire/écrire les données de la mémoire principale beaucoup plus rapidement que les données du dispositif de stockage secondaire. Cela rend les bases de données en mémoire incroyablement rapides.

schéma d'une base de données en mémoire

Les entreprises utilisent une base de données en mémoire pour les applications qui exigent des opérations de base de données à grande vitesse. Les enchères en temps réel pour les spots publicitaires utilisent une base de données en mémoire. Dans le cas des enchères publicitaires en temps réel, une plateforme d'enchères met un spot publicitaire aux enchères pendant que l'utilisateur charge une page Web. La plateforme d'enchères en temps réel recueille les données des offres de plusieurs soumissionnaires, sélectionne l'offre gagnante en fonction de plusieurs règles et affiche l'annonce du soumissionnaire gagnant. Tout cela doit se produire en quelques millisecondes pendant le chargement de la page Web. Une base de données en mémoire aide la plateforme d'enchères en temps réel à effectuer toutes ces opérations de données en quelques millisecondes de latence.

Pourquoi les entreprises ont-elles besoin d'une base de données en mémoire ?

Avec l'avènement de l'internet des objets (IoT) et la croissance des solutions basées sur le cloud, les entreprises ont besoin de traiter les données en temps réel. Des millions d'appareils comme les moniteurs de santé et de sécurité génèrent des données chaque seconde. Il est crucial d'analyser ces données en temps réel. Les entreprises ont besoin de solutions de base de données performantes pour traiter leurs données en temps réel. Les bases de données en mémoire aident également les entreprises à améliorer leur productivité en accélérant les opérations de leurs bases de données. Elles les aident également à tirer parti des avantages du Big Data. Si une entreprise a besoin de l'un des éléments suivants, elle devrait envisager d'adopter une base de données en mémoire :

  • L'entreprise doit tirer parti des avantages en temps réel du Big Data.
  • L'entreprise collecte régulièrement des données et a besoin d'un accès rapide.
  • La persistance des données n'est pas un gros problème pour l'entreprise.
Rapport O'Reilly : Construire une infrastructure de données unifiée
Rapport O'Reilly : Construire une infrastructure de données unifiée
Seul un tiers des entreprises se sont transformées en organisations axées sur les données. Quelle est la solution ? Découvrez-la dans cet eBook.

Comparaison des bases de données en mémoire et des bases de données sur disque

  • Une base de données en mémoire permet des lectures/écritures plus rapides qu'une base de données traditionnelle sur disque. Dans les bases de données traditionnelles, chaque opération de base de données nécessite d'écrire/de lire à partir du disque, ce qui implique une opération d'entrée/sortie (IO). Ce processus supplémentaire ralentit les bases de données sur disque.
  • Les données des bases de données traditionnelles sur disque sont persistantes, comparées à celles des bases de données en mémoire. La mémoire principale utilisée dans la base de données en mémoire est volatile. Les données peuvent être perdues en cas de panne du système. Les bases de données en mémoire utilisent diverses techniques pour surmonter le problème de volatilité des données.
  • Dans les bases de données traditionnelles, les structures utilisées pour le stockage des données sont complexes. Cela permet de garantir l'efficacité de l'accès aux données à partir du disque. En général, l'accès aléatoire aux périphériques de stockage secondaires prend beaucoup de temps. Les bases de données traditionnelles utilisent diverses structures de données comme les B-Trees pour surmonter ce problème. Dans le cas des bases de données en mémoire, les structures de stockage sont simples, car l'accès aléatoire aux données depuis la mémoire principale est très efficace.
  • Les bases de données traditionnelles sur disque ne peuvent fonctionner que dans des systèmes dotés d'un dispositif de stockage secondaire. De nombreux dispositifs embarqués ne prennent pas en charge le stockage secondaire. Les bases de données en mémoire peuvent fonctionner efficacement sur la mémoire principale de ces appareils embarqués. Les entreprises qui travaillent dans le secteur de l'internet des objets choisissent souvent des bases de données en mémoire en raison de cette caractéristique.
  • Les bases de données en mémoire conviennent mieux aux applications nécessitant peu de données. Même si la taille de la mémoire RAM a considérablement augmenté, elle reste de l'ordre de plusieurs gigaoctets. Les bases de données traditionnelles sur disque ne souffrent pas de telles restrictions. Elles peuvent fonctionner avec des données de plusieurs téraoctets.

Comment une base de données en mémoire assure-t-elle la durabilité des données ?

Il est indispensable que chaque base de données garantisse les propriétés ACID :

  • Atomicité
  • Cohérence
  • Isolation
  • Durabilité

Si les bases de données en mémoire garantissent les trois premières propriétés, des mesures supplémentaires doivent être prises pour assurer la durabilité. Cette propriété impose que toutes les données soient intactes, même en cas de panne de courant ou du système. Les bases de données en mémoire sont basées sur la mémoire principale volatile. La mémoire volatile est conçue de telle sorte que toutes les données sont perdues si le système est mis hors tension. Les bases de données en mémoire utilisent diverses techniques pour s'assurer que les données ne sont pas effacées après une coupure de courant ou une panne du système.

Instantané

Une base de données en mémoire crée des instantanés périodiques de la base de données et les stocke sur les disques (non volatiles). Ces instantanés de la base de données sont des copies complètes de la base de données à un moment donné. Si la prise périodique d'instantanés constitue un moyen de préserver les données, elle ne garantit pas nécessairement leur durabilité. Il existe toujours un risque de défaillance du système après l'enregistrement d'un instantané. Toutes les modifications apportées après l'instantané seront perdues.

Journalisation des transactions

Dans cette méthode, la base de données en mémoire conserve un enregistrement de chaque modification apportée à la base de données. Ces journaux de transactions contiennent les détails de chaque opération d'insertion et de modification. Ils sont stockés dans un fichier non volatile qui peut être utilisé pour récupérer la base de données en cas de panne. Dans les bases de données qui effectuent des milliers d'opérations par minute, la journalisation des transactions ajoute une surcharge aux performances du système et à sa capacité de stockage. La plupart des bases de données en mémoire conservent les journaux de transactions jusqu'à ce qu'un instantané soit réalisé, puis les rejettent.

Mémoire non volatile à accès aléatoire (NVRAM)

Une autre façon d'assurer la durabilité des données consiste à utiliser une mémoire non volatile à accès aléatoire. La NVRAM conserve les données, même après une coupure de courant. La NVRAM est une solution populaire utilisée par les bases de données en mémoire pour assurer la durabilité des données. Les bases de données en mémoire utilisent une RAM statique alimentée par batterie ou une mémoire morte programmable effaçable électriquement (EEPROM).

Découvrez une solution unique pour gouverner, gérer et consommer toutes les shared data assets
Découvrez une solution unique pour gouverner, gérer et consommer toutes les shared data assets
Évitez les silos grâce à une approche tout-en-un de la gestion des ressources de données dans toute l'entreprise.

Caractéristiques essentielles des bases de données en mémoire

Avec l'augmentation des applications en temps réel, la demande de bases de données en mémoire a également augmenté. De nombreuses bases de données en mémoire sont disponibles sur le marché. Il est parfois difficile de choisir une solution de base de données en mémoire idéale. Voici les caractéristiques essentielles qu'une base de données en mémoire doit posséder pour être utile dans les scénarios actuels du marché.

Compatibles avec la migration cloud

La plupart des entreprises se tournent vers le cloud et préfèrent le modèle commercial du logiciel en tant que service (SAAS). La base de données en mémoire doit également être capable de prendre en charge ce modèle. Cela signifie que la base de données en mémoire doit être proposée sous forme de base de données en tant que service. Avec la base de données en tant que service, les développeurs et les utilisateurs peuvent partager un ensemble de ressources de base de données à la demande. Une fois qu'ils ont terminé, les ressources de la base de données sont remises dans l'ensemble des ressources. Les bases de données en mémoire compatibls avec le cloud sont rapides, évolutives et flexibles.

Compatibles avec l'internet des objets

Si une entreprise veut explorer le marché de l'internet des objets, elle a besoin d'une base de données en temps réel conçue pour prendre en charge cette technologie. L'internet des objets comprend des centaines de capteurs (comme des moniteurs de santé et de sécurité) qui envoient continuellement des données en temps réel. La base de données en mémoire doit être prête à traiter des millions de messages envoyés par de nombreux capteurs présents dans le monde entier. La base de données en mémoire doit stocker et récupérer ces données très rapidement afin de permettre aux analyses de prendre des décisions rapides.

Conformes à la norme ACID

Chaque base de données doit répondre aux exigences d'atomicité, de cohérence, d'isolation et de durabilité. Ces caractéristiques sont essentielles à l'intégrité des données. D'un point de vue commercial, le fait de disposer d'une base de données conforme aux propriétés ACID aidera l'entreprise à prendre de bonnes décisions. L'utilisation d'une implémentation propriétaire d'une base de données en mémoire qui ne présente pas l'exclusivité ACID peut conduire à des données inexactes et à des décisions erronées. Choisissez judicieusement.

Quels sont les avantages des bases de données en mémoire ?

Performance

Les bases de données en mémoire stockent les données dans la mémoire principale de l'ordinateur, à laquelle le processeur peut accéder directement. Les opérations de lecture et d'écriture d'une base de données en mémoire sont beaucoup plus rapides que celles des bases de données traditionnelles sur disque.

Simplicité

Les exigences de stockage des bases de données traditionnelles sont complexes, car elles doivent optimiser les opérations de lecture/écriture sur un périphérique de stockage secondaire. Cela inclut une logique de stockage des données sur des blocs de disques continus, ce qui facilite la récupération. Avec une base de données en mémoire, l'accès aléatoire est très efficace. Par conséquent, les structures de données pour stocker les bases de données en mémoire sont assez simples.

Utilisation dans les systèmes embarqués

Une base de données en mémoire n'a pas besoin d'un périphérique de stockage secondaire. Cette propriété est très utile dans le cas des appareils hautement mobilisés d'aujourd'hui. Les appareils embarqués comme les consoles de jeu ou les télévisions intelligentes ne peuvent pas se permettre d'avoir un périphérique de stockage secondaire. Ils peuvent donc utiliser une base de données en mémoire. Cette propriété est très importante dans le monde actuel, où l'internet des objets gagne en popularité et où les périphérique de stockage secondaires s'avèrent inefficaces.

Quels sont les inconvénients des bases de données en mémoire ?

Durabilité des données

Alors que la mémoire à accès aléatoire facilite les opérations de données à grande vitesse, les bases de données en mémoire sont sensibles aux pertes de données. Les données de la base de données en mémoire ne sont stockées que temporairement. En cas de panne du système, il y a un risque de perte de données.

Solution : nous avons vu dans la section précédente comment les bases de données en mémoire utilisent différentes techniques comme les instantanés, les journaux de transactions et la mémoire non volatile à accès aléatoire pour résoudre le problème de la durabilité des données.

Taille des données

Comme la taille de la mémoire à accès aléatoire d'un ordinateur est limitée (généralement en gigaoctets), les bases de données en mémoire peuvent ne pas pouvoir gérer des besoins énormes en matière de données.

Solution : ce problème a plusieurs solutions. La connexion de plusieurs ordinateurs sur le réseau pour augmenter la taille de la mémoire principale est une façon de résoudre le problème de la taille. De même, avec des ordinateurs multicœurs, nous pouvons étendre la taille de la mémoire à accès aléatoire.