Google app engine 在谷歌应用程序引擎上组织实体组进行写作
我对Google App Engine高复制数据存储(HRD)上的“实体组”有点困惑。Google文档提到HRD只允许每个实体组每秒写入1次 这到底意味着什么?这是每个用户请求写一次还是每个实体写一次(我假设这是一个类似于“表”的概念) 例如,如果我有一个“User”实体和一个“Post”表。如果“Post”是“User”的祖先:Google app engine 在谷歌应用程序引擎上组织实体组进行写作,google-app-engine,nosql,google-cloud-datastore,Google App Engine,Nosql,Google Cloud Datastore,我对Google App Engine高复制数据存储(HRD)上的“实体组”有点困惑。Google文档提到HRD只允许每个实体组每秒写入1次 这到底意味着什么?这是每个用户请求写一次还是每个实体写一次(我假设这是一个类似于“表”的概念) 例如,如果我有一个“User”实体和一个“Post”表。如果“Post”是“User”的祖先: 这是否意味着one“用户”每秒可以创建one“帖子” …还是说对“Post”实体的所有写入都被限制为每秒1次写入,而不管用户是谁?(即,无论提交帖子的用户是谁,系统一
PS:至于你关于实体组限制的问题(我认为现在对你来说这将是没有意义的):写入限制是每个实体,而不是每个请求。1.实体不创建其他实体。2.如果所有帖子都在同一个实体组中,那么是的,每秒只能保存1篇。3.如果每个用户都在自己的实体组中,那么您可以在同一时间在每个相同的组中写一篇文章,次数可以根据您的喜好而定。只是没有一个组每秒可以写入超过一次。是的,我认为“User”和“Post”都应该是根实体。使用实体组也可以使组内的数据高度一致 例如,在没有实体组的情况下,如果创建一篇文章,然后快速导航到“最近发表的文章”列表,则可能无法立即看到新文章。对于博客来说,这可能不是问题 但是如果你在做一个任务管理系统。。。您转到任务详细信息屏幕,关闭任务,这会将您导航回任务列表,任务仍可能显示为已打开。这是不能接受的。在这里,您需要实体组或其他方法来使任务列表与当前用户保持一致
在某些数据模型中,创建实体组很容易。例如,假设您只能显示单个组的任务,则将任务作为项目组的一部分可以解决此问题。如果您的UI允许列出来自多个组的任务,则很难找到一个有效的模型。答案太棒了!非常感谢您的澄清。作为旁注(根据您的经验);与使用外部数据存储(如MongoDB或AWS DynamoDB)相比,您觉得HRD更受欢迎吗?不客气!我没有外部数据存储的经验。很难想象任何外部存储的延迟都不会压倒它们可能具有的任何其他性能优势。我可以想象功能的好处,不过…只是澄清一下,限制是对一个实体组的不同写入-但是您可以通过一个调用在组中写入多个实体。看看这个。你认为把用户和帖子放在同一个更高级别的实体中有什么好处或成本吗?