Articulo de referencia

Amazon SimpleDB

Logotipo de SimpleDB Amazon SimpleDB es una base de datos distribuida escrita en Erlang [ 1 ] por Amazon.com . Se utiliza como un servicio web junto con Amazon Elastic Compute C...

Logotipo de SimpleDB

Amazon SimpleDB es una base de datos distribuida escrita en Erlang [ 1 ] por Amazon.com . Se utiliza como un servicio web junto con Amazon Elastic Compute Cloud (EC2) y Amazon S3 , y forma parte de Amazon Web Services . Fue anunciada el 13 de diciembre de 2007. [ 2 ]

Al igual que con EC2 y S3, Amazon cobra tarifas por el almacenamiento, la transferencia y el rendimiento de SimpleDB a través de Internet. El 1 de diciembre de 2008, Amazon introdujo nuevos precios con el Nivel Gratuito [ 3 ] para 1 GB de datos y 25 horas de máquina. La transferencia a otros servicios de Amazon Web Services es gratuita. [ 2 ]

Limitaciones

SimpleDB proporciona consistencia eventual , que es una forma más débil de consistencia en comparación con otros sistemas de gestión de bases de datos . Esto suele considerarse una limitación, ya que es más difícil de comprender, lo que dificulta la escritura de programas correctos que utilicen SimpleDB. Esta limitación es el resultado de una compensación fundamental en el diseño. Al renunciar a la consistencia, el sistema logra otras dos propiedades muy deseables:

  1. Disponibilidad: es posible que algunos componentes del sistema fallen, pero el servicio seguirá funcionando correctamente.
  2. Tolerancia a particiones: los componentes del sistema están conectados mediante una red informática . Si los componentes no pueden comunicarse entre sí a través de la red (una condición conocida como partición de red ), el sistema seguirá funcionando.

Se asume que las fallas de los componentes son inevitables; por lo tanto, se consideró que ambas propiedades eran necesarias para brindar un servicio web confiable . El teorema CAP establece que no es posible que un sistema presente estas propiedades junto con la consistencia; por lo tanto, los diseñadores deben conformarse con una forma más débil de consistencia.

Limitaciones publicadas: [ 4 ]

Limitaciones de la tienda

Limitaciones de consulta

Características

Inserción y eliminación condicional

Las operaciones de inserción condicional y eliminación condicional son nuevas operaciones que se agregaron en febrero de 2010. Resuelven un problema que surge al acceder a SimpleDB simultáneamente. Consideremos un programa sencillo que utiliza SimpleDB para almacenar un contador, es decir, un número que se puede incrementar. El programa debe realizar tres acciones:

  1. Recupera el valor actual del contador desde SimpleDB.
  2. Suma uno al valor.
  3. Almacena el nuevo valor en el mismo lugar que el valor anterior en SimpleDB.

Si este programa se ejecuta sin que ningún otro acceda a SimpleDB, funcionará correctamente; sin embargo, a menudo es conveniente que las aplicaciones de software (en particular, las aplicaciones web ) accedan a los mismos datos simultáneamente. Cuando se accede a los mismos datos de forma concurrente, se produce una condición de carrera que podría provocar una pérdida de datos indetectable.

Siguiendo con el ejemplo anterior, consideremos dos procesos, A y B, que ejecutan el mismo programa. Supongamos que SimpleDB atiende solicitudes de datos, como se describe en el paso 1, tanto de A como de B. Ambos procesos ven el mismo valor. Digamos que el valor actual del contador es 0. Debido a los pasos 2 y 3, A intentará almacenar 1. B intentará hacer lo mismo; por lo tanto, el valor final del contador será 1, aunque el valor final esperado sea 2, porque el sistema intentó dos operaciones de incremento, una por parte de A y otra por parte de B.

Este problema se puede resolver mediante el uso de la operación de inserción condicional. Supongamos que modificamos el paso 3 de la siguiente manera: en lugar de almacenar el nuevo valor incondicionalmente, el programa le pide a SimpleDB que lo almacene solo si el valor actual coincide con el valor recuperado en el paso 1. De esta forma, podemos asegurarnos de que el valor del contador aumente. Esto introduce cierta complejidad adicional; si SimpleDB no puede almacenar el nuevo valor porque el valor actual no era el esperado, el programa debe repetir los pasos 1 a 3 hasta que la operación de inserción condicional modifique el valor almacenado.

Lectura consistente

La lectura consistente fue una nueva función que se lanzó al mismo tiempo que la inserción condicional y la eliminación condicional. Como su nombre indica, la lectura consistente resuelve los problemas que surgen debido al modelo de consistencia eventual de SimpleDB (véase la sección Limitaciones ). Considere la siguiente secuencia de operaciones:

  1. El programa A almacena algunos datos en SimpleDB.
  2. Inmediatamente después, A solicita los datos que acaba de almacenar.

La garantía de consistencia eventual de SimpleDB no nos permite afirmar que los datos recuperados en el paso 2 reflejen las actualizaciones realizadas en el paso 1. La consistencia eventual solo garantiza que el paso 2 refleje el conjunto completo de actualizaciones del paso 1, o ninguna de ellas. Se puede utilizar una lectura consistente para asegurar que los datos recuperados en el paso 2 reflejen los cambios del paso 1.

La razón por la que pueden surgir resultados inconsistentes cuando no se utiliza la operación de lectura consistente es que SimpleDB almacena los datos en múltiples ubicaciones (para garantizar su disponibilidad), y es posible que los nuevos datos del paso 1 no se hayan escrito en todas las ubicaciones cuando SimpleDB recibe la solicitud de datos en el paso 2. En ese caso, es posible que la solicitud de datos del paso 2 se atienda en una de las ubicaciones donde aún no se han escrito los nuevos datos.

Amazon desaconseja el uso de lecturas consistentes, a menos que sean necesarias para garantizar la corrección. El motivo de esta recomendación es que la frecuencia de procesamiento de las operaciones de lectura consistente es menor que la de las lecturas regulares.

Relación con DynamoDB

Se ha hablado de que SimpleDB será reemplazado por DynamoDB (ya no se está "iterando", [ 6 ] aunque Amazon no planea eliminarlo). DynamoDB parece ser su sucesor. [ 7 ] [ 8 ]

Véase también

Referencias

  1. Lo que necesitas saber sobre Amazon SimpleDB
  2. 1 2 "AWS | Amazon SimpleDB – Servicio de base de datos simple" . Amazon Web Services, Inc.
  3. SimpleDB - Nivel gratuito - Un cambio en los precios de AWS Archivado el 25/12/2008 en Wayback Machine
  4. "Límites", Guía para desarrolladores de SimpleDB , Amazon(API última versión).
  5. Solicitud para aumentar la asignación de dominios de Amazon SimpleDB . Aws.amazon.com. Consultado el 9 de agosto de 2013.
  6. "Foros de desarrolladores de AWS: ¿El futuro de SimpleDB?..." forums.aws.amazon.com .
  7. http://aws.amazon.com/dynamodb/faqs/#How_does_Amazon_DynamoDB_differ_from_Amazon_SimpleDB_Which_should_I_use Dynamo se creó "para abordar las limitaciones de SimpleDB".
  8. "Amazon DynamoDB: un servicio de base de datos NoSQL rápido y escalable diseñado para aplicaciones a escala de Internet - All Things Distributed" . www.allthingsdistributed.com . 18 de enero de 2012.
  • Página principal oficial de Amazon SimpleDB