Live data from Hacker News

Amazon DynamoDB Transactions

aws.amazon.com

41–50 of 77 posts

Re: Amazon DynamoDB Transactions

#41

Earlier quoted context omitted.

Can you identify some others?

The Google Cloud Datastore (formerly the "App Engine Datastore") has had cross-entity-group transactions since 2011: https://googleappengine.blogspot.com/2011/10/app-engine-155-...

The “and tables” clause is the differentiator, I think. DynamoDB tables are roughly equivalent to Datastore namespaces; I don’t believe Google Cloud Datastore supports cross-namespace transactions.

Re: Amazon DynamoDB Transactions

#42

Earlier quoted context omitted.

Can you identify some others?

MongoDB ( https://www.mongodb.com/transactions ) “Multi-document transactions can be used across multiple operations, collections, databases, and documents.”

However: “Multi-document transactions are available for replica sets only. Transactions for sharded clusters are scheduled for MongoDB 4.2.” DynamoDB is sharded by design.

Re: Amazon DynamoDB Transactions

#43

Earlier quoted context omitted.

Can you identify some others?

FoundationDB https://www.foundationdb.org/ not only supports transactions, they are mandatory. They also go one step further and support atomic operations, which are especially killer.

I don’t think FDB supports cross-database transactions, though.

Re: Amazon DynamoDB Transactions

#45

My wishlist for DynamoDB is now down to: * Fast one-time data import without permanently creating a lot of shards (important if you are restoring from a backup) * Better visibility into what causes throttling (e.g. was it a hot shard? Was it a brief but large burst of traffic?) * Lower p99.9 latency. It occasionally has huge latency spikes. * Indexes of more than 2 columns * A solution for streaming out updates that…

Also, better insight into partition sizes / what's causing hot spotting. The DB abstracts a lot from the user, which isn't necessarily great, because it's still subject to the normal pitfalls of a NoSQL database.

Bigtable is a different beast, but it's new "Key Visualizer" is impressive. Has helped us quickly find anomalies https://cloud.google.com/bigtable/docs/keyvis-overview

Wish Dynamo had something similar

Re: Amazon DynamoDB Transactions

#46
post #30

Postgresql gets native JSON support (at least since 9.2 onwards) to store schemaless free flowing text. Dynamodb gets transaction guarantees. There is globalization and intermingling happening on technology too. On a similar thought, a few years back, C# and Java got `Any` generic types, while Python/JS got static types (via python3 typings, typescript)

C# doesn't have an Any generic type (Foo In java parlance)

Re: Amazon DynamoDB Transactions

#47
>If an item is modified outside of a transaction while the transaction is in progress, the transaction is canceled and an exception is thrown

You are still responsible to implements a Queue or a Lock on the Items you want to mutate.

That said this is a huge milestone for DynamoDB, we can now safely mutate multiples items while remaining ACID.

Re: Amazon DynamoDB Transactions

#48
post #40

Earlier quoted context omitted.

Yes. Relational databases are very fast and using them as key/value stores is a great use-case. Using a scale-out system like Aurora makes it even better. It's slower because of SQL parsing and generally the SQL clients are not as fast, but you can get close to single-digit millisecond latency these days. We use Aurora or Postgres for key/value unless we need something specific, like multi-regional capacity or really…

> It's slower because of SQL parsing and generally the SQL clients are not as fast I'd be really surprised if the client library introduces a latency significant enough to be compared to the network latency between the app server and the database server.

Many libraries handle db connections poorly, or have heavy-handled pooling systems, or aren't fully async, all of which limits total throughput. The key/value clients usually have a much simpler APIs like HTTP which scale much better.

Re: Amazon DynamoDB Transactions

#49
post #46
post #30

Postgresql gets native JSON support (at least since 9.2 onwards) to store schemaless free flowing text. Dynamodb gets transaction guarantees. There is globalization and intermingling happening on technology too. On a similar thought, a few years back, C# and Java got `Any` generic types, while Python/JS got static types (via python3 typings, typescript)

C# doesn't have an Any generic type (Foo In java parlance)

C# can use `object` or `dynamic`:

https://stackoverflow.com/questions/2690623/what-is-the-dyna...

Re: Amazon DynamoDB Transactions

#50

Earlier quoted context omitted.

FoundationDB https://www.foundationdb.org/ not only supports transactions, they are mandatory. They also go one step further and support atomic operations, which are especially killer.

I don’t think FDB supports cross-database transactions, though.

What do you mean by this? There is only one “database” in FoundationDB terms. You can write transactions over the entire keyspace regardless of which machine the data is stored on.
Post reply on HN