3 ms·
"The current public version of Spanner does not support client-side interactive transactions either." Did not know that...why?
by whargarbl 10y ago
"The current public version of Spanner does not support client-side interactive transactions either."
Did not know that...why?
- abadid 10y agoI can't comment on Google's decision here. I don't see any technical reason why they can't support client-side interactive transactions. But I'm happy to comment on technical points I made in the post ...
- wwilson 10y ago(Disclaimer: I work on Cloud Spanner). Cloud Spanner fully supports interactive read-write transactions. I'm not sure what the source of the confusion here is. Maybe Daniel is using a new definition of "client-side interactive transactions" that I'm unfamiliar with. :)
- evanweaver 10y agoOur source for that was this post: https://quizlet.com/blog/quizlet-cloud-spanner https://quizlet.com/blog/quizlet-cloud-spanner (SQL Dialect) Maybe that's no longer the case?
- wwilson 10y agoYeah, I've read that post, and I have no idea where it gives the impression that we don't support interactive transactions. What paragraph are you looking at? Could you be referring to the fact that we make you do writes via a mutation API rather than DML? Obviously that has no impact on interactivity...
- evanweaver 10y agoYes, our misunderstanding and we misinformed Daniel. Fixed, and thank you. It would be cool to know why Spanner is like that.
- elvinyung 10y ago+1, also curious about this. I speculated that Cloud Spanner is supposed to be F1[1], but the fact that F1 seems to fully support SQL DML makes this difference even more perplexing. > Updates are also supported using SQL data manipulation statements, with extensions to support updating fields inside protocol buffers and to deal with repeated structure inside protocol buffers. [1] https://research.google.com/pubs/pub41344.html https://research.google.com/pubs/pub41344.html
- bdarnell 10y ago(disclosure: CockroachDB founder) The reason I've heard is that Spanner uses a separate mutation API instead of SQL DML because of a quirk of its transaction model. Writes within a transaction are not visible to subsequent reads within the same transaction (source: https://cloud.google.com/spanner/docs/transactions#rw_transaction_properties https://cloud.google.com/spanner/docs/transactions#rw_transa...). This is different from other SQL databases, so the use of a different API forces you to think about your read/write transactions in a Spanner-specific way. (FWIW, CockroachDB does not have this limitation - transactions can read their own uncommitted writes, just like in other databases)
- abadid 10y agoSorry about that. As Evan said -- that sentence was based on something he told me. The post has now been fixed. My apologies.