Une base de données en mémoire est une base de données sur mesure qui repose principalement sur la mémoire interne pour le stockage des données. Cela permet d’obtenir des temps de réponse minimaux en éliminant le besoin d'accéder à des unités de disque standard (SSD). Les bases de données en mémoire sont idéales pour les applications nécessitant des temps de réponse de l'ordre de la microseconde, tels que les classement de jeux, les stockages de sessions et l’analyses de données en temps réel. Les termes Base de données en mémoire centrale (MMDB), système de base de données en mémoire (IMDS) et système de base de données en temps réel (RTDB) font également référence aux bases de données en mémoire.

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

Une base de données en mémoire présente plusieurs avantages que nous explorons en détail ci-dessous.

Faible latence, fournissant des réponses en temps réel

Lalatence est le décalage entre la demande d'accès aux données et la réponse de l'application. Les bases de données en mémoire offrent de faibles latences prévisibles, quelle que soit l'échelle. Ils offrent une latence de lecture de quelques microsecondes, une latence d'écriture de quelques millisecondes et un débit élevé.

Par conséquent, le stockage en mémoire permet aux entreprises de prendre des décisions basées sur les données en temps réel. Vous pouvez concevoir des applications qui traitent les données et réagissent aux modifications avant qu'il ne soit trop tard. Par exemple, le calcul en mémoire des données des capteurs des véhicules autonomes permet d’obtenir une réponse en une fraction de seconde dans le cas d’un freinage d'urgence.

Débit élevé

