16 marzo, 2008

Desarrollando una aplicación con SimpleDb

Alex Bosworth ha creado un foro usando la nueva SimpleDB de Amazon, y los resultados no parecen muy alentadores:

  • No hay ordenación, lo que obliga a realizar continuamente toda clase de rodeos para evitar esta característica. Además prácticamente obliga a devolver todos los registros para poder hacer la ordenación manualmente.
  • Los datos están limitados a 1024 bytes. La solución no es trivial, si se pretende segmentar la información en bloques de ese tamaño, no hay garantías de volver a obtener la información correcta al no existir ordenación (punto anterior). La alternativa es usar Amazon S3 para estos casos, pero parece demasiado engorroso.
  • No hay identificadores autoincrementales, por lo que hay que apañarselas para generar cadenas únicas que identifiquen los registros. La hora exacta actual puede ser una buena idea.
  • No hay consistencia, por lo que la información puede tardar hasta 20 segundos en verse reflejada por parte de Amazon. Eso quiere decir que si después de insertar información se vuelve a cargar una página (algo que hacemos casi todos siempre), es posible que el dato acabado de introducir no aparezca con lo que ello implica.
  • No hay tipos. Lo cual puede verse como algo positivo, pero que no lo es tanto cuando se echa a faltar el "null", lo que distingue la falta de valor en un campo. Eso implica que al introducir un nuevo campo en una tabla hay que inicializar el valor en todos los registros existentes.
  • No es posible obtener multiples filas de datos. Para la aplicación que ha creado Alex, mostrar la primera página le requiere obtener todos los registros de la tabla de hilos y también todos los registros de la de mensajes, debido una vez más a que no existe ordenación. Esto puede además disparar la factura que se le paga a Amazon mensualmente, ya que son factores el ancho de banda y el número de consultas.
En definitiva, hay que felicitar a Amazon por haberse atrevido a ofrecer un servicio que literalmente rompe esquemas, pero quizás se han apresurado demasiado o quizás deberían haber estudiado con más profundidad a CouchDB, que, aunque también está en pañales, ofrece características muy interesantes.

Publicar un comentario en la entrada

Últimos links en indiza.com