google-app-engine - 实体集团如何助力交易?

标签 google-app-engine google-cloud-datastore

在 Google App Engine 中,事务中的所有数据存储区操作都必须对同一组内的实体进行操作。

我不明白为什么这对交易来说是一个有用的约束。这似乎没有必要,因为数据存储可以根据事务中发生的情况知道要锁定哪些实体。

将实体分组在一起如何改善事务期间数据存储区的操作?

最佳答案

将 App Engine 的数据存储区视为一个巨大的 HashMap 很有用。您所能做的就是放置、获取和删除键值对。通常键是自动创建的,并且通常值是序列化对象,但它仍然是一个巨大的键值对存储。 HashMap 。

现在这个大 HashMap 有一个(而且只有一个)交易选项:您可以一次以原子方式操作一个键值对。没有选择,如果或但是 - 交易只适用于单个货币对。

当然,你的值(value)可以是任何东西。它不一定是单个对象。它可以是对象的分层树。那是一个实体组。这是一个技巧,“我必须在事务中操作这些对象,因此我必须使它们看起来像单个值。我只需将它们粘贴到父对象中并存储它。”

因此,实体组并不是作为进行事务的有用方式而创建的。实体被分组,因为这是将它们放入事务中的唯一方法。

关于google-app-engine - 实体集团如何助力交易?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6444032/

相关文章:

java - GAE - Java - 执行查询过滤器的最佳方法 "LIKE"

android - Google Cloud Datastore/Mobile Backend Starter - update/updateAll 调用权限失败

python - GAE - 如何组合多个异步 url 获取的结果?

python - 无法在 Google App Engine 上运行 Flask Debug模式

python - 如何优化此 Google App Engine 代码?

google-app-engine - 在 Google App Engine 上启用 Oauth2sso

java - App Engine 1.7.5 不创建新的 local_db.bin 数据存储文件

java - 如何将原始属性添加到现有的 java 数据存储实体以避免空指针异常

google-app-engine - 如何始终从 Google Cloud Datastore 读取最新的实体

python - 带有 Google Cloud Endpoint (Python) 的简单访问 API(开发人员 key )