gpt4 book ai didi

google-app-engine - 为什么 Google Appengine 中没有唯一约束?

转载 作者:太空宇宙 更新时间:2023-11-03 15:19:51 25 4
gpt4 key购买 nike

我看过很多关于如何在 appengine 中实现唯一约束的文章和问题,但实际上我没有找到任何关于为什么不存在此功能的解释。

如果 Appengine 开发人员认为最好不要实现这样的功能,我相信他们有充分的理由,但我很想了解他们为什么会这样决定。

这个决定是出于对性能的考虑吗?为什么?

如有任何详细解释,我们将不胜感激。

最佳答案

正如此处链接的帖子 http://code.google.com/p/googleappengine/issues/detail?id=178#c14说,数据存储的分布式特性使得难以强制执行唯一约束。如果两个应用程序实例同时尝试创建一个实体,每个实例都具有应该唯一的属性,则强制执行此操作的唯一方法将需要对数据存储区中的所有机器进行某种协调。

想象一个有 26 个人的房间,每个人都有一张纸,比如说一张宠物和它们的主人的 table 。每个人用不同的字母表控制每只宠物,例如第 1 个人做所有以字母 A 开头的事情,第 2 个人做所有以字母 B 开头的事情,依此类推。

如果你想确定一只名为 mittens 的宠物是整个数据存储中唯一的手套,这很容易,因为房间里只有一个人会涉及,他们将能够检查他们的纸来做出确保连指手套还没有。

如果你想要求所有者也必须是唯一的,你可以想象每次有人想在他们的表中写一个条目时,他们需要与/每个其他人/核对以确保没有其他人拥有那个使用的所有者名称。这是 App Engine 的数据存储区不允许对实体键以外的任何内容进行唯一性约束的根本原因。当数据存储包含数千台服务器时,根本不可能做到这一点。

希望您能明白为什么存在此限制,并希望我的深夜打字不会太难阅读 :D

关于google-app-engine - 为什么 Google Appengine 中没有唯一约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6967268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com