Google Datastore 强一致性和实体组最大大小

2024-01-06

在共享费用应用程序中,显示每个组的付款费用和共享费用详细信息。作为金融应用,很多操作都是事务性的,这就需要强一致性来保证数据的完整性。我们使用了实体组和祖先查询,这似乎解决了强一致性的问题,这导致了实体组的规模很大。由于共享“团体”现在是成员、费用、付款、会费等的父级。到目前为止,我们还没有看到问题,但我们很担心,因为这种规模、费用和/或付款可能会扩展到 10~100K 实体的数量级。

经过一番研究后,我们发现了以下建议:

  1. 回到最终一致性,并写入内存缓存来克服最终一致性。这是最好的解决方案吗?我们找不到足够的有关如何更新内存缓存中的实体的文档,如果您知道,请分享!另外,在这种情况下我们如何确保写入是事务性的?
  2. 保持原样,因为没有实体组大小。但我们担心以后会发生什么,因为docs https://developers.google.com/appengine/docs/python/datastore/entities提到保持实体组不大于单个用户的数据价值
  3. 切换到关系型数据库管理系统,现在可能为时已晚

我们现在对每秒 1 次写入的规则没有问题,因为通常在这些组中每秒不会发生太多事情而导致问题,但我们不想稍后遇到问题。迁移或更改数据模型会很麻烦,特别是更改或删除祖先,需要重写实体,大量的删除和写入请求也是有成本的!

感谢您的意见


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Datastore 强一致性和实体组最大大小 的相关文章

