CMU 15445 12. 并發(fā)模型

背景

所有并行執(zhí)行查詢的DBMS都提供了以下幾個好處:

  • 提高吞吐量和延遲性能。
  • 提高可用性酷麦。
  • 可能降低總體擁有成本(TCO)矿卑。

在并行或分布式DBMS中,數(shù)據(jù)庫分布在多個資源上以提高并行性沃饶。
數(shù)據(jù)庫“顯示”為應(yīng)用程序的單個數(shù)據(jù)庫實例母廷。單節(jié)點DBMS的SQL查詢應(yīng)該在并行或分布式DBMS上生成相同的結(jié)果。

并行DBMS:

  • 節(jié)點在物理上彼此靠近糊肤。
  • 節(jié)點與高速LAN連接琴昆。
  • 假設(shè)節(jié)點之間的通信成本快速可靠。

分布式DBMS:

  • 節(jié)點可以相距很遠(yuǎn)馆揉。
  • 節(jié)點使用公共網(wǎng)絡(luò)連接业舍。
  • 節(jié)點之間的通信成本較慢,故障也不容忽視升酣。

并行的類型

  • Inter-Query:DBMS同時執(zhí)行不同的查詢舷暮。這可以提高吞吐量并減少延遲。查詢更新數(shù)據(jù)庫時噩茄,并發(fā)性很棘手下面。
  • Intra-Query:DBMS并行執(zhí)行單個查詢的操作。這減少了長時間運行的查詢的延遲巢墅。

Process Models

DBMS Process Model定義了系統(tǒng)如何支持來自多用戶應(yīng)用程序/環(huán)境的并發(fā)請求诸狭。
DBMS由更多或更多的Worker組成,他們負(fù)責(zé)代表客戶端執(zhí)行任務(wù)并返回結(jié)果君纫。

方法#1 - Process per Worker:

  • 每個worker都是一個單獨的OS進(jìn)程驯遇,因此依賴于OS調(diào)度程序。
  • 將共享內(nèi)存用于全局?jǐn)?shù)據(jù)結(jié)構(gòu)蓄髓。
  • 進(jìn)程崩潰不會導(dǎo)致整個系統(tǒng)崩潰叉庐。

方法#2 - 進(jìn)程池:

  • Worker使用池中任何可用的任何進(jìn)程。
  • 仍然依賴于OS調(diào)度程序和共享內(nèi)存会喝。
  • 由于無法保證在查詢之間使用相同的進(jìn)程陡叠,因此這種方法可能對CPU緩存局部性不利玩郊。

方法#3 - 每個WORKER一個線程:

  • 具有多個工作線程的單個進(jìn)程。
  • DBMS必須管理自己的計劃枉阵。
  • 可能會或可能不會使用調(diào)度線程译红。
  • 雖然線程崩潰(可能)會導(dǎo)致整個系統(tǒng)崩潰,但我們必須確保編寫高質(zhì)量的代碼以確保不會發(fā)生這種情況兴溜。

使用多線程體系結(jié)構(gòu)的優(yōu)點是每個上下文切換的開銷更少侦厚,并且您不必管理共享模型。 每個工作者模型的線程并不意味著您具有查詢內(nèi)并行性(intra-query
parallelism)拙徽。
對于每個查詢計劃刨沦,DBMS必須決定執(zhí)行的位置,時間和方式:
? 它應(yīng)該使用多少個任務(wù)膘怕?
? 它應(yīng)該使用多少個CPU核心想诅?
? 任務(wù)執(zhí)行的CPU核心是什么?
? 任務(wù)應(yīng)在何處存儲其輸出岛心?

多個QUERY的并行

如果都是讀来破,比較簡單。涉及到寫鹉梨,很難做對讳癌。要用到隔離或者鎖。我會在之后的2PL,OCC,MVCC里介紹

單個QUERY的并行

此類并行性的目標(biāo)是通過并行執(zhí)行其運算符來提高單個查詢的性能存皂。 每個關(guān)系運算符都有并行算法晌坤。


image.png

Intra-Operator Parallelism

  • 查詢計劃的運算符被分解為獨立實例,這些實例在不同的數(shù)據(jù)子集上執(zhí)行相同的函數(shù)旦袋。
  • DBMS在查詢計劃中插入exchange運算符骤菠,以合并來自子運算符的結(jié)果。

