Amazon, con su plataforma basada en Perl, Linux, Xen, y ahora Erlang, realmente le está sacando punta al software libre.
Pero veamos de que se trata este nuevo servicio que es el sueño mojado de los desarrolladores de la web 2.0.
SimpleDB no funciona como una base de datos relacional, no se necesita definir un esquema, en este sentido parece seguir la tendencia a la desaparición de las bases de datos relacionales, que mencioné en un artículo anterior.
Las características que más me gustan de este servicio:
- Manipulación de conjuntos de datos realmente grandes (10GB por dominio y hasta 100 dominios por usuario)
- Muy rápido (espero que se mantenga así)
- Modelo de computación por demanda (solo se paga por lo que se usa)
- Modelo de datos similar al utilizado por los lenguajes de scripts (Perl, Python, etc.), sin necesidad de definir esquemas.
- Interfaz REST y también SOAP.
- Fácil de usar, como los hashes en Perl :-)
- Hecho en Erlang, me pregunto si usaron CouchDB ;-)
Sin embargo, hay que considerar algunos detalles operacionales:
- Al igual que el servicio S3, los objetos almacenados no están disponibles inmediatamente, hasta que están replicados y se puede garantizar la disponibilidad de los mismos, de este modo Amazon se olvida de la C en ACID, para garantizar la durabilidad.
- Todo es texto, las consultas se hacen lexicográficamente, así que los números deben formatearse apropiadamente, las fechas deben almacenarse en ISO-8601 (pero todos ustedes ya hacen esto, no?).
Para todos aquellos acostumbrados a lenguajes como Perl, Ruby, Python, etc. pueden imaginarse la estructura de datos como un arreglo que contiene hashes cuyos valores pueden ser escalares o listas.
El lenguaje de búsqueda provee los operadores: =, !=, <, >, <=, >=, STARTS-WITH, AND, OR, NOT, INTERSECTION AND UNION, pero las consultas están limitadas a un máximo de 5 segundos (aunque ninguna consulta de las que pude probar en las 8 horas que tiene el servicio, tardo más de algunos milisegundos).
Hay que mencionar que los costos de almacenamiento son muy superiores a los de S3, mientras que en este último almacenar un 1GB cuesta $0.15, en SimpleDB cuesta $1.50, es decir 10 veces más caro, aunque se puede transferir datos gratuitamente entre S3 y SimpleDB.
1 comentario:
Sencillamente fantástico
Muchas gracias por todos tus artículos
Siempre tengo muchas dificultades tratando de explicar las bondades de lenguajes declarativos y sistemas altamente paralelizables (seguramente es porque estoy muy lejos de dominarlos)
Tus artículos me ayudan mucho,
Gracias otra vez
Publicar un comentario