任何通过Amazon SimpleDB实现MVCC的客户端库?
现在Amazon的SimpleDB实现了一致的读取和条件更新/删除,可以使用MVCC实现跨域事务。
有没有提供它的客户端库?
目前没有,并且有可能不可能。
条件更新和删除仅允许在正在更新的项目上设置条件。 除此之外,还没有内置机制来存储多值版本的相同数据或存储多值属性的序列信息。 可以使用不同的属性名称,但这会中断查询。
最近的一致性更新允许在项目级别轻松实施交易。 但是,在同一个(或不同的)域中的多个项目中,没有直接的实现。 也没有隔离级别选项。
这可能是可行的,但我担心你最终会在这个过程中杀死所有查询功能。 要么通过不一致的属性名称,要么需要更多的SELECT条件而不是优秀的性能。
除此之外,它似乎需要所有访问数据的一致性读取。 这可能会否定使用最终一致的系统的所有可用性优点,因为即使无法到达单个副本节点,一致的读取也会失败。
我不是想成为一个不说话的人,我只是想知道它有多实用。 你已经不得不放弃很多功能来获得SimpleDB的高可用性,如果你不需要这些功能,这很好,但如果你放弃了高可用性,我认为有很少的情况下,会是一个很好的折衷。
在为SimpleDB开发Simple Savant C#库时,我想到了很多关于此的内容,并且我得出结论,试图在像SimpleDB这样的分布式系统上对真正的事务性进行分层是一个糟糕的主意,原因很多。
我提出的最好的东西(即提供价值而没有过度希望和过度复杂的系统)是我称之为“可靠的写作”的东西。 这将保证最终完成跨域更新中的所有操作(放入和删除)。 部分写入永久失败的唯一方法是如果您的某个更新违反了SimpleDB约束。
此功能尚未实施,但您可以在此处阅读更多详细信息并评论此功能。 我有兴趣听取您的想法,以及这将如何满足您作为应用程序开发人员的需求。
链接地址: http://www.djcxy.com/p/30601.html上一篇: Any client libraries that implement MVCC over Amazon SimpleDB?