Les bases de données en mémoire sont réputées pour leur haut débit. Le débit fait référence au nombre d'opérations de lecture (débit de lecture) ou d'écriture (débit d'écriture) sur une période donnée. Les exemples incluent les octets/minute ou les transactions par seconde.

Grande capacité de mise à l'échelle

Vous pouvez mettre à l’échelle votre base de données en mémoire pour répondre aux demandes fluctuantes des applications. La mise à l'échelle en écriture et en lecture est possible sans affecter les performances. La base de données reste en ligne et prend en charge les opérations de lecture et d'écriture lors du redimensionnement.

Quels sont les cas d'utilisation des bases de données en mémoire

Les bases de données en mémoire constituent un bon choix pour les secteurs de la banque, des télécommunications, des jeux vidéo et de la publicité mobile. Nous donnons ci-dessous quelques exemples de cas d’utilisation de bases de données en mémoire.

Mise en cache

Un cache est une couche de stockage de données à haut débit qui stocke un sous-ensemble de données généralement transitoires. L'objectif principal du cache est d'augmenter les performances de récupération des données en réduisant le besoin d'accès à la couche de stockage sous-jacente plus lente. Cela signifie que les demandes futures concernant ces données sont traitées plus rapidement que ce qui est normalement possible en accédant à l'emplacement de stockage principal des données.

La mise en cache vous permet de réutiliser efficacement des données précédemment récupérées ou traitées. Le stockage de données en mémoire fonctionne bien pour un accès plus rapide aux données mises en cache. La mise en cache fait un compromis entre durabilité et temps de réponse. Le temps de réponse est plus rapide car les données sont extraites de la mémoire, mais la mise en cache ne protège pas ces données contre la perte de données en mémoire. C'est pourquoi la mise en cache est souvent utilisée en combinaison avec une base de données durable sur disque.

Enchères en temps réel

Les enchères en temps réel font référence à l'achat et à la vente d'impressions publicitaires en ligne. En général, l'enchère doit être faite pendant que l'utilisateur charge une page Web, dans un délai compris entre 100 à 120 millisecondes, voire 50 millisecondes parfois. Pendant cette période, les applications d'enchères en temps réel demandent des offres à tous les acheteurs pour le spot publicitaire, sélectionnent l'offre gagnante en fonction de plusieurs critères, affichent l'offre et collectent des informations après l'affichage de l'annonce. Les bases de données en mémoire sont idéales pour ingérer, traiter et analyser des données en temps réel avec une latence inférieure à la milliseconde.

Classements de jeux

Un classement relatif indique la position d'un joueur par rapport à d'autres joueurs de rang similaire. Ces classements peuvent aider à renforcer l'engagement des joueurs et à empêcher les joueurs de se démotiver par rapport aux meilleurs joueurs. Les bases de données en mémoire peuvent fournir rapidement des résultats de tri et mettre à jour le classement en temps réel pour un jeu réunissant des millions de joueurs.

Comment fonctionne un cache en mémoire

Un cache en mémoire repose sur la mémoire vive (RAM) pour stocker les données. La technologie stocke les tables de données directement dans la RAM plutôt que sur les disques externes. Des structures de données spécialisées permettent l'indexation de vos enregistrements de données. Les index servent de pointeurs directs vers des lignes et des colonnes spécifiques. Cependant, les données physiques réelles sont compressées et leur format n'est pas relationnel. Lorsque vous faites une demande d'accès, la base de données accède à la valeur exacte des données à l'aide de l'index. Les données stockées sont toujours disponibles dans un format directement utilisable.

Des facteurs tels que l'informatique 64 bits, la baisse du prix de la RAM et les serveurs multicœurs ont rendu le stockage en mémoire plus courant. En outre, les stockages de données basés sur le cloud vous permettent d'augmenter ou de diminuer vos ressources RAM selon vos besoins, ce qui rend la technologie en mémoire plus flexible et accessible.

Différence entre le cache en mémoire et les bases de données sur disque traditionnelles

Une base de données traditionnelle conserve toutes les données sur des disques externes ou des disques SSD. Chaque opération de lecture et d'écriture nécessite un accès au disque. À l'inverse, le cache en mémoire ne donne pas la priorité à la persistance des données. Par exemple, les caches ne peuvent enregistrer les données que périodiquement sur des supports de stockage externes. Nous avons résumé ci-dessous les différences entre les caches en mémoire et les bases de données traditionnelles.

Quelle est la différence entre un cache en mémoire et une base de données en mémoire

Les caches en mémoire offrent de meilleures performances car les écritures ne sont pas persistantes, ce qui élimine le temps supplémentaire nécessaire à la persistance des données. Les écritures d'une base de données en mémoire persistent, ce qui rend les modifications de données durables. Cette durabilité se fait au détriment d’une performance d'écriture moins élevée. Cependant, les bases de données en mémoire offrent toujours de meilleures performances qu'une base de données sur disque. Du point de vue des performances, les bases de données en mémoire se situent entre un cache en mémoire et une base de données sur disque.

Quelles sont les limites des caches en mémoire

Toutes les données étant stockées et gérées exclusivement en mémoire, les caches en mémoire courent un plus grand risque de perte de données en cas de défaillance de processus ou de serveur. Pour améliorer la durabilité, un cache en mémoire peut inscrire les données périodiquement sur des bases de données sur disque. Nous détaillons ci-dessous certains mécanismes visant à améliorer la durabilité.

Fichiers d’instantanés

Les fichiers d’instantanés enregistrent l'état de la base de données à un moment donné. Le cache en mémoire génère des instantanés périodiquement ou au moment d’un arrêt contrôlé. Bien que la capture d'instantanés améliore la durabilité dans une certaine mesure, des pertes de données peuvent toujours survenir entre les instantanés.

Journalisation des transactions

La journalisation des transactions enregistre les modifications apportées à la base de données dans un fichier journal externe. La journalisation est indépendante de la lecture/écriture des données et n'a aucune incidence sur les performances. Le fichier journal facilite la restauration automatique d'un cache en mémoire.

Réplication

Certains caches en mémoire s'appuient sur une redondance pour assurer une haute disponibilité. Ils conservent plusieurs copies des mêmes données dans différents modules de mémoire. La défaillance d’un module entraîne le basculement automatique vers la copie de sauvegarde dupliquée. Cela réduit le risque de perte de données lié à l’utilisation d’un cache.

Comment AWS peut-il répondre à vos besoins en matière de cache et de base de données en mémoire

AWS propose différents services de cache et de base de données en mémoire entièrement gérés pour répondre à vos besoins spécifiques.

Base de données en mémoire

Amazon MemoryDB for Redis

Amazon MemoryDB for Redis est un service de base de données en mémoire durable qui offre des performances ultrarapides. Il est compatible avec Redis, un système de stockage de données open source populaire. Cela permet aux clients de créer rapidement des applications en utilisant les mêmes structures de données, API et commandes Redis flexibles et conviviales qu'ils utilisent déjà aujourd'hui. MemoryDB stocke également vos données de manière durable dans plusieurs zones de disponibilité (AZ) à l'aide d'un journal transactionnel multi-AZ pour permettre un basculement rapide, la récupération de la base de données et le redémarrage des nœuds.

Caches en mémoire

Amazon ElastiCache for Redis

Amazon ElastiCache for Redis est un service de mise en cache en mémoire ultrarapide qui permet une latence de quelques microsecondes pour alimenter des applications en temps réel à l'échelle d'Internet. Les développeurs peuvent utiliser ElastiCache for Redis en tant que cache en mémoire ou dans des cas d'utilisation qui ne nécessitent pas une durabilité élevée des données. La configuration du cluster ElastiCache for Redis permet aux clients d'exécuter des charges de travail Redis avec une capacité en mémoire allant jusqu'à 6,1 To dans un seul cluster. ElastiCache for Redis offre également la possibilité d'ajouter et supprimer des partitions de clusters en cours d'exécution. Vous pouvez mettre vos charges de travail de clusters Redis à l’échelle de manière dynamique pour les adapter aux fluctuations de la demande.

Amazon ElastiCache for Memcached

Amazon ElastiCache for Memcached est un service de mise en cache en mémoire clé-valeur compatible avec Memcached. Il offre de hautes performances, une facilité d'utilisation et une grande simplicité tout comme Memcached. ElastiCache for Memcached est entièrement géré, évolutif et sécurisé, ce qui en fait une solution idéale pour les cas d'utilisation où les données fréquemment consultées doivent être en mémoire.

Démarrez avec les caches en mémoire ou les bases de données en mémoire sur AWS en créant un compte gratuit dès aujourd'hui !

Présentation d'Amazon MemoryDB for Redis
Présentation d’Amazon ElastiCache for Redis