Terminology

非事務保存操作的術語

  • May 14, 2018

如果你只看數據庫,一切都很好。您有事務,如果出現問題,一切都會回滾。很好——我喜歡這個。

但是:我想發送郵件。現在我遇到了麻煩,因為我無法回滾。

例子:

  1. 交易開始
  2. 郵件被發送
  3. 其他事情完成(在數據庫內)
  4. 出了點問題。
  5. 回滾。

如何解決這是一個不同的問題,而不是這個。

這個問題一般怎麼稱呼。在這個例子中是關於發送郵件的。但是,一旦您在事務邊界之外的系統中修改某些內容,就會出現同樣的問題。

這個問題有名字嗎?

如果要從目錄中導入文件,也會出現大致相同的問題。如果您刪除事務中的文件,則事務可能會失敗並且文件被刪除但從未導入。或者您在交易後刪除文件。然後文件的刪除可能會失敗,並且文件會被第二次導入。

我不想為此重新發明解決方案。這就是為什麼我需要這個問題的匹配項。然後我可以閱讀一些論文並了解 2018 年的“最新技術”。

您正在描述分佈式事務。請注意,術語“事務”比簡單的“數據庫事務”具有更一般的含義。

在分佈式事務中,不同的成員可能具有不同的 ACID 屬性(例如,不一定保證會發送電子郵件)、實現這些屬性的不同方法以及不同的故障場景。

為了確保分佈式事務的一致性,通常使用稱為事務協調器(或管理器)的外部實體來控制每個成員的送出(也可以稱為資源或資源管理器)。一種常見的方法是兩階段送出(2PC)。

如果您在 Internet 上搜尋“分佈式系統中的一致性”,您會發現有關該主題的大量資料。

引用自:https://dba.stackexchange.com/questions/205831