Google Spanner 索引中的提交时间戳是否始终按顺序添加?

Are commit timestamps in a Google Spanner index always added in order?

Spanner 的魔力似乎是基于 https://cloud.google.com/spanner/docs/true-time-external-consistency 中描述的全局单调递增时钟的想法。我有兴趣具体了解这与索引的关系。

如果我有 table

| Stream Id | Category | Timestamp |

…其中时间戳创建为提交时间戳,并带有二级索引(类别,时间戳 DESC):

查询此索引的人是否可能看到“乱序”插入的时间戳,例如是否有可能查询索引返回时间戳,毫秒为 100、110、120,但是当再次查询时,会出现一个较旧的值,例如100、110、115、120。

此外,如果索引被读取一次,其中包含最新条目的时间戳 100,是否有可能稍后添加的另一个条目正好具有时间戳 100?

索引在后台实现为 tables,因此它们具有与 tables 相同的一致性保证。引用的 table 更新时索引也会同步更新,所以应该不会出现这种不一致的索引视图。

不保证提交时间戳值是唯一的。写入非重叠字段集的事务可能具有相同的时间戳。写入重叠字段集的事务具有唯一的时间戳。

更多信息,请参考以下文档: https://cloud.google.com/spanner/docs/commit-timestamp

https://cloud.google.com/spanner/docs/schema-design