[英]“Atomic section” in Ruby MongoDB driver?
有沒有辦法在MongoDB服務器上執行一組非原子動作(使用Ruby驅動程序)作為單個原子動作? 我基本上需要的是對某些對象/集合的鎖定。
因為您可以對單個文檔執行原子操作,所以有多種方法可以模擬所需的內容。 看到這篇文章:
http://kylebanker.com/blog/2010/06/07/mongodb-inventory-transactions/
有關此處思想背后的一些原則,請參閱以下內容:
http://www.eaipatterns.com/docs/IEEE_Software_Design_2PC.pdf
無法在Ruby驅動程序中執行此操作,因為在MongoDB中無法執行此操作。 Mongo僅支持單文檔原子操作。 因此,基本上,單個文檔的插入,更新或刪除是原子完成的,而不是跨多個文檔的操作。
如果發生錯誤,您可以通過嘗試手動“回滾”來偽造交易。 在這種情況下,回滾將是用以前的值替換所有更改。 但這將是手動的,並且沒有大多數SQL服務器提供的ACID保證。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.