A look at the top reasons why teams decide to leave DynamoDB: throttling, latency, item size limits, and limited flexibility…not to mention costs Disclaimer complet: J'aime DynamoDB. Il a été prouvé à l'échelle et est le back-end que de nombreux leaders de l'industrie utilisent depuis de nombreuses années pour alimenter les charges de travail critiques pour les entreprises. Il s'intègre également très bien dans l'écosystème AWS, ce qui le rend super facile à démarrer, à intégrer avec d'autres produits AWS et à s'y tenir à mesure que votre entreprise grandit. Disclaimer complet: J'aime DynamoDB. Il a été prouvé à l'échelle et est le back-end que de nombreux leaders de l'industrie utilisent depuis de nombreuses années pour alimenter les charges de travail critiques pour les entreprises. Il s'intègre également très bien dans l'écosystème AWS, ce qui le rend super facile à démarrer, à intégrer avec d'autres produits AWS et à s'y tenir à mesure que votre entreprise grandit. Avec une croissance massive, les coûts deviennent une préoccupation naturelle pour la plupart des entreprises là-bas, et DynamoDB est assez souvent cité comme l'une des principales raisons des factures en fuite en raison de sa Modèle de service. Paiement par opérations Vous pensez probablement: Oh, c'est encore un autre article qui tente de me convaincre que les coûts de DynamoDB sont trop élevés, et que je devrais passer à votre base de données, que vous allez affirmer est moins cher. " Bien que les coûts soient certainement une considération importante lors de la sélection d'une solution de base de données (et ScyllaDB offre des performances de prix assez impressionnantes par rapport à DynamoDB), ce n'est pas toujours la considération la plus critique. Si les coûts sont une considération critique pour vous, il y a beaucoup d'autres ressources que vous pouvez examiner. ScyllaDB vs. DynamoDB Benchmark: Comparer les performances des prix sur les charges de travail Article d'Alex Debrie sur Comment penser aux coûts de DynamoDB Le prix très complet d'Amazon DynamoDB de Tobias Schmidt expliqué Mais passons au récit et discutons d’autres aspects que vous devriez prendre en compte lors de la décision de vous éloigner de DynamoDB. HTTPS://WW.SCYLLADB.COMDynamoDB Cost Optimization MasterclassCette masterclass vous enseignera des stratégies sur l'optimisation des coûts DynamoDB et d'autres alternatives AWS pour répondre à vos besoins techniques. HTTPS://WW.SCYLLADB.COMDynamoDB Cost Optimization MasterclassCette masterclass vous enseignera des stratégies sur l'optimisation des coûts DynamoDB et d'autres alternatives AWS pour répondre à vos besoins techniques. HTTPS://WW.SCYLLADB.COMDynamoDB Cost Optimization MasterclassCette masterclass vous enseignera des stratégies sur l'optimisation des coûts DynamoDB et d'autres alternatives AWS pour répondre à vos besoins techniques. HTTPS://WW.SCYLLADB.COMDynamoDB Cost Optimization MasterclassCette masterclass vous enseignera des stratégies sur l'optimisation des coûts DynamoDB et d'autres alternatives AWS pour répondre à vos besoins techniques. HTTPS://WWW.CYLLADB.COM à partir de DynamoDB Masterclass d'optimisation des coûts Cette masterclass vous enseignera des stratégies sur les optimisations de coûts DynamoDB et d'autres alternatives AWS pour répondre à vos besoins techniques. DynamoDB Throttling Rien n’est amusant dans ce contexte : voir Si vous l’avez vu, vous l’avez probablement détesté et appris à vivre avec. Certains peuvent même prétendre l’aimer après l’avoir bien compris. ProvisionedThroughputExceededException Il existe une variété de façons dont vous pouvez devenir victime de l'attaque de DynamoDB. En fait, il arrive si souvent qu'AWS a même un L’une des recommandations ici est de « passer au mode à la demande » avant de discuter de modèles d’accès uniformément distribués. Page dédiée à la résolution de problèmes Le principal problème avec le détournement de DynamoDB est qu’il nuit considérablement aux latences. Les charges de travail avec une distribution Zipfian sont susceptibles de le faire... et les résultats obtenus dans une référence récente ne sont pas beaux: Au cours de ce référentiel, il est devenu évident que le goutillage pourrait faire que la partition affectée devienne inaccessible jusqu'à Cela augmente considérablement les latences de la queue de votre P99. 2.5 seconds Bien qu'il soit vrai que la plupart des bases de données ont un mécanisme de throttling intégré, le throttling DynamoDB est tout simplement trop agressif.Il est peu probable que votre application puisse évoluer davantage s'il arrive d'accéder fréquemment à un ensemble spécifique d'éléments traversant la partition DynamoDB ou les limites de table. L’intuition pourrait dire : « Eh bien, si nous atteignons les limites de DynamoDB, alors mettons un cache devant lui ! » Il est – en fait – particulièrement difficile de trouver des nombres durs sur les critères précis de DynamoDB Accelerator pour le throttling, qui semble cibler principalement l’utilisation de la CPU (ce qui n’est pas le cas). ) de Téléchargez vous en bas Meilleurs critères pour le loading shedding DynamoDB Latence Vous pouvez affirmer que la distribution Zipfian montrée ci-dessus cible le talon d’Achille de DynamoDB, et que la solution AWS convient mieux aux charges de travail qui suivent un type de distribution uniforme. Même à l'intérieur de la douceur de DynamoDB, les latences P99 sont considérablement plus élevées par rapport à ScyllaDB dans une variété de scénarios. Bien sûr, vous pouvez atteindre des latences DynamoDB plus faibles que celles présentées ici. Néanmoins, DynamoDB tombe court lorsque nécessaire pour fournir des dépassements plus élevés, ce qui provoque des latences pour finalement commencer à dégrader. Une façon d'éviter de tels pics est d'utiliser DynamoDB Accelerator (ou toute autre solution de cache, vraiment) pour un grand boost de performance.Comme promis, je ne vais pas entrer dans la discussion des coûts ici, mais plutôt souligner que les latences promises de millisecondes à un seul chiffre de DynamoDB sont plus difficiles à atteindre en pratique. Pour en savoir plus sur la raison pour laquelle placer un cache devant votre base de données est souvent une mauvaise idée, vous voudrez peut-être regarder cette vidéo sur . Remplacer votre cache avec ScyllaDB DynamoDB Limites de taille Chaque base de données a une limite de taille d'élément, y compris DynamoDB. Cependant, la limite de 400KB peut finalement devenir trop restrictive pour vous. Alex DeBrie jette un peu de lumière sur cela et explique minutieusement certaines des raisons derrière cela dans son : Blog sur DynamoDB limites DynamoDB vous indique comment modéliser vos données dans une base de données OLTP. Les systèmes de traitement des transactions en ligne (ou OLTP) se caractérisent par de grandes quantités de petites opérations contre une base de données. (...) Pour ces opérations, vous voulez filtrer rapidement et efficacement sur des champs spécifiques pour trouver les informations que vous voulez, comme un nom d'utilisateur ou un identifiant Tweet. DynamoDB vous indique comment modéliser vos données dans une base de données OLTP. Les systèmes de traitement des transactions en ligne (ou OLTP) se caractérisent par de grandes quantités de petites opérations contre une base de données. (...) Pour ces opérations, vous voulez filtrer rapidement et efficacement sur des champs spécifiques pour trouver les informations que vous voulez, comme un nom d'utilisateur ou un identifiant Tweet. Bien qu'il soit vrai que les charges utiles plus petites (ou les éléments) fourniront généralement des latences améliorées, imposer une limite dure peut ne pas être la meilleure idée. utilisateurs ScyllaDB qui ont décidé d'abandonner l'écosystème DynamoDB mentionnent souvent cette limite, la positionnant comme un blocage majeur pour leur fonctionnalité d'application. Si vous ne pouvez pas stocker de tels éléments dans DynamoDB, que faites-vous? Vous pouvez probablement trouver des stratégies telles que compresser les parties pertinentes de votre charge utile ou les stocker sur d'autres supports, tels que AWS S3. De toute façon, la solution devient sous-optimale. Chez ScyllaDB, nous prenons une approche différente : une peut être aussi grand que 16 Mo par défaut (ceci est configurable). Nous pensons que vous devriez être en mesure de décider ce qui fonctionne le mieux pour vous et votre application. mutation Parlons de la liberté : parlons de... F limitée de DynamoDB Légitimité Réécouter Réécouter Cette dernière est assez facile. DynamoDB s'intègre parfaitement dans l'écosystème AWS. Mais c'est précisément là que se termine le bénéfice. Dès que vous vous engagez dans une stratégie multi-cloud ou décidez de passer à un autre fournisseur de cloud, ou peut-être de revenir sur le terrain (ne commencez pas sur AWS Outposts!), vous aurez inévitablement besoin de trouver un autre endroit pour vos charges de travail. Bien sûr, vous ne pouvez PAS prédire l’avenir, mais vous pouvez éviter les problèmes futurs.C’est ce qui distingue les bons ingénieurs des ingénieurs brillants : si votre solution est prête à répondre aux exigences croissantes de votre organisation. Après tout, vous ne voulez pas vous retrouver dans une situation où vous devez apprendre une nouvelle technologie, changer votre application, effectuer des tests de charge dans le nouveau DBMS, migrer des données, potentiellement évaluer plusieurs fournisseurs... Très souvent, cela peut devenir un projet pluriannuel en fonction de la taille de votre organisation et du nombre de charges de travail impliquées. Les charges de travail DynamoDB conviennent naturellement à ScyllaDB. Plus souvent que non, vous pouvez simplement suivre la même modélisation de données que vous avez déjà dans DynamoDB et l'utiliser sur ScyllaDB. - pour vous permettre de migrer sans heurts si vous voulez continuer à utiliser la même API pour communiquer avec votre base de données, nécessitant ainsi moins de changements de code. ScyllaDB Alternator – une API compatible avec DynamoDB open source Commentaires définitifs Il couvre un certain nombre d'histoires réelles intéressantes, dont certaines touchent les points que nous avons abordés ici. Malgré le feedback communautaire notoire, il comprend une liste équitable d'autres considérations que vous pourriez vouloir être au courant avant de vous attacher à DynamoDB. Les gens, ne me faites pas démarrer sur DynamoDB... Néanmoins, la première phrase de cet article reste vraie: J'aime DynamoDB. C'est une excellente solution et une solution économique lorsque votre entreprise ou votre cas d'utilisation a de faibles exigences de débit ou n'est pas dérangé par des pics de latence inattendus. Au fur et à mesure que vous grandissez, la modélisation des données et l'assurance que vous ne dépassez pas les limites difficiles de DynamoDB peuvent devenir particulièrement difficiles.Plus vous serez coincé, et peut finalement nécessiter un effort considérable et une planification si la direction de votre organisation change. Lors de la sélection d'une base de données, il s'agit finalement de choisir le bon outil pour le travail. ScyllaDB n'est en aucun cas un remplacement pour chaque cas d'utilisation de DynamoDB. Avec de faibles latences, ScyllaDB est invariablement le bon choix. predictable