Live data from Hacker News

Amazon DynamoDB – a Fast and Scalable NoSQL Database Service from AWS

allthingsdistributed.com

131–135 of 135 posts

Re: Amazon DynamoDB – a Fast and Scalable NoSQL Database Service from AWS

#131
post #116

Earlier quoted context omitted.

Can you please explain your math? AFAIK Azure txns are not paid by the hour - they are a flat cost of $.01 per 10000 storage txns. If you do batched GETs and PUTs you make only 550 txns (55000/100 entites/batch). http://www.windowsazure.com/en-us/home/tour/storage/ I agree that Dynamo's provisioned throughput capacity is a very useful feature though. Azure does not provide any such performance guarantee; the throughp…

I should have explained that my costs were calculated on a "per day" assumption. Thus the costs are for: 5000 x 60 x 60 x 24 = 432000000 Writes 50000 x 60 x 60 x 24 = 4320000000 Reads (432000000/10000) x 0.01 = $432 (4320000000/10000) x 0.01 = $4320 Azure Total Cost For One Days Use: $4752 ((5000/10) x 0.01) x 24 = $120 ((50000/50) x 0.01) x 24 = $240 AWS Total Cost For One Days Use: $360 You are right that I don't t…

Your math is right, except you missed a factor for Dynamo - Unit size.

http://aws.amazon.com/dynamodb/#pricing

If your txns are all within 1KB, your math holds good; otherwise, you pay more. Interesting model, but I suspect it'll average out to similar costs.

Re: Amazon DynamoDB – a Fast and Scalable NoSQL Database Service from AWS

#132
post #124

Earlier quoted context omitted.

The official documentation seems to clearly contradict you. The pricing calculator doesn't let you specify a value of less than 1KB. Who's right? Or maybe I'm just not understanding what either you or the official pricing doc is saying :)

