Definition

OLTP en mémoire

L'OLTP en mémoire, ou In-Memory, est une technologie de calcul en mémoire développée par Microsoft, qui accélère les performances des applications de traitement transactionnel exécutées dans des bases de données SQL Server. Appelée Hekaton à l'origine, l'OLTP en mémoire est intégrée au moteur de base de données de SQL Server. Elle sert notamment à traiter des tables de données transactionnelles stockées dans la mémoire système au lieu de les récupérer à partir d'un stockage sur disque. Cette technologie s'articule autour de deux éléments principaux : des tables optimisées en mémoire et des procédures stockées compilées en mode natif.

Les tables optimisées en mémoire sont généralement celles auxquelles les applications accèdent fréquemment dans le cadre du traitement transactionnel. Outre une copie sur disque dur, ces tables sont aussi stockées dans la mémoire active. La capacité à traiter les données en mémoire accélère les transactions exécutées dans les tables, étant donné que le système SQL Server interagit uniquement avec les données en mémoire. Selon Microsoft, la durabilité des tables optimisées en mémoire est complète, puisque les données des transactions effectuées sont préservées même en cas de panne de base de données. Ces tables sont accessibles au moyen de commandes T-SQL, tout comme les tables sur disque conventionnelles, et ces deux types de tables sont interrogeables simultanément.

Les procédures stockées compilées en mode natif regroupent des instructions T-SQL préassemblées que les applications peuvent appeler pour accélérer l'exécution d'une requête et le traitement de la logique métier. Ces procédures sont compilées en code natif au moment de leur création, à l'inverse des procédures conventionnelles stockées sur disque, qui sont compilées à l'exécution. Elles ne peuvent interagir avec des tables optimisées en mémoire qu'au travers de l'OLTP en mémoire.

Pour faciliter les tâches de traitement transactionnel, le moteur OLTP en mémoire utilise en outre des structures de données sans verrouillage et le contrôle de simultanéité multiversion : Microsoft revendique une rapidité cinq à vingt fois supérieure pour les applications adaptées à cette technologie, par rapport au traitement sur disque. L'OLTP en mémoire est notamment recommandée pour les types de workloads suivants : applications enregistrant des taux élevés d'insertion de données à partir de plusieurs connexions simultanées ; applications exigeant des performances de lecture variables pour des insertions et mises à jour par lots périodiques ; traitement intensif de logique métier ; transactions à faible latence ingérables par le traitement sur disque ; tâches de gestion de l'état de session ; traitement des tables temporaires ; et opérations d'intégration de données par extraction, transformation et chargement (ETL, Extract, Transform and Load). De plus, l'entreprise affirme que l'OLTP en mémoire est idéale pour booster les performances des applications aux transactions à exécution courte.

Initialement fourni avec SQL Server 2014, le moteur de traitement In-Memory est mis à jour dans la version 2016, qui en élimine les limites initiales sur le volume de données traitable. De plus, il est désormais compatible avec différentes fonctions de programmation Transact-SQL (T-SQL) qui étaient absentes dans la première version. Depuis fin 2015, l'OLTP en mémoire est également disponible avec la plateforme Cloud Azure SQL Database de Microsoft.

 

Cette définition a été mise à jour en avril 2018

Pour approfondir sur Base de données