What are the pros and cons of DynamoDB with respect to other NoSQL databases?

后端 未结 8 1022
不知归路
不知归路 2021-01-30 12:57

We use MongoDB database add-on on Heroku for our SaaS product. Now that Amazon launched DynamoDB, a cloud database service, I was wondering how that changes the NoSQL offerings

相关标签:
8条回答
  • 2021-01-30 13:36

    Pros

    1. Lightning Fast (uses SSDs internally)
    2. Really (really) reliable. (chances of write failures are lower)
    3. Seamless scaling (no need to do manual sharding)
    4. Works as webservices (no server, no configuration, no installation)
    5. Easily integrated with other AWS features (can store the whole table into S3 or use EMR etc)
    6. Replication is managed internally, so chances of accidental loss of data is negligible.

    Cons

    1. Very (very) limited querying.
    2. Scanning is painful (I remember once a scanning through Java ran for 6 hours)
    3. pre-defined throughput, which means sudden increase beyond the set throughput will be throttled.
    4. throughput is partitioned as table is sharded internally. (which means if you had a throughput for 1000 and its partitioned in two and if you are reading only the latest data(from one part) then your throughput of reading is 500 only)
    5. No joins, Limited indexing allowed (basically 2).
    6. No views, triggers, scripts or stored procedure.

    It's really good as an alternative to session storage in scalable application. Another good use would be logging/auditing in extensive system. NOT preferable for feature rich application with frequent enhancement or changes.

    0 讨论(0)
  • 2021-01-30 13:40

    Using MongoDB through an add-on for Heroku effectively turns MongoDB into a SaaS product as well.

    In reality one would be comparing whatever service a chosen provider has compared to what Amazon can offer instead of comparing one persistance solution to another.

    This is very hard to do. Each provider will have varying levels of service at different price points and one could consider the option of running it on their own hardware locally for development purposes a welcome option.

    0 讨论(0)
  • 2021-01-30 13:49

    For starters, it will be fully managed by Amazon's expert team, so you can bet that it will scale very well with virtually no input from the end user (developer).

    Also, since its built and managed by Amazon, you can assume that they have designed it to work very well with their infrastructure so you can can assume that performance will be top notch. In addition to being specifically built for their infrastructure, they have chosen to use SSD's as storage so right from the start, disk throughput will be significantly higher than other data stores on AWS that are HDD backed.

    I havent seen any drivers yet and I think its too early to tell how the community will react to this, but I suspect that Amazon will have drivers for all of the most popular languages and the community will likely receive this well - and in turn create additional drivers and tools.

    0 讨论(0)
  • I think the key difference to consider is MongoDB is a software that you can install anywhere (including at AWS or at other cloud service or in-house) where as DynamoDB is a SaaS available exclusively as hosted service from Amazon (AWS). If you want to retain the option of hosting your application in-house, DynamoDB is not an option. If hosting outside of AWS is not a consideration, then, DynamoDB should be your default choice unless very specific features are of higher consideration.

    0 讨论(0)
  • 2021-01-30 13:58

    There's a table in the following link that summarizes the attributes of DynamoDB and Cassandra:

    http://www.datastax.com/dev/blog/amazon-dynamodb

    Something that needs improvement on DynamoDB in order to become more usable is the possibility to index columns other than the primary key.

    UPDATE 1 (06/04/2013)

    On 04/18/2013, Amazon announced support for Local Secondary Indexes, which made DynamoDB f***ing great:

    http://aws.amazon.com/about-aws/whats-new/2013/04/18/amazon-dynamodb-announces-local-secondary-indexes/

    0 讨论(0)
  • 2021-01-30 14:01

    I think one of the key differences between DynamoDB and other NoSQL offerings is the provisioned throughput - you pay for a specific throughput level on a table and provided you keep your data well-partitioned you can always expect that throughput to be met. So as your application load grows you can scale up and keep you performance more-or-less constant.

    0 讨论(0)
提交回复
热议问题