我正在寻找一种良好的设计模式,用于分割Google App Engine中的列表。我已阅读并实施了分片计数器,如Google文档here中所述,但我现在正尝试将相同的原则应用于列表。以下是我的问题和可能的解决方案 - 我可以得到您的意见吗?
问题: 我系统上的用户可以收到许多类似在线聊天系统的消息。我希望服务器记录所有传入的消息(它们将包含几个字段 - from,to等)。但是,我从文档中了解到,更新同一个实体组通常会导致数据存储区争用导致异常。当一个用户在短时间内收到许多消息从而导致他的实体被多次写入时,就会发生这种情况。那么抽象出上面的分片计数器示例呢:
关于上述内容的一些问题:
答案 0 :(得分:0)
为什么要将所有邮件放在1个实体组中?
如果您没有指定祖先,则您不需要分片,但最终用户在查询消息时可能会因为最终的一致性而看到一些滞后。
取决于这是否是可接受的权衡。