2007-02-08

同作控制(Concurrency Control) - 簡介

今天來談談
同作控制(Concurrency Control)
對映參照範圍:II.SQL語言.C12.同作控制

目標:保護資料完整性的機制
Concurrency可以譯作為"同作"."並發"."併發", 意思是同時發生的狀況"點"。
所以同作控制在 PostgreSQL 裡要談的就是,系統在兩個或者更多Sessions試圖同時訪問同樣的Data的時候表現出來的情況。 在這種同作Sessions的情況下的目標是為所有Sessions提供效率的存取,同時還要維護嚴格的資料完整性

PostgreSQL採用的方法-MVCC
多版本同作控制(Multiversion Concurrency Control, MVCC), 這是先進於其它DBMS所特有的控制方式。當然~也提供了同於其它DBMS均有的LOCKS相關方式, 善用傳統的Locks並配合MVCC使用,會使CC更佳有效。再配合事務隔離(Tansaction isolation), 就能達到資料一致性。

MVCC 與 Locks
MVCC採用的是多個版本時間點資料模型來接受要求的Sessions, 避開Locks與鎖死的問題。 使用MVCC多版本併發控制比鎖定模型的主要優點是在MVCC裡, 對檢索(讀)Data的鎖要求與寫Data的鎖要求不衝突, 所以讀不會阻塞寫,而寫也從不阻塞讀。

PostgreSQL採行的CC種類:
1.事務隔離:讀-已提交, 可序列化層級二種。
2.明確鎖定:表級鎖, 行級鎖, 死鎖排除, Advisory Locks(8.2版新增) An advisory lock is a cooperative lock.。
3.應用層的數據完整性檢查
4.鎖和索引


http://www.postgresql.org/docs/8.2/interactive/mvcc.html

沒有留言:

網誌存檔

PostgreSQL & Google-Analytics Running...

::Planet PostgreSQL::

PostgreSQL Information Page

PostgreSQL日記(日本 石井達夫先生Blog)

PostgreSQL News

黑喵的家 - 資料庫相關

Google 網上論壇
PostgreSQL 8 DBA 專業指南中文版
書籍內容討論與更多下載區(造訪此群組)
目錄下載: PostgreSQL_8 _DBA_Index_zh_TW.pdf (更新:2007-05-18)

全球訪客分佈圖(Google)

全球訪客分佈圖(Google)