Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.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
Amazon web services 有没有通过Amazon SimpleDB实现MVCC的客户端库?_Amazon Web Services_Nosql_Amazon Simpledb_Mvcc - Fatal编程技术网

Amazon web services 有没有通过Amazon SimpleDB实现MVCC的客户端库?

Amazon web services 有没有通过Amazon SimpleDB实现MVCC的客户端库?,amazon-web-services,nosql,amazon-simpledb,mvcc,Amazon Web Services,Nosql,Amazon Simpledb,Mvcc,既然Amazon的SimpleDB实现了一致读取和条件更新/删除,那么就可以使用MVCC实现跨域事务 是否有提供此功能的客户端库?目前没有,而且可能无法实现 条件更新和删除仅允许对正在更新的项设置条件。除此之外,没有内置机制来存储同一数据的多个版本或存储多值属性的序列信息。可以使用不同的属性名称,但这会中断查询 最近的一致性更新允许在项目级别轻松实现事务。但是,在同一(或不同)域中的多个项之间,没有直接的实现。此外,没有隔离级别选项 这可能是可行的,但我担心最终会扼杀该过程中的所有查询功能。通过

既然Amazon的SimpleDB实现了一致读取和条件更新/删除,那么就可以使用MVCC实现跨域事务


是否有提供此功能的客户端库?

目前没有,而且可能无法实现

条件更新和删除仅允许对正在更新的项设置条件。除此之外,没有内置机制来存储同一数据的多个版本或存储多值属性的序列信息。可以使用不同的属性名称,但这会中断查询

最近的一致性更新允许在项目级别轻松实现事务。但是,在同一(或不同)域中的多个项之间,没有直接的实现。此外,没有隔离级别选项

这可能是可行的,但我担心最终会扼杀该过程中的所有查询功能。通过不一致的属性名称,或者通过要求比良好性能所允许的更多的选择条件

除此之外,似乎所有数据访问都需要一致的读取。这可能会抵消使用最终一致性系统的所有可用性好处,因为即使无法访问单个副本节点,一致性读取也会失败


我不是想说不,我只是想知道这有多实际。为了获得SimpleDB的高可用性,您已经不得不放弃许多功能,如果您不需要这些功能,这是很好的,但是如果您随后也放弃高可用性,我认为这将是一个很好的折衷方案的情况要少得多。

目前没有,而且可能不可能

条件更新和删除仅允许对正在更新的项设置条件。除此之外,没有内置机制来存储同一数据的多个版本或存储多值属性的序列信息。可以使用不同的属性名称,但这会中断查询

最近的一致性更新允许在项目级别轻松实现事务。但是,在同一(或不同)域中的多个项之间,没有直接的实现。此外,没有隔离级别选项

这可能是可行的,但我担心最终会扼杀该过程中的所有查询功能。通过不一致的属性名称,或者通过要求比良好性能所允许的更多的选择条件

除此之外,似乎所有数据访问都需要一致的读取。这可能会抵消使用最终一致性系统的所有可用性好处,因为即使无法访问单个副本节点,一致性读取也会失败


我不是想说不,我只是想知道这有多实际。为了获得SimpleDB的高可用性,您已经不得不放弃很多功能,如果您不需要这些功能,这是很好的,但是如果您也放弃高可用性,我认为这将是一个很好的折衷方案的情况会少很多。

在我的,我得出的结论是,试图在像SimpleDB这样的分布式系统上分层真正的事务性是一个坏主意,原因有很多

我想到的最好的东西(在不过度承诺和使系统过于复杂的情况下提供价值)是我称之为“可靠写入”的东西。这将保证跨域更新中的所有操作(放置和删除)最终完成。如果您的某个更新违反了SimpleDB约束,则部分写入永久失败的唯一方法是


此功能尚未实现,但您可以阅读更多详细信息并对该功能进行评论。我很想听听您的想法,以及这将如何满足您作为应用程序开发人员的需求。

在我的工作中,我对此考虑了很多,我得出结论,试图在像SimpleDB这样的分布式系统上分层真正的事务性是一个坏主意,原因有很多

我想到的最好的东西(在不过度承诺和使系统过于复杂的情况下提供价值)是我称之为“可靠写入”的东西。这将保证跨域更新中的所有操作(放置和删除)最终完成。如果您的某个更新违反了SimpleDB约束,则部分写入永久失败的唯一方法是


此功能尚未实现,但您可以阅读更多详细信息并对该功能进行评论。我很想听听您的想法,以及这将如何满足您作为应用程序开发人员的需求。

我同意放弃高可用性是毫无意义的,但我认为一致读取和有条件更新的双重功能确实允许实现多项目/多域事务。需要一致的读取,但我不认为这是通常的方式(可能根本不实现只读操作)。我不需要多值属性,但它们显然可以用于存储项目的版本、时间戳、事务ID等。因此,如果您的答案是否定的,那么我想您已经回答了我的问题(只是不是我希望的答案)。我同意放弃高可用性是毫无意义的,但我认为一致读取和有条件更新的双重功能确实允许实现多项目/多域事务。需要一致的读取,但我不认为这是通常的方式(可能根本不实现只读操作)。我不需要多值属性,但它们显然可以用于存储项目的版本、时间戳、事务ID等。