spanner 论文笔记
2021-02-15 本文已影响0人
西门早柿
Read-Write Transaction
- 事务开始时的时间戳 starTS,选取 now.latest 作为开始时间戳。
- 各 participant 选取 prepareTS。
- coordinator 选取 now.latest 作为 commitTS。
- wait 直到 tt.After(commitTS)。
- 向 client 返回结果。
Read-Only Transaction
- safeTS 的含义。
- readTS 如果大于 prepareTS,此时 commitTS 有可能比 readTS 大,也有可能比 readTS 小,此时返回 TS<=readTS 的最新数据,有可能是旧的数据。需要保证 commitTS 一定比 readTS 大。
- 同时 readTS 要小于等于 replica 上的最新的 commit log 写入时的时间戳。保证在 follower 上能读到最新的数据。