簡體   English   中英

Ruby MongoDB驅動程序中的“原子部分”?

[英]“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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM