Serveur d'impression

Cinq signes: votre architecture de base de données basée sur le cache peut être obsolète – Bien choisir son serveur d impression

Le 6 août 2019 - 11 minutes de lecture

(Génération visuelle / Shutterstock)

L’économie numérique comprend des moments d’affaires, des fractions critiques de secondes lors de réactions en chaîne ultra-rapides qui transforment les données en informations et transforment les opportunités en valeurs commerciales. Comme les données ont augmenté à la fois en vitesse et en volume, la pratique courante pour soutenir cette croissance a été d'ajouter plus de cache.

Mais une architecture de base de données basée sur le cache n’a jamais été conçue pour prendre en charge les exigences de volume et de latence des systèmes d’engagement actuels. À volume élevé, le cache devient inabordable, indigne de confiance et instable.

Au lieu de plus de mémoire ou d'un meilleur cache, une meilleure architecture de données est nécessaire. Pour prendre des décisions instantanément, les entreprises numériques ont besoin d’une nouvelle architecture de mémoire hybride, qui traite les données transactionnelles et analytiques ensemble – en temps réel – afin de libérer ces moments commerciaux.

Selon un rapport de Forrester, «l'architecture de mémoire hybride est une nouvelle approche qui exploite à la fois la mémoire volatile (DRAM) et la mémoire non volatile, telles que les disques SSD et Flash, pour fournir un accès cohérent, fiable, fiable et à faible latence afin de prendre en charge les générations existantes et nouvelles. d'applications transactionnelles, opérationnelles et analytiques. L'implémentation de ce type d'architecture permet aux organisations de passer d'une architecture en mémoire à deux niveaux à une structure à un niveau qui simplifie le déplacement et le stockage des données sans nécessiter de couche de mise en cache. Les premiers utilisateurs constatent plusieurs avantages pour leur entreprise, notamment un coût de possession plus faible, des réductions énormes de l’empreinte sur leurs serveurs, une administration simplifiée et une évolutivité améliorée. ”

Voici cinq signes indiquant que votre architecture de base de données basée sur le cache peut être obsolète et qu'il est temps de passer à une architecture de mémoire hybride:

Vos nœuds de mise en cache se développent de manière incontrôlable

Vos données et la taille de votre cache évoluent parallèlement à la croissance de votre entreprise, à un taux directement proportionnel. Au fur et à mesure que la valeur de l'engagement augmente, de nouvelles applications et projets réclament l'accès aux bases de données, ce qui augmente les volumes de transaction et la taille des ensembles de travail en cache. Le nombre de serveurs doit augmenter, même lorsque les budgets sont définis au début de l'année. Lorsque la croissance dépasse les attentes, il faut y remédier, sinon votre système d’engagement ne pourra pas suivre.

(bluebay / Shutterstock.com)

Le financement de cette croissance est insoutenable. La croissance des activités signifie une croissance non linéaire des données, car davantage d’informations sont compilées ou interrogées par client et par transaction. Ajoutez à cela l’utilisation de sources de données supplémentaires pour une meilleure analyse, et votre cache s’étendra rapidement pour consommer le budget disponible – et même plus. Vous pouvez rééquilibrer les données en cache sur un disque SSD et réduire les coûts à court terme, mais cela complique la gestion de ces données.

Repeupler votre cache prend des heures voire des jours

Les perturbations sont une réalité de la vie. Plus votre centre de données ou votre cloud est grand, plus les perturbations sont fréquentes. La mise en service d'un nouveau serveur de mise en cache dans le cloud et à l'époque de DevOps prend désormais quelques minutes pour la plupart des entreprises. Mais cela ne s’applique pas aux données de votre couche de mise en cache. Il doit être «réhydraté» à un niveau où le taux de réussite est acceptable avant que l'impact recherché ne soit de réduire la charge de la base de données. Pour la plupart des entreprises utilisant beaucoup de données, ce processus peut prendre des heures, voire des jours, les obligeant à gérer des performances limitées, des données inexactes, le coût inutile d'un surapprovisionnement encore plus important et la complexité des applications.

Regardons un exemple du monde réel. La sixième plus grande société de courtage au monde exploitait son système de négociation intraday sur une architecture de système de gestion de base de données relationnelle (SGBDR) traditionnelle basée sur une mémoire cache. À son volume de transaction quotidien, le courtier a rencontré des problèmes car le cache et la base de données échouaient au cours de la journée. Il n'était pas en mesure d'effectuer des calculs de risque précis plus d'une fois par jour (toute la nuit), de peur de surcharger le système basé sur la mémoire cache. Par conséquent, la société était aveugle au cours de la période de négociation en ce qui concerne la prise de décisions financières, telles que les prêts sur marge, etc. Avec un système de mémoire hybride, les mesures de risque peuvent être réévaluées toutes les quelques minutes afin d’aider à prendre de meilleures décisions. Un autre problème se pose lorsque les clients négocient à plusieurs reprises au cours de la journée et qu’il est impératif que la position du client – le montant des actions et de l’argent du compte – soit précise à tout moment. Que se passe-t-il si le cache de secours contient des données obsolètes et que le client ne peut pas effectuer d’opération supplémentaire parce que la position affiche des fonds insuffisants ou nuls? Finalement, la position du client sera correcte, mais combien de temps cela prendra-t-il et à quel coût? Au mieux, le client a une expérience effrayante en attendant d'actualiser l'écran plusieurs fois. Et au pire, la maison de courtage pourrait être tenue responsable des transactions manquées ou inexactes.

Vous ne pouvez toujours pas rencontrer vos SLA avec l’architecture Cache-First

(rawcapPhoto / Shutterstock)

