【问题标题】:How do I track consistency delays in Datastore?如何跟踪 Datastore 中的一致性延迟?
【发布时间】:2016-12-15 09:51:28
【问题描述】:

如果定义了太多的索引,或者具有太多属性的复合索引,或者一个 Kind 中的数据太多,那么后续查询可能会在很长一段时间内找不到实体——几分钟或更长时间——之后已插入。

是否有大型索引影响的基准?大概基准会将对象插入到一个大的 Kind 中,然后查询另一个副本,并测量时间。

【问题讨论】:

    标签: google-app-engine google-cloud-datastore eventual-consistency


    【解决方案1】:

    涉及的因素更复杂。

    确实,增加索引的数量可能会增加最终的一致性,因为需要做更多的工作来应用它们——索引是同步写入的,而实体本身总是在提交返回之前应用。读/写模式也会影响最终的一致性,例如超过每个实体组准则每秒 1 个事务。后端的其他因素包括数据中心/副本中断和后续恢复等。

    基准测试不太可能让您深入了解这些问题,尤其是因为您无法强制基准测试针对特定副本。

    一般指导是最终一致性平均在几毫秒内解决,偶尔在几秒内解决。在极端情况下,这可能会延长至数小时或更长时间(例如数据中心刚刚恢复在线)。

    如果可能,建议在最终一致性不可接受的情况下使用强一致性机制(祖先查询、查找)。

    【讨论】:

      猜你喜欢
      • 2019-05-12
      • 2021-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-03
      • 1970-01-01
      • 2018-11-01
      • 1970-01-01
      相关资源
      最近更新 更多