【发布时间】:2019-05-08 00:12:39
【问题描述】:
在 Google Spanner 中,提交时间戳由服务器生成并基于 https://cloud.google.com/spanner/docs/commit-timestamp 中讨论的“TrueTime”。该页面还指出,时间戳不保证是唯一的,因此多个独立编写者可以生成完全相同的时间戳。
在一致性保证的文档上,写着In addition if one transaction completes before another transaction starts to commit, the system guarantees that clients can never see a state that includes the effect of the second transaction but not the first.
我想了解的是结合
- 多个并发事务“同时”提交导致相同的提交时间戳(其中提交时间戳构成表键的一部分)
- 一位读者观察到上表中输入了新行
在这些情况下,读者是否有可能观察到(最终)将使用完全相同的时间戳存储的部分但不是所有行?或者换一种说法,如果搜索直到已知确切时间戳的所有行,并且使用该时间戳插入行,查询是否有可能首先返回一些结果,但再次执行时返回更多结果?
这里的上下文是尝试以仅追加的方式对按时间排序的事件流进行建模-我需要能够将有效的光标保持在特定时间点(事件流中的点) 并且需要知道在时间 T 观察到的事件是否意味着您永远无法在确切的时间 T 再次获得更多事件。
【问题讨论】:
标签: google-cloud-platform google-cloud-spanner