Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nosql SimpleDB:如果我们看到项目,保证能看到所有项目属性?(非一致读取)_Nosql_Amazon Web Services_Amazon Simpledb - Fatal编程技术网

Nosql SimpleDB:如果我们看到项目,保证能看到所有项目属性?(非一致读取)

Nosql SimpleDB:如果我们看到项目,保证能看到所有项目属性?(非一致读取),nosql,amazon-web-services,amazon-simpledb,Nosql,Amazon Web Services,Amazon Simpledb,我刚刚在使用SimpleDB时发现了一个假设。我怀疑它是安全的,但我希望有其他的意见,因为医生似乎没有涵盖它 假设流程1存储了一个具有x属性的项目。当进程2尝试访问所述项(无一致读取)并找到它时,是否保证所有属性都由进程1存储 我排除了另一个过程可能会改变数据的可能性 我也知道流程2不能保证看到项目,除非使用一致的读取,我只是说它最终看到它的时候 我想问题是,一旦我可以得到一个项目&我不会在其他任何地方更改它,我能假设它有一个特别的固定模式,并且访问我所有的预期属性而不检查它们是否确实存在吗 我

我刚刚在使用SimpleDB时发现了一个假设。我怀疑它是安全的,但我希望有其他的意见,因为医生似乎没有涵盖它

假设流程1存储了一个具有x属性的项目。当进程2尝试访问所述项(无一致读取)并找到它时,是否保证所有属性都由进程1存储

我排除了另一个过程可能会改变数据的可能性

我也知道流程2不能保证看到项目,除非使用一致的读取,我只是说它最终看到它的时候

我想问题是,一旦我可以得到一个项目&我不会在其他任何地方更改它,我能假设它有一个特别的固定模式,并且访问我所有的预期属性而不检查它们是否确实存在吗

我不想处于这样一种情况:我需要不断地请求项目,直到它们具有我需要使用它们的所有属性


谢谢。

尽管Amazon在文档中没有做出这样的保证,但其最终一致性的当前实现保证您将看到由Process 1存储的所有属性,或者没有任何属性

在AWS论坛上查看,更具体地说,由亚马逊员工确认行为(我的重点)

我不认为我们在文件中做出了保证,但是 当前实现将每个Put请求视为一个bundle。不会的 将请求拆分并逐段应用操作。你会得到 第一步响应或第二步响应,直到最终一致 抖出来,留给你第二步的反应


虽然这是未记录的行为,但我怀疑现在有相当多的SimpleDB用户依赖它,因此亚马逊不太可能在短期内改变它,但这是我的猜测。

很抱歉这么久才回复,我认为这个问题已经解决了。但是,感谢大家回来回答这个问题——非常棒的答案,我今晚会睡得更好:)如果他们真的改变了这一点,我希望这是一个API选项,我同意很多人可能会在没有意识到的情况下依赖这种行为。再次感谢!