
【計】 concurrency control
并發控制(Concurrency Control)
在計算機科學,特别是數據庫管理系統(DBMS)和分布式系統中,并發控制指協調多個并發操作(如事務、進程或線程)對共享資源的訪問順序,确保系統的一緻性與正确性,同時維持高效性能。其核心目标是解決因并發執行導緻的數據不一緻性問題,例如丢失更新、髒讀或不可重複讀等。
通過為數據項加鎖(如共享鎖、排他鎖)限制并發訪問。例如,事務修改數據前需獲取排他鎖,阻止其他事務讀寫,避免沖突。
為每個事務分配唯一時間戳,根據時間戳順序調度操作,确保事務執行的可串行化。
假設沖突概率低,允許事務無鎖執行,提交時驗證數據是否被修改。適用于低沖突場景。
保留數據的多個曆史版本,允許讀操作訪問舊版本,避免讀寫阻塞(如PostgreSQL、MySQL InnoDB的實現)。
參考來源:
Silberschatz, A., et al. Database System Concepts (7th ed.). McGraw-Hill.
Tanenbaum, A. S., & Van Steen, M. Distributed Systems: Principles and Paradigms. Pearson.
Bernstein, P. A., et al. Concurrency Control and Recovery in Database Systems. Addison-Wesley.
Gray, J., & Reuter, A. Transaction Processing: Concepts and Techniques. Morgan Kaufmann.
Kung, H. T., & Robinson, J. T. (1981). On Optimistic Methods for Concurrency Control. ACM Transactions on Database Systems.
PostgreSQL Documentation. Concurrency Control. https://www.postgresql.org/docs/current/mvcc.html
并發控制是計算機科學中用于管理多個操作同時訪問或修改共享資源(如數據庫、内存等)的機制,其核心目标是确保系統在并發環境下仍能保持數據的一緻性和正确性。
定義
當多個用戶或事務同時訪問同一資源時,若不加控制可能導緻數據沖突(如重複寫入、讀取過時數據)。并發控制通過協調這些操作的執行順序,防止不一緻性。
典型問題
悲觀鎖(Pessimistic Locking)
默認認為沖突會發生,提前鎖定資源。例如:
樂觀鎖(Optimistic Locking)
假設沖突概率低,先執行操作,提交時檢查是否沖突。常用版本號或時間戳實現。
多版本并發控制(MVCC)
為數據保留多個版本,讀操作訪問舊版本,寫操作生成新版本,避免讀寫阻塞(如PostgreSQL、MySQL的InnoDB引擎采用此技術)。
synchronized
關鍵字、Go的通道(Channel)均屬于并發控制工具。如果需要進一步學習,推薦《數據庫系統概念》或線上課程(如CMU的數據庫導論)。
不適當初經遲延多系統方式馮韋伯氏三角光學增感作用海藻浴橫向收縮紅色盲者後腸腔殘留後端闆側檢驗道金雞甯積氣可重用程式塊落花生牦牛密碼能量變換設備廿二碳烯酸清償成本勸誘去皮大麥粒軟片岩三尖瓣雜音森林匙羹藤酸上牙槽中支實施機構水疱的逃避處所同位孔罩