Live data from Hacker News

Amazon DynamoDB Transactions

aws.amazon.com

61–70 of 77 posts

Re: Amazon DynamoDB Transactions

#61

Earlier quoted context omitted.

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.

Multiple clusters, then, or whatever you specify to FDB’s API to identify the instance when making a client connection.

Re: Amazon DynamoDB Transactions

#62
post #51

Earlier quoted context omitted.

Can you identify some others?

As far as I'm aware these offerings support transactions across the entire database. Google Cloud Spanner: https://cloud.google.com/spanner/docs/transactions Google Cloud Firestore: https://firebase.google.com/docs/firestore/manage-data/trans... Plus if you use Cloud Firestore in Datastore Mode then Google Cloud Datastore would satisfy this requirement as well.

Spanner is not a non-relational database.

As for Firestore, it’s not clear whether it supports cross-collection transactions. Cloud Datastore does not support cross-namespace transactions AFAICT.

Re: Amazon DynamoDB Transactions

#63

Earlier quoted context omitted.

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.

Multiple clusters, then, or whatever you specify to FDB’s API to identify the instance when making a client connection.

I'm still not sure what you mean in terms of contrasting this with DynamoDB's new features. You could implement the entire DynamoDB API, with even stronger semantics than the new features listed in the article, on top of FoundationDB. Additionally, the latency would be theoretically lower as they describe needing to do a read, write, and another read per key to verify isolation, whereas FoundationDB uses an optimistic concurrency control scheme to verify at commit time that transactions do not conflict. In the common case (where transactions don't conflict) this is faster.

Re: Amazon DynamoDB Transactions

#64

Earlier quoted context omitted.

Multiple clusters, then, or whatever you specify to FDB’s API to identify the instance when making a client connection.

I'm still not sure what you mean in terms of contrasting this with DynamoDB's new features. You could implement the entire DynamoDB API, with even stronger semantics than the new features listed in the article, on top of FoundationDB. Additionally, the latency would be theoretically lower as they describe needing to do a read, write, and another read per key to verify isolation, whereas FoundationDB uses an optimisti…

All I’m trying to do here is trying to see whether the claim made in the blog post is true or not. Some commenters were claiming it was false, but I don’t think they considered all the components of the claim.

Re: Amazon DynamoDB Transactions

#65

Earlier quoted context omitted.

Multiple clusters, then, or whatever you specify to FDB’s API to identify the instance when making a client connection.

I'm still not sure what you mean in terms of contrasting this with DynamoDB's new features. You could implement the entire DynamoDB API, with even stronger semantics than the new features listed in the article, on top of FoundationDB. Additionally, the latency would be theoretically lower as they describe needing to do a read, write, and another read per key to verify isolation, whereas FoundationDB uses an optimisti…

Agreed 100% and as someone who has had to use DDB before, nothing would make me happier than seeing this built.

Re: Amazon DynamoDB Transactions

#66

“DynamoDB is the only non-relational database that supports transactions across multiple partitions and tables.” Uh... this is just not true.

Can you identify some others?

FaunaDB (mentioned in previous comment) -- it is multi-model NoSQL so you can do relational queries and it supports transactions across multiple partitions, documents, replicas. json docs, not tables.

Re: Amazon DynamoDB Transactions

#67
post #40

Earlier quoted context omitted.

> 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.

I have the exact same experience with npgsql. It's exporting postgres's "one session - one server process" model which is very outdated.

Re: Amazon DynamoDB Transactions

#68

Earlier quoted context omitted.

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.

I see, it appears to come down to how each db interprets "partitions".

If we're referring specifically to shards then "DynamoDB is the only non-relational database that supports transactions across multiple partitions and tables." no longer sounds like hyperbole.

Re: Amazon DynamoDB Transactions

#69
post #52

Earlier quoted context omitted.

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 cross group transactions are a little limited - https://cloud.google.com/appengine/docs/standard/java/datast... I don't think it's fair to compare them. However, the more recent Google storage offerings based on Cloud Spanner do seem to offer this. I don't see how Amazon can make this statement - that doesn't stop it being an excellent enhancement to DynamoDB though.

Cloud Firestore (the next generation of Cloud Datastore) removes those limitations. https://cloud.google.com/firestore/docs/manage-data/transact...

It also supports the Cloud Datastore API.

(I work on it!)

Re: Amazon DynamoDB Transactions

#70
post #51

Earlier quoted context omitted.

As far as I'm aware these offerings support transactions across the entire database. Google Cloud Spanner: https://cloud.google.com/spanner/docs/transactions Google Cloud Firestore: https://firebase.google.com/docs/firestore/manage-data/trans... Plus if you use Cloud Firestore in Datastore Mode then Google Cloud Datastore would satisfy this requirement as well.

Spanner is not a non-relational database. As for Firestore, it’s not clear whether it supports cross-collection transactions. Cloud Datastore does not support cross-namespace transactions AFAICT.

a) Cloud Firestore supports transactions across the entire database. You can learn more about them here: https://cloud.google.com/firestore/docs/manage-data/transact....

b) Given that the primary use case for namespaces was/is multitenancy, it's not clear to me why you'd want to transact across them. Nevertheless, you can. What's leading you to draw this conclusion?

Post reply on HN