3 ms·
Yes, our misunderstanding and we misinformed Daniel. Fixed, and thank you. It would be cool to know why Spanner is like that.
by evanweaver 10y ago
Yes, 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)