Grilles de données en mémoire et bases de données en mémoire

L'adoption de l'informatique en mémoire continue de s'accélérer. Les solutions matures permettent aux organisations d'obtenir la vitesse de traitement de la base de données et l'échelle dont elles ont besoin pour leurs initiatives de transformation numérique et d'expérience client omnicanal. Par exemple, la société d'investissement Wellington Management a utilisé une plate-forme informatique en mémoire pour accélérer et mettre à l'échelle son portefeuille d'investissement (IBOR), la seule source de vérité pour les positions, l'exposition, les évaluations et les performances des investisseurs. Toutes les transactions de trading en temps réel, toutes les activités de compte associées, les données de tiers telles que les cotations du marché et toutes les activités de back-office associées transitent par son IBOR en temps réel. L'IBOR prend également en charge l'analyse des performances, les évaluations des risques, la conformité réglementaire, etc. Dans divers tests,la nouvelle plate-forme a fonctionné au moins dix fois plus rapidement que l'ancien système de l'entreprise, construit directement sur une base de données relationnelle Oracle.

Nikita Ivanov est CTO chez GridGain Systems, qui développe des solutions informatiques en mémoire.

Gartner prévoit que d'ici 2019, 75% du développement d'applications cloud natives utiliseront l'informatique en mémoire, ou des services utilisant l'informatique en mémoire, pour permettre aux développeurs grand public de mettre en œuvre des applications hautes performances et massivement évolutives. Cependant, les développeurs novices dans les technologies informatiques en mémoire doivent développer une compréhension des différentes stratégies pour ajouter la technologie à leurs architectures. Dans la plupart des cas, la première décision à prendre est de savoir s'il faut déployer une grille de données en mémoire ou une base de données en mémoire. Cette décision dépendra principalement de leur intention d'accélérer les applications existantes, de leur intention de développer de nouvelles applications ou de la réarchitecture complète des applications existantes ou de voir l'opportunité de faire les deux. Ils doivent également considérer quelle couche servira de système d'enregistrement,la couche de calcul en mémoire ou la couche de données sous-jacente.

Explorons les technologies informatiques en mémoire nécessaires pour mettre en œuvre ces stratégies.

Grilles de données en mémoire

Une grille de données en mémoire (IMDG) copie les données sur disque des bases de données SGBDR, NoSQL ou Hadoop dans la RAM, où le traitement a lieu sans les retards causés par les lectures et écritures continues sur le disque. Insérée entre l'application et les couches de données, la grille de données en mémoire est déployée sur un cluster de nœuds de serveur et partage la mémoire disponible et le processeur du cluster. Qu'elle soit déployée dans un environnement de cloud public ou privé, sur site ou dans un environnement hybride, une grille de données en mémoire peut être mise à l'échelle simplement en ajoutant un nouveau nœud au cluster. Certaines grilles de données en mémoire peuvent prendre en charge les transactions ANSI-99 SQL et ACID, la sécurité avancée, l'apprentissage automatique et les intégrations natives Spark, Cassandra et Hadoop.

Une grille de données en mémoire est une solution simple et économique pour les applications existantes. Cependant, de nombreuses grilles de données en mémoire nécessitent que toutes les données de la base de données sur disque sous-jacente tiennent dans la mémoire, ce qui oblige une entreprise à acheter suffisamment de mémoire pour contenir toutes les données. La mémoire étant toujours plus chère que le disque, de nombreuses entreprises peuvent préférer ne conserver certaines données que sur disque. Les nouvelles architectures centrées sur la mémoire résolvent ce problème en traitant le jeu de données complet, même si certaines des données sont stockées sur disque. Cette capacité de «stockage persistant» permet à la quantité de données de dépasser la quantité de mémoire. Cela signifie que les données peuvent être optimisées pour que toutes les données résident sur le disque, mais que les données les plus fréquemment utilisées résident également en mémoire, tandis que les données rarement utilisées résident uniquementsur disque. Un autre avantage clé est qu'après un redémarrage, un système avec un magasin persistant peut commencer à traiter immédiatement le jeu de données sur le disque sans attendre que le jeu de données se charge en mémoire.

Workday, un fournisseur de solutions financières et RH SaaS au service des entreprises du Fortune 50, a expliqué comment il utilise une grille de données en mémoire pour traiter environ 189 millions de transactions par jour, avec un pic à environ 289 millions par jour. À titre de comparaison, Twitter gère environ 500 millions de tweets par jour.

Base de données en mémoire

Une base de données en mémoire (IMDB) est la mieux adaptée pour les applications nouvelles ou restructurées. Il s'agit d'une base de données autonome complète exécutée en mémoire qui prend en charge les API de traitement de données telles que ANSI-99 SQL, la valeur-clé, le calcul et l'apprentissage automatique. L'avantage d'une base de données en mémoire par rapport à une grille de données en mémoire est que l'architecture est réduite de trois couches (application, en mémoire et données) à deux. L'inconvénient est qu'il ne peut pas être utilisé pour une application existante sans une levée et un déplacement de l'ensemble de données de la base de données existante. De plus, comme une base de données en mémoire sert de système d'enregistrement, la solution doit inclure une stratégie de protection des données en cas d'indisponibilité. Cette stratégie peut être similaire à la capacité de stockage persistant discutée pour les grilles de données en mémoire, ou elle peut impliquer l'utilisation de RAM non volatile,une nouvelle technologie qui jouera probablement un rôle de plus en plus important à l'avenir.

Aujourd'hui, une grande banque avec 135 millions de clients utilise une base de données en mémoire avec une capacité de stockage persistant pour développer une architecture à l'échelle du Web capable de gérer jusqu'à 1,5 Po de données, ainsi que le volume de transactions requis. Cette solution sert de système d'enregistrement et ne repose pas sur un magasin de données existant.

Plates-formes informatiques en mémoire

Les organisations qui développent une stratégie à long terme qui consiste à accélérer les applications existantes et à en déployer de nouvelles peuvent opter pour une plate-forme informatique en mémoire qui combine l'évolutivité d'un IMDG avec les capacités de base de données relationnelles complètes d'un IMDB. Par conséquent, la plate-forme informatique en mémoire peut être utilisée pour accélérer les applications existantes ou être la base pour la création d'applications nouvelles ou réarchivées qui peuvent tirer parti de l'informatique distribuée et d'un stockage persistant.

En plus de décider quelle technologie répond le mieux à leurs besoins, les entreprises doivent déterminer si elles ont besoin de technologies supplémentaires de prise en charge en mémoire, telles que:

  • Un moteur d'analyse en continu pour gérer toute la complexité autour du flux de données et du traitement des événements.
  • Un cadre d'apprentissage continu alimenté par l'apprentissage en profondeur pour servir de base à ce que Gartner appelle le HTAP en cours de processus (traitement transactionnel / analytique hybride); c'est-à-dire la possibilité d'appliquer l'apprentissage automatique ou l'analyse d'apprentissage en profondeur aux données opérationnelles en temps réel.

La technologie de l'informatique en mémoire est maintenant utilisée par les principales entreprises numériques et deviendra encore plus largement utilisée à l'avenir. Plus tôt vous développerez une solide compréhension des stratégies de déploiement et des capacités de l'informatique en mémoire, plus tôt vous serez en mesure d'aider votre organisation à acquérir l'avantage concurrentiel dont elle a besoin.