随机推荐

  • chromecast 调试器可以工作,但不显示任何内容?

    我最近安装了 chrome cast 设备并在该设备上启用了调试器模式 将接收器应用程序发送给 google 并从他们那里获取应用程序 ID 将应用程序 ID 设置到我的发件人应用程序中 一切正常 但问题是我在调试器上看不到任何内容 也无法
  • PowerManager.newWakeLock() 抛出 IlleagelArgumentException

    然而 当我打电话时 我正在尝试获取唤醒锁PowerManager newWakeLock 我收到 IlleglArgumentException 这是我用来获取的代码 private void setWakeLock Context con
  • 如何让div中的文本始终位于中间?

    我试图让文本保留在可调整大小的 DIV 中间 这是例子 CSS rightmenu position absolute z index 999999 right 0 height 60 text align center HTML div
  • 如何从 iOS 设备的 iPod 库导出 mp3 文件?

    在我的 iOS 应用程序中 我试图导出mp3文件从 iPod 库复制到设备上应用程序的文档目录 目前我正在尝试使用AVAssetExportSession但它不适合mp3文件 它适用于m4a files 是否可以使用 AVAssetExpo
  • 独立实施和托管实施之间是否存在有意义的区别?

    我的问题主要与第四节第六段 http www iso 9899 info n1570 html 4 p6 合规实施的两种形式是托管式和独立式 合格的托管实施应接受任何严格合格的程序 据我了解 这构成了典型的应用程序环境 包括文件系统 分配的
  • 通过单击缩放按钮放大和缩小图像(Javascript)

    我正在尝试通过两个缩放按钮 和 放大和缩小图像 问题是当图像为全屏尺寸 宽度 100 时 放大 会停止 我需要将图像缩放到比屏幕尺寸大得多 只是不知道如何做到这一点 我是 Javascript 初学者 所以我希望有人有动力帮助我解决这个 J
  • 日期转换程序中的奇怪错误

    我无法修复代码中的奇怪错误 我编写了一个程序来打印最初以 MM DD YYYY 格式编写的日期 格式为 月 DD YYYY 该程序很简单 我将日期存储在char数组 然后用strtok我分别获取月 日 年并存储指向它们的指针 在一个char
  • 如何将 std::string 传递给需要 char* 的函数? [复制]

    这个问题在这里已经有答案了 可能的重复 我可以从 C 字符串中获取非常量 C 字符串吗 https stackoverflow com questions 1919626 can i get a non const c string bac
  • BASH 中多列文件的反向排序顺序

    我有以下文件 1 2 3 1 4 5 1 6 7 2 3 5 5 2 1 我希望文件按第二列排序 但从最大数字 在本例中为 6 到最小数字 我尝试过 sort 1 2 file dat 但它按升序排序 而不是降序 结果应该是 1 6 7 1
  • 命令是否从 shell 脚本中的当前目录运行?

    在 bash shell 脚本中我尝试了这两个版本 java jar abc jar and CMD java jar abc jar CMD 第一个版本可以工作 第二个版本则抱怨找不到 abc jar 为什么 命令确实从 shell 脚本
  • 使用命令行开关将 PDF 另存为文本 - 可以做到吗?

    我需要使用命令行开关来执行 另存为文本 命令 理想情况下 我想要 使用命令行开关打开 PDF 使用命令行开关通过模仿 另存为文本 命令将 PDF 转换为文本文件 使用命令行关闭 PDF 这可能吗 如果是这样 那么有人知道该怎么做吗 也许你可
  • JavaFX 中的 MVVM。具有数据模型的控件

    我在fxml文件中定义了一个TableView 但我无法指定表的列 因为表将具有一些数据模型知识 这会违反MVVM 我创建了一个类 它提供 TableColumn 的集合并提供数据模型 我想更改相对于表中所选项目的按钮状态 如何在不违反MV
  • 为什么 (0 < 5 < 3) 返回 true?

    我在 jsfiddle net 上玩 我很好奇为什么这会返回 true if 0 lt 5 lt 3 alert True 这也是如此 if 0 lt 5 lt 2 alert True 但这并没有 if 0 lt 5 lt 1 alert
  • 将用户控件转换为服务器控件

    我想知道是否有人有将用户控件转换为 Web 控件的经验 理想情况下 我想将一些设计工作交给其他人 他们会给我精心布置的用户控件 然后 我就可以完成转换 编译 测试和部署的过程 在微软提出神奇的 转换为服务器控制 选项之前 看起来我一直坚持从
  • ImageIcon 的 getResources() - java

    我的第一个问题 几天来我一直试图解决这个问题 但我已经失去了耐心 以下是一些代码和我的项目结构 问题 我怎样才能得到getResources 在 eclipse 中工作并导入到 jar 后 谢谢您的帮助 public enum Icons
  • UIView 子类 initWithFrame 没有被调用?

    我有一个自定义 UIView 子类 在 IB 中 我指定了一个 占位符 UIView 并将该类设置为我的类名 我对 drawRect 方法的重写正在工作 并且背景着色正确 但 initWithFrame 没有触发 为什么 id initWi
  • 是否可以在 iOS 模拟器中进行边缘滑动?

    iOS 7 提供了UIScreenEdgePanGestureRecognizer它检测从屏幕边缘向内的滑动 可以使用Xcode中的iOS7模拟器来模拟这个手势吗 在屏幕区域外单击并拖动只会移动整个模拟器框架 在模拟器版本 11 4 上 我
  • 带有按列搜索字段的 Jhipster 表

    我在我的应用程序中使用 jhipster 我有一个表 我添加了分页和排序 但我还想在列中添加搜索字段 这可能吗 会是这样的http ng table com http ng table com 我的 HTML 是 div class tab
  • 使用 Python 的 Paramiko 自动执行 ssh 连接和程序执行

    我想使用 python 自动执行特定任务 除其他事项外 此任务包括使用 ssh 连接到远程服务器 并运行特定程序 称为prog out that 可能会也可能不会要求用户输入 经过一些研究并权衡我的选择后 我决定使用 Python 的 Pa
  • Google Datastore 强一致性和实体组最大大小

    在共享费用应用程序中 显示每个组的付款费用和共享费用详细信息 作为金融应用 很多操作都是事务性的 这就需要强一致性来保证数据的完整性 我们使用了实体组和祖先查询 这似乎解决了强一致性的问题 这导致了实体组的规模很大 由于共享 团体 现在是成