在共享费用应用程序中,显示每个组的付款费用和共享费用详细信息。作为金融应用,很多操作都是事务性的,这就需要强一致性来保证数据的完整性。我们使用了实体组和祖先查询,这似乎解决了强一致性的问题,这导致了实体组的规模很大。由于共享“团体”现在是成员、费用、付款、会费等的父级。到目前为止,我们还没有看到问题,但我们很担心,因为这种规模、费用和/或付款可能会扩展到 10~100K 实体的数量级。
经过一番研究后,我们发现了以下建议:
- 回到最终一致性,并写入内存缓存来克服最终一致性。这是最好的解决方案吗?我们找不到足够的有关如何更新内存缓存中的实体的文档,如果您知道,请分享!另外,在这种情况下我们如何确保写入是事务性的?
- 保持原样,因为没有实体组大小。但我们担心以后会发生什么,因为docs https://developers.google.com/appengine/docs/python/datastore/entities提到保持实体组不大于单个用户的数据价值
- 切换到关系型数据库管理系统,现在可能为时已晚
我们现在对每秒 1 次写入的规则没有问题,因为通常在这些组中每秒不会发生太多事情而导致问题,但我们不想稍后遇到问题。迁移或更改数据模型会很麻烦,特别是更改或删除祖先,需要重写实体,大量的删除和写入请求也是有成本的!
感谢您的意见
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)