实现与S3一起使用的简单锁定机制的推荐方法是什么?
我想做的例子:
通过对象id获取锁定
从S3读取对象
修改数据
将对象写入S3
解锁
理想地寻找基于云的锁定机制.我可以在本地使用memcached,但后来我必须处理缩放.我没有看到使用任何AWS API实现轻量级锁定的明显方法,但这似乎是一个常见问题.
我想知道你是否可以使用SimpleDB来进行原子获取锁定操作.有人试过吗?
好的,我今天早上花了一些时间和boto一起玩,我想我有一个使用SimpleDB的解决方案.您需要最新的boto版本,以便支持条件放置和一致读取.
示例代码在这里:http://pastebin.com/3XzhPqfY
请发表意见/建议.我相信这段代码应该相当安全 - 我在main()中的测试尝试使用10个线程.
我没有解决的一件事是S3读取不一致(对吗?),所以理论上一个线程可能在S3值的旧副本上运行.看起来可能有一个解决方法,如下所述:
http://www.shlomoswidler.com/2009/12/read-after-write-consistency-in-amazon.html