-除了加鎖之外我們還可以通過時間戳的方法的控制併發。(基於時間戳的併發控制其實是一種基於撤回的方法)
基於有效性確認的併發控制的方法,用rs(t) ws(t)儲存讀資料的集合和寫資料的集合。事務分為3個階段進行:一是讀階段 在此階段當然是讀資料元素並且在事務區域性位址空間計算寫的值。二是有效性確認階段,排程器通過比較該事務與其他事務的讀寫集合來確認。三是寫階段事務將寫集合中的元素寫入資料庫。
排程器在排程事務的過程中維護了三個集合:
start集合:事務t開始但是尚未進行有效性確認,就將其開始時間記錄。
val集合:事務t經過有效性確認單尚未完成寫操作,將其確認事件記錄。
fin結合:事務t完成寫操作。將其完成時間記錄在集合中。
那麼什麼情況確認、什麼情況不予確認呢?
如果乙個較早確認的事務正在寫較晚事務t的讀的資料,那麼t的有效性不能確認。
如果乙個較早確認的事務的寫操作可能在較晚確認事務t的寫操作之後,則t的有效性不能確認。
或者總結為以下有效性確認規則:
對所有已經經過有效性確認、且在事務t開始之前未完成的事務u,如果rs(t) 交ws(u)為空則予以確認否則不確認。
對所有已經經過有效性確認、且在事務t有效性確認之前還未完成的事務,如果ws(t) 交ws(u)為空則予以確認否則不確認。
具體思路:如果我們對乙個事務t通過確認規則判別是否予以確認:首先看fin(u) > start(t) 再看fin(u) > val(t) 。
資料庫(3)事務
事務指的是邏輯上的一組操作,這組操作要麼全部成功,要麼全部失敗。一般的事務指的都是資料庫事務,但是廣義事務的定義不侷限於資料庫事務。事務有4大特性,即 acid。acid,指資料庫事務正確執行的四個基本要素的縮寫。包含 原子性 atomicity 一致性 consistency 隔離性 isolat...
我了解的資料庫事務複製
事務複製的基本機制,在聯機文件上也有介紹。如圖,主要依靠2個 1.日誌讀取 log reader agent 2.分發 distribution agent 其中log reader agent,負責從發布資料庫上讀取日誌並且寫入到分發資料庫 distribution 中。然後distributio...
資料庫的事務
一 mysql事務 事務 邏輯上的一組操作,組成這組操作的單元,要麼都成功,要麼都不成功。mysql事務 jdbc如何控制事務 事務的特性 重點 acid 原子性 指事務是乙個不可分割的單位,事務中的操作要麼都發生,要麼都不發生 一致性 事務必須使資料從乙個一致性狀態轉化到另乙個一致性狀態 隔離性 ...