F1: A Distributed SQL Database That Scales - Study questions
-
Why does F1 support Protocal Buffer as table column?
-
Why schema change in F1 is non-blocking?
-
Give use cases for lock column feature
-
Why F1 decides to move change history to its owm level?
-
What is the role of Spanner in F1?
-
Why perssimistic transactions requires stateful F1 server?
-
Why the user should always try to use single-root transcation
-
When we design schemas, when we use repeated fields in protocol buffer, and when to use child table?
-
What is the cost of using global index, what is the usage practice, and why is that?
-
why it is not practical to update schema atomically across all servers?
-
F1 applies schema change asyncly, how does it handle/prevent conflicting changes?
-
What is the difference between Snapshot, Pessimistic, and Optimistic transcations?
-
What is the insertion phantom problem?
-
How is the change history inside F1 implemented?
-
Why disk latency is not a huge problem for F1 queries, unlike traditional DBs?
-
What are pros and cons of streaming result immediately?
-
In deploymnet, why do we need read-only replicas?
-
Multi-region replicas means higher latency, how do they mitigate it?