Accueil Quelques bases

Quelques bases

Une base de données in-memory est un système de gestion de bases de données, généralement relationnel, qui stocke entièrement les données en mémoire (RAM). Il contraste en ceci avec les bases de données traditionnelles, qui sont conçues pour stocker les données sur un support non-volatile. On recherche avant tout, avec cette technologie, la rapidité de traitement : les accès mémoire sont de l'ordre de 1000 fois plus rapides que les accès disque. Si les temps de traitement obtenus ne sont pas forcément toujours divisés par 1000 à l'arrivée (et même si certains affichent des gains plus spectaculaires encore), ils sont en tout état de cause considérablement réduits et le temps nécessaire à une requête se compte en secondes ou en fraction de seconde et non plus en minutes ou en heures, comme avec les bases de données classiques. En outre, les bases de données en mémoire étant de conception plus simple que les bases de données traditionnelles, elles nécessitent relativement moins de mémoire et de puissance de traitement : les algorithmes de structuration et d'accès aux données sont optimisés en fonction de cet avantage. Il n'y a donc pas besoin de gérer des tampons de mémoire, ni de gérer un fractionnement des données, certaines restant en mémoire, les autres étant placées sur les disques. Parmi les autres avantages des bases de données en mémoire, on peut citer : > l'absence de nécessité de traduction : une base de données en mémoire stocke et manipule les données tout à la fois, dans la forme dans laquelle elles sont utilisées par l'application ; >la fiabilité et l'intégrité : elles mettent en oeuvre les propriétés d'atomicité, de cohérence, d'isolation et de cohérence connues sous l'acronyme anglais ACID (atomicity, consistency, isolation, durability) ; > les accès concurrents à des données partagées par de nombreux utilisateurs, tout en conservant des temps de réponse satisfaisants ; >la souplesse, la robustesse. Mais les bases de données in-memory présentent aussi quelques inconvénients, dont le plus immédiat est la non-persistance des données. C'est pourquoi bon nombre d'acteurs de ce marché proposent des systèmes de stockage et de récupération via des supports de stockage traditionnels : le plus souvent, la persistance s'obtient en historisant les modifications validées et en mettant à jour périodiquement une image disque de la base de données. Parmi les autres inconvénients, il y a un besoin en mémoire considérablement augmenté par rapport à un système traditionnel, et donc l'investissement qui y est lié. Ce n'est que l'abaissement du coût des mémoires RAM et l'augmentation colossale de leurs capacités qui ont rendu les bases de données in-memory possibles en pratique. Et que se passet- il si la capacité mémoire du système est insuffisante ? Cet aspect doit aussi être géré. Enfin, toutes les données étant chargées en mémoire pour un accès ultra-rapide, il convient au préalable de charger cette base de données, ce qui peut se traduire pas des temps de chargement importants.