RocksDB作為一個(gè)開源的存儲(chǔ)引擎支持事務(wù)的ACID特性,而要支持ACID中的I(Isolation),并發(fā)控制這塊是少不了的,本文主要討論RocksDB的鎖機(jī)制實(shí)現(xiàn),細(xì)節(jié)會(huì)涉及到源碼分析,希望通過本文讀者可以深入了解RocksDB并發(fā)控制原理。文章主要從以下4方面展開,首先會(huì)介紹RocksDB鎖的基本結(jié)構(gòu),然后我會(huì)介紹RocksDB行鎖數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)下,鎖空間開銷,接著我會(huì)介紹幾種典型場(chǎng)景的上鎖流程,最后會(huì)介紹鎖機(jī)制中必不可少的死鎖檢測(cè)機(jī)制。
發(fā)展壯大離不開廣大客戶長(zhǎng)期以來的信賴與支持,我們將始終秉承“誠(chéng)信為本、服務(wù)至上”的服務(wù)理念,堅(jiān)持“二合一”的優(yōu)良服務(wù)模式,真誠(chéng)服務(wù)每家企業(yè),認(rèn)真做好每個(gè)細(xì)節(jié),不斷完善自我,成就企業(yè),實(shí)現(xiàn)共贏。行業(yè)涉及雨棚定制等,在成都網(wǎng)站建設(shè)公司、全網(wǎng)整合營(yíng)銷推廣、WAP手機(jī)網(wǎng)站、VI設(shè)計(jì)、軟件開發(fā)等項(xiàng)目上具有豐富的設(shè)計(jì)經(jīng)驗(yàn)。1.行鎖數(shù)據(jù)結(jié)構(gòu)
RocksDB鎖粒度最小是行,對(duì)于KV存儲(chǔ)而言,鎖對(duì)象就是key,每一個(gè)key對(duì)應(yīng)一個(gè)LockInfo結(jié)構(gòu)。所有key通過hash表管理,查找鎖時(shí),直接通過hash表定位即可確定這個(gè)key是否已經(jīng)被上鎖。但如果全局只有一個(gè)hash表,會(huì)導(dǎo)致這個(gè)訪問這個(gè)hash表的沖突很多,影響并發(fā)性能。RocksDB首先按Columnfamily進(jìn)行拆分,每個(gè)Columnfamily中的鎖通過一個(gè)LockMap管理,而每個(gè)LockMap再拆分成若干個(gè)分片,每個(gè)分片通過LockMapStripe管理,而hash表(std::unordered_map
相關(guān)數(shù)據(jù)結(jié)構(gòu)如下:
1 另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。 本文標(biāo)題:RocksDB上鎖機(jī)制-創(chuàng)新互聯(lián) 當(dāng)前地址:http://weahome.cn/article/ejdci.html 其他資訊 |