DynamoDB One Year Later: Bigger, Better, and 85% Cheaper…
allthingsdistributed.com
allthingsdistributed.com
I agree it could save you a LOT of cash, but, assume you ran Mongo or PostgreSQL, then if you aren't satisfied with provider A, you can dump them and migrate your data to provider B, let alone all the modifications you can make on top of these Open source databases...Sure, you may face downtime, but that's not as bad as being locked into a proprietary database that you have no control over.
Someone please correct me if I'm wrong..
B) How does this compare to LinkedIn's Voldemort (which seems to be inspired from Amazon's Dynamo[1])? Voldemort has a lot of positive feedback from real world applications running at Scale, I guess.
[1]http://blog.linkedin.com/2009/03/20/project-voldemort-scalin...
Just renting EC2s like expensive VPSs does not make much sense, but using DynamoDB, SimpleDB, Elastic MapReduce, etc. as appropriate and in effect composing systems from your own and Amazon's services seems like the modern way to do things.
At $0.25 / GB / month it's now roughly 2.5x the cost of EBS disk-based storage, and you're only charged for data as you use it, with no need to reserve it ahead of time.
The alternative of running postgres or mongodb on an ebs-backed ec2 instance just got a lot less attractive to me.
Way to go, Amazon!
Run your project for a month, analyse the usage, and reserve that same capacity for a whole year, for the price of only 3 more months usage!
If your project has fairly consistent (or growing) usage, and is going to run for more than 3 months, it really doesn't need much more thought.
The sweet spot is combining DynamoDB and a relational database into a seamless system that lets you use the power and scalability of DynamoDB when all that is needed is a simple lookup, and the complex queries of SQL when you need a detailed time range based report.
They used to only support unsigned integers, so happy hacking when storing unix time before 1970. However, this seems to have been fixed.
Personally, I will hold off another year before using dynamoDb again. It takes time for a project to mature.
Why would I store unstructured blobs in DynamoDB anyway if I have much cheaper S3 at disposal.
It's not the first time I've read this: Google also has similar problems and fixed it with a DB (or DBs ?) of their own. In Google's case, AFAICT, it's also a gigantic key/value store on which monstrous map/reduce are done.
My question is simple: up to which amount of data and for which use cases do SQL still work? In other words, at which point do you need something else than SQL simply because SQL ain't cutting it anymore?
Things like joins and foreign key constraints can be very slow on widely distributed relational databases, so you end up dropping more and more functionality from your SQL to keep the performance to a maximum.
Eventually you pull out so much of the functionality from your relational database, that you end up running individual very narrow queries, and very short transactions, that you more closely mirror a key/value store than a traditional RDBMS like Oracle.
Of course, when you're someone like Amazon, then TB's of data is considered fairly small.