[ F09_Distsys ] Post 2 496516255

Transaction相關概念

Transaction
 -是一組具有邏輯關聯性動作的集合。
 -所有的動作必須一次全部完成,不然就是必須一件都未發生,不能夠處於部分完成的狀態。

Distributed transaction
  -緣由 : 在商業行為中,交易雙方可以以口頭談論細節,但隨時都可以自由退掉這筆交易。
   但是一旦雙方簽下協定(sign the contract), 即有法律效力,這筆交易就必須履行。
  -一個 process 向其它 processes 宣佈它要開始一個 transaction,它可以執行一些動作
   (如 create、delete objects)。最後它要求其它 processes能確認(commit)這筆交易。
   若所有的processes都commit,則此交易是成立,其結果具有效力、永久性(permanent)。
   若有任何process反對,則這個交易所作的所有動作都會被去除,回復原來的狀態(state)。=> all or nothing。
  -指一個交易會使用到多個放在伺服器上的資源。

Properties of Transaction : ACID
 -Atomicity
   -一個交易是跟原子一樣是不可分割的(Atomic)
   -正常情況下,整個交易應完整的被執行。
    否則,發生任何一個錯誤情況時,則此交易所做的資料必須更新復原到交易開始前狀況(undo)。
    因此,Atomicity也稱之為不可部份完成性。
 -Consistency
   -一個完整的交易能使資料庫從一個一致性狀態(consistent state)轉換到另一個一致性狀態。
 -Isolation
   -一個正在執行中的交易不能被其他同步執行中的交易所影響。
 -Durability
   -一個交易執行確認(commit)後,它對資料庫所作的任何資料更新變動處理,都應該已經儲存在資料庫中。
    這些更新動作不會受commit後的任何錯誤所影響。