mde*_*ous 9 google-app-engine unique-constraint google-cloud-datastore
我已经看过很多关于如何在appengine中实现唯一约束的文章和问题,但实际上我没有找到关于为什么不存在此功能的任何解释.
如果appengine开发人员认为最好不要实现这样的功能,我相信他们有充分的理由,但我有兴趣理解为什么他们这么做.
这个决定是否受到业绩问题的影响?为什么?
任何有关这方面的详细解释将不胜感激.
fab*_*pro 12
正如此处链接的帖子http://code.google.com/p/googleappengine/issues/detail?id=178#c14所述,数据存储区的分布式特性使得难以强制执行唯一约束.如果两个应用程序实例同时尝试创建一个实体,每个实体都具有唯一的属性,则实施此操作的唯一方法是在数据存储区中的所有计算机上进行某种协调.
想象一个26人的房间,每张都有一张纸,用一张宠物桌和它们的主人说.每个人用不同的字母表控制每个宠物,例如,人1执行以字母A开头的所有内容,第2个人执行以字母B开头的所有内容,依此类推.
如果你想确保名为mittens的宠物是整个数据存储区中唯一的连指手套,这很容易,因为房间里只有一个人参与,他们将能够检查他们的纸张以确保连指手套还没有.
如果你想要求所有者也必须是唯一的,你可以想象每当有人想在他们的表中写一个条目时,他们需要与/每个其他人一起检查/确保没有其他人使用该所有者名称.这是app引擎的数据存储区不允许对除实体键之外的任何内容进行唯一性约束的根本原因.当数据存储包含数千台服务器时,根本无法做到这一点.
希望你能看出为什么存在这种限制,并希望我的深夜打字不难读:D
| 归档时间: |
|
| 查看次数: |
2863 次 |
| 最近记录: |