交換運算符阻止DBMS在計劃中執(zhí)行它上面的運算符疤孕,直到它從子節(jié)點接收到所有數(shù)據(jù)


image.png

Inter-Operator Parallelism

  • 操作重疊商乎,以便將數(shù)據(jù)從一個階段傳遞到下一個階段而不實現(xiàn)。這有時稱為流水線并行祭阀。
  • 此方法未在傳統(tǒng)關(guān)系DBMS中廣泛使用鹉戚。 并非所有算子都能在他們看到孩子們的所有元組之前發(fā)出輸出。 這在流處理系統(tǒng)中更常見专控,該系統(tǒng)是在輸入元組流上不斷執(zhí)行查詢的系統(tǒng)抹凳。


    image.png

IO 并行

如果磁盤始終是主要瓶頸,則使用其他進(jìn)程/線程并行執(zhí)行查詢將無法提高性能伦腐。因此赢底,我們需要一種方法將數(shù)據(jù)庫拆分為多個存儲設(shè)備。

多磁盤并行

配置OS /硬件以將DBMS的文件存儲在多個存儲設(shè)備中⌒叶常可以通過存儲設(shè)備和RAID配置來完成粹庞。這對DBMS是透明的。它不能讓W(xué)orker在不同的設(shè)備上運行洽损,因為它不知道潛在的并行性庞溜。

基于文件的分區(qū)

某些DBMS允許您指定每個單獨數(shù)據(jù)庫的磁盤位置。緩沖池管理器將頁面映射到磁盤位置趁啸。如果DBMS將每個數(shù)據(jù)庫存儲在單獨的目錄中强缘,這在文件系統(tǒng)級別也很容易。但是不傅,可能會共享日志文件。

邏輯分區(qū)

將單個邏輯表拆分為單獨存儲/管理的不相交的物理段赏胚。這種分區(qū)對于應(yīng)用程序來說理想地是透明的访娶。也就是說,應(yīng)用程序應(yīng)該能夠訪問邏輯表而無需關(guān)心事物的存儲方式觉阅。

垂直分區(qū):
  • 將表的屬性存儲在單獨的位置(如列存儲)崖疤。
  • 必須存儲元組信息以重建原始記錄。


    image.png
水平分區(qū):
  • 根據(jù)某些分區(qū)鍵將表的元組劃分為不相交的段典勇。
  • 有不同的方法來決定如何分區(qū)(例如劫哼,散列,范圍或謂詞分區(qū))割笙。每種方法的功效取決于查詢权烧。


    image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市伤溉,隨后出現(xiàn)的幾起案子般码,更是在濱河造成了極大的恐慌,老刑警劉巖乱顾,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件板祝,死亡現(xiàn)場離奇詭異,居然都是意外死亡走净,警方通過查閱死者的電腦和手機(jī)券时,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伏伯,“玉大人橘洞,你說我怎么就攤上這事《媪郏” “怎么了震檩?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我抛虏,道長博其,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任迂猴,我火速辦了婚禮慕淡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘沸毁。我一直安慰自己峰髓,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布息尺。 她就那樣靜靜地躺著携兵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪搂誉。 梳的紋絲不亂的頭發(fā)上徐紧,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機(jī)與錄音炭懊,去河邊找鬼并级。 笑死,一個胖子當(dāng)著我的面吹牛侮腹,可吹牛的內(nèi)容都是我干的嘲碧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼父阻,長吁一口氣:“原來是場噩夢啊……” “哼愈涩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起至非,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤钠署,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后荒椭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谐鼎,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年趣惠,在試婚紗的時候發(fā)現(xiàn)自己被綠了狸棍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡味悄,死狀恐怖草戈,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情侍瑟,我是刑警寧澤唐片,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布丙猬,位于F島的核電站,受9級特大地震影響费韭,放射性物質(zhì)發(fā)生泄漏茧球。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一星持、第九天 我趴在偏房一處隱蔽的房頂上張望抢埋。 院中可真熱鬧,春花似錦督暂、人聲如沸揪垄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽饥努。三九已至,卻和暖如春卢未,著一層夾襖步出監(jiān)牢的瞬間肪凛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工辽社, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人翘鸭。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓滴铅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親就乓。 傳聞我的和親對象是個殘疾皇子汉匙,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容