From the pricing page ( http://aws.amazon.com/dynamodb/pricing ): --- If your items are less than 1KB in size, then each unit of Read Capacity will give you 1 read/second of capacity and each unit of Write Capacity will give you 1 write/second of capacity. For example, if your items are 512 bytes and you need to read 100 items per second from your table, then you need to provision 100 units of Read Capacity. --- Look…

Agree, but Amazon's CTO said something different, hence my question.

Re: Amazon DynamoDB – a Fast and Scalable NoSQL Database Service from AWS

#133
post #132

Earlier quoted context omitted.

From the pricing page ( http://aws.amazon.com/dynamodb/pricing ): --- If your items are less than 1KB in size, then each unit of Read Capacity will give you 1 read/second of capacity and each unit of Write Capacity will give you 1 write/second of capacity. For example, if your items are 512 bytes and you need to read 100 items per second from your table, then you need to provision 100 units of Read Capacity. --- Look…

Agree, but Amazon's CTO said something different, hence my question.

Werner is right. The query operation is able to be more efficient than GetItem and BatchGetItems. To calculate how many units of read capacity will be consumed by a query, take the total size of all items combined and round up to the nearest whole KB. For example, if your query returns 10 items that were each 1KB, then you will consume 10 units of read capacity. If your query returns 10 items that were all 0.1KB, then you will consume only 1 unit of read capacity.

This is currently an undocumented benefit of the query operation, but we will be adding that to our documentation shortly.

Re: Amazon DynamoDB – a Fast and Scalable NoSQL Database Service from AWS

#134
post #32

Earlier quoted context omitted.

No. They offer the equivalent of Amazon S3, SimpleDB and SQS, but nothing comparable to this

Can you elaborate how this is different and not comparable? Azure's table service offers the same automatic partition management, unlimited per-table scalability, composite keys, range queries, and availability guarantees. The linked paper goes into more details.

Balakk is correct. There are a lot of similarities between Windows Azure Tables and DynamoDB, and the release of DynamoDB validates the Data Model we have provided for a few years now with Azure Tables

• They both are NoSQL schema-less table stores, where a table can store entities with completely different properties

• They have a two attribute (property) composite primary key.One property that is used for partitioning and the other property is for optimizing range based operations within a partition

• Both of them have just a single index based on their composite primary key

• Both are built for effectively unlimited table size, seamlessly auto scale out with hands off management

• Similar CRUD operations

How Windows Azure Tables is implemented can be found in this SOSP paper and talk: http://blogs.msdn.com/b/windowsazurestorage/archive/2011/11/...

As mentioned by someone else, one difference is that DynamoDB stores its data completely in SSDs, whereas, in Azure Storage our writes are committed via journaling (to either SSD or a dedicated journal drive) and reads are served from disks or memory if the data page is cached in memory. Therefore, the latency for single entity small writes are typically below 10ms due to our journaling approach (described in the above SOSP paper). Then single entity read times for small entities are typically under 40ms, which is shown in the results here: http://blogs.msdn.com/b/windowsazurestorage/archive/2010/11/...

Once and awhile we see someone saying that they see 100+ms latencies for small single entity reads and that is usually because they need to turn Nagle off, as described here: http://blogs.msdn.com/b/windowsazurestorage/archive/2010/06/...

Re: Amazon DynamoDB – a Fast and Scalable NoSQL Database Service from AWS

#135
post #131

Earlier quoted context omitted.

I should have explained that my costs were calculated on a "per day" assumption. Thus the costs are for: 5000 x 60 x 60 x 24 = 432000000 Writes 50000 x 60 x 60 x 24 = 4320000000 Reads (432000000/10000) x 0.01 = $432 (4320000000/10000) x 0.01 = $4320 Azure Total Cost For One Days Use: $4752 ((5000/10) x 0.01) x 24 = $120 ((50000/50) x 0.01) x 24 = $240 AWS Total Cost For One Days Use: $360 You are right that I don't t…

Your math is right, except you missed a factor for Dynamo - Unit size. http://aws.amazon.com/dynamodb/#pricing If your txns are all within 1KB, your math holds good; otherwise, you pay more. Interesting model, but I suspect it'll average out to similar costs.

The cost difference between Windows Azure Tables and DynamoDB really depends upon the size of the entities being operated over and the amount of data stored. If an application can benefit from batch transactions or query operations, the savings can be a lot per entity using Windows Azure Tables.

For the cost of storage. The base price for Windows Azure Tables is $0.14/GB/month, and the base price for DynamoDB is $1.00/GB/month.

For transactions, there is the following tradeoff

• DynamoDB is cheaper if the application performs operations mainly on small items (couple KBs in size), and the application can’t benefit from batch or query operations that Windows Azure Tables provide

• Windows Azure Tables is cheaper for larger sized entities, when batch transactions are used, or when range queries are used

The following shows the cost of writing or reading 1 million entities per hour (277.78 per second) for different sized entities (1KB vs 64KB). It also includes the cost difference between strong and eventually consistent reads for DynamoDB. Note, Windows Azure Tables allows batch operations and queries for many entities at once, at a discounted price. The cost shown below is the cost per hour for writing or reading 1,000,000 entities per hour (277.78 per second).

• 1KB single entity writes -- Azure=$1 and DynamoDB=$0.28

• 64KB single entity writes -- Azure=$1 and DynamoDB=$17.78

• 1KB batch writes (with batch size of 100 entities) -- Azure=$0.01 and DynamoDB=$0.28

• 64KB batch writes (with batch size of 100 entities) -- Azure=$0.01 and DynamoDB=$17.78

• 1KB strong consistency reads -- Azure=$1 and DynamoDB=$0.05

• 64KB strong consistency reads -- Azure=$1 and DynamoDB=$3.54

• 1KB strong consistency reads via query/scan (assuming 50 entities returned on each request) – Azure=$0.02, DynamoDB=$0.05

• 64KB strong consistency reads via query/scan (assuming 50 entities returned on each request) – Azure=$0.02, DynamoDB=$3.54

• 1KB eventual consistency reads – DynamoDB=$0.028

• 64KB eventual consistency reads – DynamoDB=$1.77

Post reply on HN