代码之家  ›  专栏  ›  技术社区  ›  James Cooper

用S3锁定

  •  22
  • James Cooper  · 技术社区  · 16 年前

    建议用什么方法实现一个简单的锁机制来与S3结合使用?

    • 按对象id获取锁
    • 修改数据
    • 释放锁

    理想的情况是寻找一个基于云的锁定机制。我可以在本地使用memcached,但是我必须处理这个问题。我没有看到一个明显的方法来实现任何awsapi的轻量级锁定,但这似乎是一个常见的问题。

    我想知道您是否可以使用SimpleDB来执行原子获取锁操作。有人试过吗?

    2 回复  |  直到 16 年前
        1
  •  11
  •   James Cooper    16 年前

    好吧,今天早上我花了一些时间玩boto,我想我有一个使用SimpleDB的解决方案。您需要最新的boto版本,以便支持条件put和一致读取。

    示例代码如下: http://pastebin.com/3XzhPqfY

    请发表意见/建议。我相信这段代码应该是相当安全的——我在main()中的测试用10个线程进行了测试。

    http://www.shlomoswidler.com/2009/12/read-after-write-consistency-in-amazon.html

        2
  •  2
  •   Adam    16 年前

    我不认为只有使用S3才能做到这一点,正如james所说,使用simpleDB的一致性增强是一种很好的工作方式

    您可以在这里查找一些示例: Amazon SimpleDB Consistency Enhancements

    versioning feature S3的

    并确保所有GET请求都将检索该版本
    成功放置修改的对象后,更新数据库中的版本id