如何跟踪数据存储区中的一致性延迟?

时间:2016-12-15 09:51:28

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

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

是否存在大型指数影响的基准?据推测,基准测试会将对象插入一个大类,然后查询另一个副本,并测量时间。

1 个答案:

答案 0 :(得分:1)

所涉及的因素更为复杂。

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

基准测试不太可能让您对这些问题有很好的了解,特别是因为您无法强制基准测试达到特定的副本。

一般指导是最终的一致性平均以毫秒为单位,偶尔以秒为单位。在极端的尾端,取决于因素,这可能会延长到数小时或更长时间(例如数据中心刚刚重新上线)。

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