高复制数据存储上的 DjangoAppEngine 和最终一致性问题

发布于 2025-01-06 09:43:44 字数 303 浏览 1 评论 0原文

我正在使用 djangoappengine,我认为它在高级应用程序数据存储上处理最终一致性的方式遇到了一些问题。

首先,实体组甚至没有在 djangoappengine 中实现。

其次,我认为当您执行 djangoappengine get 时,底层应用程序引擎系统正在执行应用程序引擎查询,这只是最终一致的。因此,您甚至不能假设使用键的一致性。

假设这两个陈述是正确的(我认为它们是正确的),那么如何在高复制数据存储上使用 djangoappengine 构建任何复杂性的应用程序?每次您保存一个值然后尝试获取相同的值时,都不能保证它会相同。

I am using djangoappengine and I think have run into some problems with the way it handles eventual consistency on the high application datastore.

First, entity groups are not even implemented in djangoappengine.

Second, I think that when you do a djangoappengine get, the underlying app engine system is doing an app engine query, which are only eventually consistent. Therefore, you cannot even assume consistency using keys.

Assuming those two statements are true (and I think they are), how does one build an app of any complexity using djangoappengine on the high replication datastore? Every time you save a value and then try to get the same value, there is no guarantee that it will be the same.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

陈甜 2025-01-13 09:43:44

查看 djangoappengine/db/compiler.py:get_matching_pk()

如果您通过 pk 执行 djangomodel.get(),它将转换为 Google App Engine Get()。
否则它将转换为查询。这里还有改进的空间。提交修复?

Take a look in djangoappengine/db/compiler.py:get_matching_pk()

If you do a djangomodel.get() by the pk, it'll translate to a Google App Engine Get().
Otherwise it'll translate to a query. There's room for improvement here. Submit a fix?

烟雨扶苏 2025-01-13 09:43:44

不太了解 djangoappengine,但是如果 appengine 查询仅包含键,则该查询被视为仅键查询,并且您将始终获得一致的结果。

Don't really know about djangoappengine but an appengine query if it includes only key is considered a key only query and you will always get consistent results.

楠木可依 2025-01-13 09:43:44

无论您在 AppEngine 模型之上放置什么系统,当您将其保存到数据存储区时,您都会获得一个密钥。当您通过 HR 数据存储中的键查找实体时,您一定会获得最新的结果。

No matter what the system you put on top of the AppEngine models, it's still true that when you save it to the datastore you get a key. When you look up an entity via its key in the HR datastore, you are guaranteed to get the most recent results.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文