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 completo: Me encanta DynamoDB. Se ha probado a escala y es el back-end que muchos líderes de la industria han utilizado para alimentar cargas de trabajo críticas a los negocios durante muchos años. También se ajusta bien dentro del ecosistema de AWS, lo que hace que sea muy fácil comenzar, integrarse con otros productos de AWS y mantenerse con él a medida que su empresa crece. Disclaimer completo: Me encanta DynamoDB. Se ha probado a escala y es el back-end que muchos líderes de la industria han utilizado para alimentar cargas de trabajo críticas a los negocios durante muchos años. También se ajusta bien dentro del ecosistema de AWS, lo que hace que sea muy fácil comenzar, integrarse con otros productos de AWS y mantenerse con él a medida que su empresa crece. Con el crecimiento masivo, los costos se convierten en una preocupación natural para la mayoría de las empresas allí, y DynamoDB es bastante a menudo citado como una de las razones principales para las facturas de fuga debido a su El modelo de servicio. Pagos por operaciones Probablemente estés pensando: Oh, este es otro post que intenta convencerme de que los costos de DynamoDB son demasiado altos, y debería cambiar a su base de datos, que usted dirá que es menos caro”. Aunque los costos son definitivamente una consideración importante cuando se selecciona una solución de base de datos (y ScyllaDB ofrece un rendimiento de precio bastante impresionante en comparación con DynamoDB), no siempre es la consideración más crítica. Si los costos son una consideración crítica para usted, hay muchos otros recursos que puede revisar. ScyllaDB vs. DynamoDB Benchmark: Comparando el rendimiento de los precios a través de las cargas de trabajo Artículo de Alex Debrie sobre Cómo debe pensar sobre los costos de DynamoDB El precio muy completo de Amazon DynamoDB de Tobias Schmidt explicado Pero cambiemos la narración y discutiremos otros aspectos que debes tener en cuenta al decidir si cambiar de DynamoDB. HTTPS://WW.SCYLLADB.COMDynamoDB Cost Optimization MasterclassEsta masterclass te enseñará estrategias sobre optimizaciones de costes de DynamoDB y otras alternativas de AWS para adaptarse a tus necesidades técnicas. HTTPS://WW.SCYLLADB.COMDynamoDB Cost Optimization MasterclassEsta masterclass te enseñará estrategias sobre optimizaciones de costes de DynamoDB y otras alternativas de AWS para adaptarse a tus necesidades técnicas. HTTPS://WW.SCYLLADB.COMDynamoDB Cost Optimization MasterclassEsta masterclass te enseñará estrategias sobre optimizaciones de costes de DynamoDB y otras alternativas de AWS para adaptarse a tus necesidades técnicas. HTTPS://WWW.CYLLADB.COM en WEB Optimización de costes de DynamoDB Masterclass Esta masterclass le enseñará estrategias sobre optimización de costes de DynamoDB y otras alternativas de AWS para adaptarse a sus necesidades técnicas. HTTPS://WWW.CYLLADB.COM en WEB Optimización de costes de DynamoDB Masterclass Esta masterclass le enseñará estrategias sobre optimización de costes de DynamoDB y otras alternativas de AWS para adaptarse a sus necesidades técnicas. Desarrollo DynamoDB Throttling Entrenar en cualquier contexto no es divertido. Si lo has visto, probablemente lo has odiado y has aprendido a vivir con él.Algunos incluso pueden afirmar que lo aman después de comprenderlo completamente. ProvisionedThroughputExceededException Hay una variedad de maneras de convertirse en una víctima de DynamoDB throttling. De hecho, sucede tan a menudo que AWS incluso tiene una Una de las recomendaciones aquí es “switch to on-demand mode” antes de discutir realmente los patrones de acceso distribuidos uniformemente. Página dedicada a la resolución de problemas El principal problema con el throttling de DynamoDB es que daña considerablemente las latencias.Las cargas de trabajo con una distribución Zipfian son propensas a ello... y los resultados obtenidos en una referencia reciente no son bonitos: Durante ese índice de referencia, se hizo evidente que el throttling podría hacer que la partición afectada se hiciera inaccesible durante hasta Esto incrementa enormemente las latencias de la cola de su P99. 2.5 seconds Si bien es cierto que la mayoría de las bases de datos tienen algún mecanismo de throttling integrado, el throttling de DynamoDB es simplemente demasiado agresivo. Es poco probable que su aplicación pueda escalar más si sucede que accede con frecuencia a un conjunto específico de elementos cruzando los límites de la partición o tabla de DynamoDB. La intuición podría decir: “Bueno, si estamos golpeando los límites de DynamoDB, entonces pongamos una caché delante de ella!” Es -de hecho- particularmente difícil encontrar números duros en los criterios precisos de DynamoDB Accelerator para el throttling, que parece dirigido principalmente a la utilización de la CPU (que no es la ) de Gritando hacia abajo Los mejores criterios para la descarga de carga Latencia de DynamoDB Puede argumentar que la distribución Zipfian mostrada anteriormente se dirige al talón de Aquiles de DynamoDB, y que la solución de AWS es una mejor opción para cargas de trabajo que siguen un tipo uniforme de distribución. Incluso dentro del punto dulce de DynamoDB, las latencias de P99 son considerablemente mayores en comparación con ScyllaDB en una variedad de escenarios. Por supuesto, es posible que pueda alcanzar latencias de DynamoDB más bajas que las presentadas aquí. Sin embargo, DynamoDB cae corto cuando se requiere para entregar mayores rendimientos, causando que las latencias eventualmente comiencen a degradarse. Una de las maneras de evitar tales picos es usar DynamoDB Accelerator (o cualquier otra solución de caché, realmente) para un gran impulso de rendimiento.Como prometido, no voy a entrar en la discusión de costos aquí, sino que señala que las latencias de milisegundos de un dígito prometidas de DynamoDB son más difíciles de lograr en la práctica. Para saber más sobre por qué colocar una caché delante de su base de datos a menudo es una mala idea, es posible que desee ver este vídeo en . Reemplazar su caché con ScyllaDB Límites de tamaño del elemento DynamoDB Cada base de datos tiene un límite de tamaño de elemento, incluyendo DynamoDB. Sin embargo, el límite de 400KB puede eventualmente convertirse en demasiado restrictivo para usted. : Blog sobre DynamoDB “Entonces, ¿cuáles son las razones de esta limitación? DynamoDB le está indicando cómo debe modelar sus datos en una base de datos OLTP. Los sistemas de procesamiento de transacciones en línea (o OLTP) se caracterizan por grandes cantidades de pequeñas operaciones contra una base de datos. (...) Para estas operaciones, desea filtrar rápidamente y eficientemente en campos específicos para encontrar la información que desea, como un nombre de usuario o un ID de Tweet. “Entonces, ¿cuáles son las razones de esta limitación? DynamoDB le está indicando cómo debe modelar sus datos en una base de datos OLTP. Los sistemas de procesamiento de transacciones en línea (o OLTP) se caracterizan por grandes cantidades de pequeñas operaciones contra una base de datos. (...) Para estas operaciones, desea filtrar rápidamente y eficientemente en campos específicos para encontrar la información que desea, como un nombre de usuario o un ID de Tweet. Aunque es cierto que las cargas de utilidad más pequeñas (o elementos) generalmente proporcionan latencias mejoradas, imponer un límite duro puede no ser la mejor idea. usuarios de ScyllaDB que decidieron abandonar el ecosistema DynamoDB a menudo mencionan este límite, posicionándolo como un bloqueador importante para su funcionalidad de aplicación. Si no puedes almacenar tales elementos en DynamoDB, ¿qué haces? probablemente llegas con estrategias como comprimir las partes relevantes de tu carga útil o almacenarlas en otros medios, como AWS S3. De cualquier manera, la solución se vuelve suboptimal. En ScyllaDB, tomamos un enfoque diferente: Una única puede ser tan grande como 16 MB por defecto (esto es configurable). Creemos que usted debe ser capaz de decidir qué funciona mejor para usted y su aplicación. mutation Hablando de la libertad: hablemos de... El F limitado de DynamoDB Legibilidad Reedón Reedón Este es bastante fácil. DynamoDB se integra perfectamente dentro del ecosistema de AWS. Pero eso es exactamente donde termina el beneficio. tan pronto como se involucre en una estrategia de nube múltiple o decida cambiar a otro proveedor de nube, o tal vez retroceda a on-prem (no me empiece en AWS Outposts!), inevitablemente tendrá que encontrar otro lugar para sus cargas de trabajo. Por supuesto, no puedes predecir el futuro, pero puedes evitar problemas futuros.Eso es lo que diferencia a los ingenieros buenos de los brillantes: si tu solución está lista para hacer frente a las crecientes demandas de tu organización. Después de todo, no quieres encontrarte en una posición en la que necesites aprender una nueva tecnología, cambiar tu aplicación, realizar pruebas de carga en el nuevo DBMS, migrar datos, potencialmente evaluar a varios proveedores... Muy a menudo, esto puede convertirse en un proyecto de varios años dependiendo del tamaño de tu organización y el número de cargas de trabajo involucradas. Las cargas de trabajo de DynamoDB son naturalmente un buen ajuste para ScyllaDB. Más a menudo que no, puede seguir simplemente el mismo modelo de datos que ya tiene en DynamoDB y usarlo en ScyllaDB. Para permitirle migrar sin problemas si desea seguir utilizando la misma API para comunicarse con su base de datos, necesitando menos cambios de código. ScyllaDB Alternator – una API compatible con DynamoDB de código abierto Observaciones finales es un post Reddit agradable que puede querer revisar. cubre una serie de historias interesantes de la vida real, algunas de las cuales tocan los puntos que hemos cubierto aquí. A pesar del notorio feedback de la comunidad, incluye una lista justa de otras consideraciones que puede querer ser consciente de antes de seguir con DynamoDB. No me pongas en DynamoDB... Sin embargo, la primera frase de este artículo sigue siendo verdadera: me encanta DynamoDB. Es una gran solución y una solución económica cuando su empresa o caso de uso tiene bajos requisitos de rendimiento o no se molesta por algunos picos de latencia inesperados. A medida que crezca, modelar los datos y asegurarse de que no sobrepase los límites duros de DynamoDB puede convertirse en un desafío particular. Al seleccionar una base de datos, en última instancia, se trata de elegir la herramienta adecuada para el trabajo. ScyllaDB no es de ninguna manera un reemplazo para cada caso de uso de DynamoDB allí. bajas latencias, ScyllaDB es invariablemente la elección correcta. predictable