刷題 Git工作流 相關知識點

2022-07-30 17:18:14 字數 1963 閱讀 3625

主幹分支

熱修復分支

預發布分支

開發分支

功能分支

gitflow 工作流定義了乙個圍繞專案發布的嚴格分支模型。雖然比功能分支工作流複雜幾分,但提供了用於乙個健壯的用於管理大型專案的框架。

發布分支:

維護分支:當有bug時

gitflow工作流簡化:feature分支可以省略,其他都不能

(git工作流講集中式版本控制系統時講到,實際上是資料庫相關知識)

在關聯式資料庫管理系統裡,樂觀併發控制(又名」樂觀鎖」,optimistic concurrency control,縮寫」occ」)是一種併發控制的方法。它假設多使用者併發的事務在處理時不會彼此互相影響,各事務能夠在不產生鎖的情況下處理各自影響的那部分資料。在提交資料更新之前,每個事務會先檢查在該事務讀取資料後,有沒有其他事務又修改了該資料。如果其他事務有更新的話,正在提交的事務會進行回滾。樂觀事務控制最早是由孔祥重(h.t.kung)教授提出。

樂觀併發控制的事務包括以下階段:

讀取:事務將資料讀入快取,這時系統會給事務分派乙個時間戳。

校驗:事務執行完畢後,進行提交。這時同步校驗所有事務,如果事務所讀取的資料在讀取之後又被其他事務修改,則產生衝突,事務被中斷回滾。

寫入:通過校驗階段後,將更新的資料寫入資料庫。

樂觀併發控制多數用於資料爭用不大、衝突較少的環境中,這種環境中,偶爾回滾事務的成本會低於讀取資料時鎖定資料的成本,因此可以獲得比其他併發控制方法更高的吞吐量。

相對於悲觀鎖,在對資料庫進行處理的時候,樂觀鎖並不會使用資料庫提供的鎖機制。一般的實現樂觀鎖的方式就是記錄資料版本。

在關聯式資料庫管理系統裡,悲觀併發控制(又名」悲觀鎖」,pessimistic concurrency control,縮寫」pcc」)是一種併發控制的方法。它可以阻止乙個事務以影響其他使用者的方式來修改資料。如果乙個事務執行的操作讀某行資料應用了 鎖,那只有當這個事務把鎖釋放,其他事務才能夠執行與該鎖衝突的操作。

悲觀併發控制主要用於資料爭用激烈的環境,以及發生併發衝突時使用鎖保護資料的成本要低於回滾事務的成本的環境中。

悲觀鎖,正如其名,它指的是對資料被外界(包括本系統當前的其他事務,以及來自外部系統的事務處理)修改持保守態度(悲觀),因此,在整個資料處理過程中,將資料處於鎖定狀態。 悲觀鎖的實現,往往依靠資料庫提供的鎖機制 (也只有資料庫層提供的鎖機制才能真正保證資料訪問的排他性,否則,即使在本系統中實現了加鎖機制,也無法保證外部系統不會修改資料)

在資料庫中,悲觀鎖的流程如下:

在對任意記錄進行修改前,先嘗試為該記錄加上排他鎖(exclusive locking)。

如果加鎖失敗,說明該記錄正在被修改,那麼當前查詢可能要等待或者丟擲異常。 具體響應方式由開發者根據實際需要決定。

如果成功加鎖,那麼就可以對記錄做修改,事務完成後就會解鎖了。

其間如果有其他對該記錄做修改或加排他鎖的操作,都會等待我們解鎖或直接丟擲異常。

mysql innodb中使用悲觀鎖

要使用悲觀鎖,我們必須關閉mysql資料庫的自動提交屬性,因為mysql預設使用autocommit模式,也就是說,當你執行乙個更新操作後,mysql會立刻將結果進行提交。set autocommit=0;

樂觀鎖和悲觀鎖的區別

深入理解樂觀鎖與悲觀鎖

刷題知識點

加速輸入輸出流,放到 頭部 static const auto speedup 陣列初始化容器 int a vector b begin a end a map操作 include include using namespace std int main void else 刪除 iterator ...

刷題小知識點

二維陣列的指標寫法 include using namespace std int main for int i 0 i 3 i cout a 1 2 endl system pause return 0 char a 10 則最後乙個必須是 0 前面9個數 char a 多維陣列最後一維必須有值。...

python leetcode刷題知識點筆記2

第一種方法 bfs廣度優先搜尋,使用雙端佇列deque 因為效能比另外兩種queue好得多 在大迴圈內對二叉樹的每個層做一次遍歷,range len queue 使只遍歷當前的層,每次大迴圈ans加1。由於每個節點僅訪問一次,所以時間複雜度o n import collections class s...