AntDB-M在架構(gòu)上分為兩層,服務(wù)層和存儲(chǔ)引擎層。元數(shù)據(jù)的并發(fā)管理集中在服務(wù)層,數(shù)據(jù)的存儲(chǔ)訪問在存儲(chǔ)引擎層。為了保證DDL操作與DML操作之間的一致性,引入了元數(shù)據(jù)鎖(MDL)。AntDB-M提供了豐富的元數(shù)據(jù)鎖功能,然而高并發(fā)鎖操作很容易出現(xiàn)鎖競(jìng)爭(zhēng)、等待、死鎖的問題,AntDB-M具體提供了什么樣的元數(shù)據(jù)鎖,又是如何解決這些問題的呢?本文來一探究竟。
1 相關(guān)概念
l MDL_lock
MDL_lock即元數(shù)據(jù)鎖對(duì)象,對(duì)一個(gè)由MDL_key唯一指定的元數(shù)據(jù)加鎖,即獲取到該對(duì)象。
l MDL_key
MDL_key即每個(gè)元數(shù)據(jù)的唯一代表。由命名空間、表、列三部分構(gòu)成。
l MDL_ticket
一個(gè)元數(shù)據(jù)對(duì)應(yīng)每種鎖類型都只有一個(gè)鎖對(duì)象,每個(gè)客戶端連接線程(后文以線程指代)在持有或者等待某個(gè)鎖對(duì)象時(shí),為其分配一個(gè)唯一的對(duì)象(MDL_ticket),代表該線程持有或等待該鎖對(duì)象。
l MDL_context文章來源:http://www.zghlxwxcb.cn/news/detail-816139.html
每個(gè)線程都會(huì)分配一個(gè)元數(shù)據(jù)鎖上下文(MDL_context),保存了其持有的所有MDL_ticket、正在等待的ticket、等待條件變量(用于等待喚醒)。文章來源地址http://www.zghlxwxcb.cn/news/detail-816139.html
到了這里,關(guān)于亞信安慧AntDB:深入了解AntDB-M元數(shù)據(jù)鎖的實(shí)現(xiàn)之相關(guān)概念的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!