Lorsque vous êtes le système de détection de la fraude d’un grand système de paiement en ligne, ne pas respecter les accords sur les niveaux de service (SLA) peut représenter des millions de dollars en transactions perdues ou frauduleuses par jour. Ni un SGBDR, ni une base de données NoSQL de première génération ne seront assez rapides pour répondre à des temps de réponse inférieurs à la milliseconde. Vous devez donc placer un cache devant. Mais c’est rarement aussi simple que cela, et cette architecture ne garantit pas le respect des accords de niveau de service face à la croissance.

Prenons le cas d'une des plus grandes entreprises de traitement de paiements au monde. Elle devait planifier une croissance 10 fois plus importante, le paysage des paiements étant en pleine mutation. Faire évoluer l’architecture pour faire face à cette charge accrue signifiait, au mieux, passer de 300 à 3 000 serveurs. Au pire, cela signifiait une mise à l'échelle de 10 000 serveurs. Le passage à une architecture de mémoire hybride a eu des résultats spectaculaires pour l'entreprise. Le nombre de serveurs est passé de 300 à 20. Il a éliminé la couche de mise en cache et les clusters à deux bases de données, permettant ainsi d'économiser des millions de dollars en coûts d'exploitation. Et la performance de l'algorithme de fraude est passée de 175 millisecondes à moins de 80 millisecondes – à des charges de pointe. Le système hybride continue de traiter la transaction même si la détection de fraude ne revient pas à temps. Cela signifie que les SLA manqués de l’algorithme précédent ont entraîné une exposition à la fraude pouvant atteindre plusieurs millions de dollars par jour, soit plus d’un milliard de dollars par an.

Vos données sont suffisamment volumineuses pour que vous ayez besoin d'un clustering

Votre entreprise commence enfin à se développer et la taille de votre cache s'est transformée en une base de données distribuée en mémoire nécessitant une charge supplémentaire en termes de partage, de mise en cluster et d'autres nouvelles techniques. Et il est difficile de trouver du personnel possédant ces compétences.

Vous utilisez peut-être déjà le sharding dans votre application pour créer plus de capacité – c'est la meilleure pratique, après tout. Cependant, avec une croissance suffisante, le sharding peut ne plus être suffisant, ce qui nous conduit à la gestion de grappes. Les mécanismes de clustering sont généralement plus avancés que le sharding, avec un nouvel ensemble de limitations et de compromis à comprendre. par exemple, certaines commandes peuvent ne pas être prises en charge dans un environnement de clustering, plusieurs bases de données peuvent ne pas être prises en charge, les programmeurs doivent savoir quel nœud sert quel sous-ensemble de clés et la recherche de clé dans les clusters peut devenir un problème.

Cache Stampedes arrive souvent

Une fuite en cache est un type d'échec en cascade pouvant être déclenché par un échec aléatoire d'un seul nœud. Cela peut être dû à la dépendance à de mauvais algorithmes de clustering / sharding, ce qui entraîne une charge non équilibrée sur les nœuds restants.

Du point de vue de vos utilisateurs, une empreinte de cache signifie que l’élément qu’ils souhaitent voir ou acheter ne sera pas chargé et finira par expirer. Les utilisateurs, dans leur impatience, abandonnent leur demande ou tentent d'actualiser la page, ce qui aggrave le problème. Dans les deux cas, les résultats peuvent être désastreux pour votre réputation ou votre source de revenus.

(Titima Ongkantong / Shutterstock)

Il existe trois méthodes de traitement de la débandade de la mémoire cache: le verrouillage, le recalcul externe et l’expiration précoce probabiliste. Tous impliquent des modifications de code au niveau de l'application, qui doivent ensuite être «vendues» à des groupes de développement pour qu'ils puissent les intégrer dans leur code afin d'éviter toute récurrence. En fin de compte, aucune de ces méthodes ne résout le problème.

Alors, pourquoi les développeurs d'applications devraient-ils supporter en premier lieu la charge de l'administration du cache et de la base de données? Cela crée une complexité inutile, a une incidence sur la qualité et le délai de mise sur le marché, ainsi que sur l'expérience client. Pourquoi ne pas abandonner complètement la couche de mise en cache et s’appuyer sur une base de données distribuée qui gère tous ces problèmes, sans que l’application soit impliquée?

Réévaluer le besoin de mise en cache externe

Les problèmes susmentionnés de croissance des serveurs, de complexité architecturale, d’instabilité et d’épuisement du cache indiquent qu’une couche de mise en cache externe n’est pas toujours la meilleure stratégie de réussite, en particulier pour les systèmes avec des charges de données épineuses ou lourdes et en croissance constante.

L'époque de la couche de mise en cache externe en tant qu'architecture de facto en termes de performances et d'échelle est révolue. La croissance des données et la pression continue à la baisse sur les temps de réponse ont rendu cette technologie obsolète pour de nombreux cas d'utilisation. Il est temps de remettre en question les idées actuelles sur les meilleures pratiques et les architectures acceptées. Une architecture de mémoire hybride est la clé du succès actuel et futur des entreprises en transformation numérique.

A propos de l'auteur: Srini Srinivasan est directrice des produits et fondatrice de Aérospike, développeur d’une base de données non relationnelle de niveau entreprise. Il a deux décennies d'expérience dans la conception, le développement et l'exploitation d'infrastructures à grande échelle. Il a également plus de 30 brevets dans les technologies de bases de données, Web, mobiles et systèmes distribués. Il a cofondé Aerospike pour résoudre les problèmes de dimensionnement qu'il rencontrait avec Internet et les systèmes mobiles alors qu'il était directeur principal de l'ingénierie chez Yahoo.

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.