Google AppEngine 服务器实例时钟同步

2023-12-26

我刚刚在查询游标的 AppEngine 文档 https://developers.google.com/appengine/docs/java/datastore/queries#Java_Cursors_and_data_updates:

游标的一个有趣的应用是监视实体 看不见的变化。如果应用程序使用当前设置时间戳属性 每次实体更改时的日期和时间,应用程序可以使用查询 使用数据存储游标按时间戳属性升序排序 检查实体何时移动到结果列表的末尾。如果 实体的时间戳被更新,游标查询返回 更新的实体。如果自上次以来没有更新任何实体 执行了查询,没有返回结果,游标也没有 移动。

为了使其可靠地工作,必须对不同服务器实例之间的时钟同步有某种保证。否则你可能会得到以下场景:

  1. 服务器实例 1(快时钟)保存时间戳为 1000 的更新。
  2. 客户要求更新并找到这一更新。
  3. 服务器实例 2(慢速时钟)使用时间戳 950 保存另一个更新。
  4. 客户端请求更新,但没有找到此更新,因为时间戳没有增加。

据我了解,从来没有任何这样的时钟同步保证。这有变化吗???

Update:

我刚刚意识到,即使时钟完美同步,这种方法也可能会由于查询的最终一致性而丢失结果。如果较晚的更新最终在较早的更新之前提交并使其进入同步查询,而较早的更新则没有,则它将隐藏较早的更新。或者我错过了什么?


我在时钟和 Google Cloud Platform 上找到的唯一文档是here http://googlecloudplatform.blogspot.ro/2015/05/Got-a-second-A-leap-second-that-is-Be-ready-for-June-30th.html and here https://cloud.google.com/compute/docs/instances/#configure-ntp。 根据第一个链接帖子 http://googlecloudplatform.blogspot.ro/2015/05/Got-a-second-A-leap-second-that-is-Be-ready-for-June-30th.html,实例使用 NTP 服务同步,这一切都为您完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google AppEngine 服务器实例时钟同步 的相关文章

随机推荐