【发布时间】:2013-12-29 18:47:04
【问题描述】:
我试图更好地理解GAE NDB docs 中描述的深层层次结构的含义
“例如,“属于”所有者的消息的修订版可能有一个看起来像“的键”
rev_key = ndb.Key('Account', 'Sandy', 'Message', 'greeting', 'Revision', '2')
我将此解释为,如果我执行Revision(parent=rev_key).put(),那么我将有一个 Revision=2 级别的实体组,这意味着 ancestor=rev_key 将具有强一致性的祖先查询并写入 parent=rev_key 将限制为 1 /秒。
但是,在层级结构中更进一步的含义是什么?
比如说我有
rev_key_B = ndb.Key('Account', 'Sandy', 'Message', 'greeting', 'Revision', '3')
写入速度在rev_key_B 级别限制为 1/秒,或者,由于它们共享父级的父级,即ndb.Key('Account', 'Sandy', 'Message', 'greeting'),写入速度在祖先路径的更高级别以及最终限制到整个实体组一直到ndb.Key('Account', 'Sandy')?
同样的问题:强一致性。 Revision.query(ancestor=ndb.Key('Account', 'Sandy', 'Message', 'greeting')) 会有强一致性吗?
【问题讨论】:
-
我发誓曾经有文字说明“实体组”始终是根实体加上所有后代(这意味着 1/秒的限制适用于每个根实体和所有后代,无论您的祖先查询是否在层次结构中更远)。不过,我现在找不到任何参考资料,所以也许我误解了,或者它已经改变了。
-
@Daniel Roseman 对this post 的评论声称实体组是“根实体下的所有内容”,但我也没有在文档中找到它。我对答案的评论是专门针对这个的。
标签: python google-app-engine data-structures google-cloud-datastore