什么将时间戳分配给 Spanner 中的只读事务?

What assigns timestamps to read-only transactions in Spanner?

Spanner 论文清楚地表明,提交时间戳是由协调者领导者为读写事务选择的。但是,我不确定为只读事务选择时间戳的位置。

文档 here 说:

API Layer will pick the read timestamp by using the current TrueTime.

但是 API 图层位于何处?这是否指的是文件中所说的客户端用来定位相关 spanservers 的位置代理?该论文说它使用 TT.now().latest 但我不知道它在哪里被调用。

我原以为参与多站点读取的任何 Paxos 领导者都可以选择时间戳,但显然不是。有人可以帮忙澄清一下吗?

But where is that API layer situated? Does that refer to the location proxy that the paper says clients use to locate the relevant spanservers?

没错,它在 API 代理中。

I had assumed that the timestamp could be chosen by any of the Paxos leaders involved in the multi-site read, but apparently not.

要协商时间戳,强读取请求必须联系 Paxos 领导者以获取参与该读取的 每个 Spanner 组。