CMU的Self-Driving數(shù)據(jù)庫(kù)Peloton

本文是《Self-Driving Database Management Systems》論文的筆記。

筆者注:本篇論文是學(xué)術(shù)界對(duì)Self-Driving DBMS概念進(jìn)行詳盡定義的一篇論文,對(duì)Self-Driving DBMS概念邊界進(jìn)行了限定,并用Peloton框架的功能實(shí)現(xiàn)進(jìn)行了試驗(yàn)驗(yàn)證肥败。

背景

在過去幾十年,DBA人員和數(shù)據(jù)庫(kù)研究人員都為更好的調(diào)優(yōu)數(shù)據(jù)性能和物理設(shè)計(jì)開發(fā)了各式各樣的工具,但仍不能脫離人工的干預(yù)。隨云數(shù)據(jù)庫(kù)的發(fā)展斜友,不需要人工干預(yù)的DBMS就變成了一個(gè)迫切的需求炸裆,于是Self-Driving DBMS就成了必然選擇垃它。

Self-Driving DBMS與早期各種DBMS的不同之處在于:該系統(tǒng)的所有特性都是由計(jì)劃組件構(gòu)成,不僅可以對(duì)系統(tǒng)當(dāng)前的workload進(jìn)行調(diào)優(yōu)烹看,同時(shí)對(duì)未來(lái)的workload進(jìn)行預(yù)測(cè)国拇,以相應(yīng)的調(diào)整系統(tǒng)。因此惯殊,自動(dòng)駕駛的DBMS可以在不需要人工介入的情況下酱吝,完成以前所有的優(yōu)化工作,并且在合適的時(shí)機(jī)去執(zhí)行這些操作土思。它甚至可以支持一些目前人工所不能完成的务热、更高級(jí)的優(yōu)化操作。

Self-Driving DBMS面臨的幾個(gè)問題

Self-Driving DBMS是一個(gè)新的研究問題己儒,面對(duì)Self-Driving這個(gè)要求崎岂,對(duì)DBMS提出了諸多挑戰(zhàn),主要有如下三點(diǎn):

理解業(yè)務(wù)應(yīng)用的workload闪湾。從業(yè)務(wù)應(yīng)用的角度來(lái)看冲甘,數(shù)據(jù)庫(kù)的使用情況可以分為OLAP、OLTP和HTAP。幾種模式對(duì)應(yīng)了不同的使用場(chǎng)景和底層的存儲(chǔ)方式江醇,OLAP以數(shù)據(jù)分析場(chǎng)景為主濒憋,數(shù)據(jù)采用列存儲(chǔ),便于對(duì)某一列數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析陶夜;OLTP以交易型場(chǎng)景為主凛驮,數(shù)據(jù)采用行存儲(chǔ),便于快速的對(duì)一條記錄進(jìn)行增刪改查律适;HATP則是混合型場(chǎng)景辐烂,不僅有頻繁的條目增刪改查,也有大量的單列分析應(yīng)用捂贿。

DBMS還需要能夠預(yù)測(cè)資源使用的趨勢(shì)纠修。這有助于系統(tǒng)根據(jù)未來(lái)資源需求進(jìn)行動(dòng)態(tài)資源調(diào)配以確保對(duì)性能的影響保持最低。由于很多應(yīng)用的運(yùn)行模式與人的作息時(shí)間密切相關(guān)厂僧,DBA通常會(huì)在業(yè)務(wù)低峰期進(jìn)行一些優(yōu)化操作扣草,避免影響服務(wù)質(zhì)量。相應(yīng)的,總會(huì)存在一些業(yè)務(wù)workload的異常狀況是DBMS無(wú)法避免的粮坞。但是魂贬,這些模型是可以提供一些更早期的預(yù)警使得DBMS盡早完成相應(yīng)操作。有了預(yù)測(cè)模型之后密浑,DBMS可以通過一些調(diào)優(yōu)操作使數(shù)據(jù)庫(kù)在預(yù)期workload上工作的更好。自動(dòng)駕駛的DBMS可以支持的操作主要有如下幾種:(1) 數(shù)據(jù)庫(kù)的物理設(shè)計(jì)粗井;(2)數(shù)據(jù)組織形式的變更尔破;(3)DBMS運(yùn)行時(shí)的行為。這三類操作的詳細(xì)內(nèi)容如Table 1所示浇衬。

DBMS需要一個(gè)靈活的懒构、內(nèi)存級(jí)的架構(gòu),便于快速應(yīng)用優(yōu)化操作耘擂。如果不能夠靈活胆剧、及時(shí)的生效相應(yīng)的優(yōu)化措施,優(yōu)化的意義就大打折扣醉冤,同時(shí)也不能算是自動(dòng)駕駛秩霍。

此外,Self-Driving的DBMS還存在兩個(gè)限制條件:

DBMS不能要求開發(fā)人員通過特定的API去重寫他們的應(yīng)用程序或提供關(guān)于其行為的補(bǔ)充說(shuō)明蚁阳。

它不能依賴于特定環(huán)境的分析工具铃绒。這是為了確保該DBMS工具后續(xù)可擴(kuò)展。

同樣韵吨,也存在自動(dòng)駕駛的DBMS并不能完成的工作匿垄,主要是指依賴外部信息的DBA日常工作移宅,例如權(quán)限控制、數(shù)據(jù)清洗椿疗、版本控制等漏峰。

Peloton的架構(gòu)

現(xiàn)有的DBMS對(duì)于自動(dòng)化操作都比較不友好,通常都需要重啟DB來(lái)使得配置生效届榄。因此浅乔,一個(gè)全新的DBMS架構(gòu)是必須的,整合了自動(dòng)駕駛組件的DBMS需要對(duì)系統(tǒng)有更加全面和細(xì)粒度的控制铝条。

Peloton采用了多版本并發(fā)控制的形式靖苇,它可以在不阻塞OLAP查詢的情況下,提供OLTP事務(wù)和交互班缰。Peloton采用了無(wú)鎖數(shù)據(jù)結(jié)構(gòu)的內(nèi)存存儲(chǔ)管理器贤壁,允許快速的執(zhí)行HTAP。

在Peloton的設(shè)計(jì)中埠忘,系統(tǒng)能夠在不依賴人為操作的情況下自主學(xué)習(xí)如何提升系統(tǒng)性能脾拆,降低響應(yīng)時(shí)間是目前最主要的優(yōu)化目標(biāo)。

在Peloton中內(nèi)置了監(jiān)控工具莹妒,用于收集系統(tǒng)內(nèi)部的各種監(jiān)控?cái)?shù)據(jù)名船,包括資源開銷、DBMS性能數(shù)據(jù)旨怠、各類優(yōu)化操作的事件信息等渠驼。通過這些數(shù)據(jù),DBMS進(jìn)行預(yù)測(cè)模型的訓(xùn)練鉴腻,并以此來(lái)識(shí)別性能瓶頸和其他需優(yōu)化的問題(例如迷扇,索引缺失、過載節(jié)點(diǎn)等)拘哨。

Workload 聚類

聚類workload的目的是為了降低DBMS管理的預(yù)測(cè)模型數(shù)量谋梭,并且降低預(yù)測(cè)應(yīng)用行為的復(fù)雜度信峻。Peloton采用了DBSCAN聚類算法倦青,該方法已經(jīng)在靜態(tài)OLTP workload上被證實(shí)可行。

聚類面臨的問題是如何選擇query的特征盹舞。傳統(tǒng)對(duì)查詢做聚類時(shí)产镐,通常采用如下兩種特征:查詢的運(yùn)行時(shí)指標(biāo)和查詢的邏輯語(yǔ)義特征。而Peloton采用的是訪問頻率做特征踢步,這三類特征各有優(yōu)劣癣亚,對(duì)比如下:

* 運(yùn)行時(shí)指標(biāo)(rt、邏輯讀获印、物理讀等)

????優(yōu)點(diǎn):從觀測(cè)角度去聚類述雾,不需要理解query的語(yǔ)義。

????缺點(diǎn):對(duì)數(shù)據(jù)庫(kù)物理設(shè)計(jì)和數(shù)據(jù)分布比較敏感。

* 邏輯語(yǔ)義(查詢計(jì)劃玻孟、使用索引)

????優(yōu)點(diǎn):語(yǔ)義與物理設(shè)計(jì)以及數(shù)據(jù)分布均無(wú)關(guān)唆缴,只表示query的語(yǔ)義。

????缺點(diǎn):它的聚類結(jié)果與workload關(guān)系不大黍翎,主要是語(yǔ)義上的聚類面徽。

在實(shí)際應(yīng)用時(shí),如何判斷模型是否依然適用是一個(gè)現(xiàn)實(shí)問題匣掸。Peloton采用了交叉驗(yàn)證的方式趟紊,當(dāng)誤差超過閾值時(shí),重新訓(xùn)練聚類模型碰酝。

Workload預(yù)測(cè)

預(yù)測(cè)模塊使得系統(tǒng)可以識(shí)別周期性的workload和數(shù)據(jù)增長(zhǎng)的趨勢(shì)霎匈,以提供更好的服務(wù)性能。每當(dāng)DBMS執(zhí)行完一個(gè)query送爸,系統(tǒng)將對(duì)該query的聚類中心做標(biāo)識(shí)唧躲,并按照固定的統(tǒng)計(jì)區(qū)間去記錄該類查詢的請(qǐng)求次數(shù)。Peloton使用這些數(shù)據(jù)來(lái)訓(xùn)練預(yù)測(cè)模型并估計(jì)未來(lái)請(qǐng)求的數(shù)量碱璃,同時(shí)也會(huì)為其他DBMS或OS的指標(biāo)構(gòu)建類似的模型弄痹。

在預(yù)測(cè)方面較為常用的方法為ARMA模型和RNN模型,優(yōu)缺點(diǎn)對(duì)比如下:

* ARMA模型:

????優(yōu)點(diǎn):可以刻畫線性關(guān)系嵌器,計(jì)算不復(fù)雜肛真。

????缺點(diǎn):通常依賴人工調(diào)參,并且線性關(guān)系的假設(shè)不太符合workload的場(chǎng)景爽航。

* RNN模型(LSTM):

????優(yōu)點(diǎn):能保存一些時(shí)序數(shù)據(jù)中的特性蚓让,不依賴線性假設(shè)。

????缺點(diǎn):對(duì)訓(xùn)練數(shù)據(jù)集要求較高讥珍,計(jì)算量大历极。

Peloton通過將多個(gè)RNN進(jìn)行組合的方式,讓DBMS具備了快速處理問題的能力衷佃。

Action計(jì)劃與執(zhí)行

Peloton的控制框架可以提供對(duì)系統(tǒng)的持續(xù)監(jiān)控并選擇相應(yīng)的優(yōu)化措施去提升應(yīng)用的服務(wù)性能趟卸。未來(lái)可以用強(qiáng)化學(xué)習(xí)來(lái)提升并發(fā)控制和查詢優(yōu)化。

1. Action生成

Peloton系統(tǒng)會(huì)收集潛在可能提升性能的操作氏义,并把這些操作應(yīng)用前后的系統(tǒng)狀態(tài)一并存儲(chǔ)锄列。Peloton系統(tǒng)后續(xù)會(huì)根據(jù)預(yù)測(cè)到的workload從這些歷史操作記錄搜索相似的場(chǎng)景,并得到潛在的優(yōu)化操作惯悠。

每個(gè)優(yōu)化操作具備標(biāo)識(shí)了CPU核數(shù)的開銷邻邮,便于Peloton在執(zhí)行這些優(yōu)化操作是可以合理分配cpu核數(shù)。影響DBMS資源分配的那些修改配置信息的操作克婶,被表示為幅度變更而不是絕對(duì)值的變更筒严。部分操作需要有逆操作丹泉,例如添加索引的逆操作是刪除索引。

2. Action計(jì)劃

DBMS需要根據(jù)預(yù)測(cè)到的workload選擇出相應(yīng)的優(yōu)化措施鸭蛙,然后在實(shí)例上真正執(zhí)行這些操作嘀掸。這個(gè)步驟由控制理論提供保障」娑瑁基礎(chǔ)的控制理論:在每個(gè)時(shí)間點(diǎn)上睬塌,系統(tǒng)估計(jì)出workload,然后找到可以優(yōu)化當(dāng)前性能的一系列操作歇万。從這一組操作中選擇第一個(gè)操作執(zhí)行揩晴,然后等待該操作完全生效后,再執(zhí)行下一個(gè)操作贪磺。而這個(gè)控制理論的實(shí)現(xiàn)硫兰,也對(duì)DBMS提出了高性能的要求,如果一個(gè)操作需要執(zhí)行數(shù)分鐘寒锚,那么DBMS就不容易監(jiān)控性能是否變好劫映,以及是否需要執(zhí)行逆操作。

在Peloton中刹前,這些操作以樹狀結(jié)構(gòu)存儲(chǔ)泳赋,樹的每一層表示DBMS可以執(zhí)行相應(yīng)操作的時(shí)間。系統(tǒng)根據(jù)不同操作的代價(jià)-收益信息選擇執(zhí)行順序喇喉。

代價(jià):指執(zhí)行該操作所需要的時(shí)間祖今,以及執(zhí)行操作期間DBMS性能下降的程度。

收益:指執(zhí)行該操作后相應(yīng)查詢?cè)跁r(shí)延上的提升拣技。

同時(shí)千诬,系統(tǒng)會(huì)評(píng)估不同操作對(duì)系統(tǒng)資源的開銷,如果操作會(huì)導(dǎo)致資源開銷超過閾值膏斤,那么該操作就不會(huì)被執(zhí)行徐绑。

3. 操作執(zhí)行

Peloton執(zhí)行非阻塞式的優(yōu)化操作。例如莫辨,重組一個(gè)數(shù)據(jù)表的布局或者將該表的存放位置進(jìn)行變更傲茄,這都不影響相應(yīng)查詢的處理。DBMS同樣可以通過內(nèi)部集成的機(jī)器學(xué)習(xí)組件處理資源調(diào)度類問題衔掸√棠唬可以采用一個(gè)額外的處理器或者GPU以避免額外的計(jì)算開銷拖慢DBMS的性能俺抽,或者在額外的機(jī)器上處理這些預(yù)測(cè)和計(jì)劃內(nèi)容敞映,但是這將增加系統(tǒng)設(shè)計(jì)的復(fù)雜性和額外的開銷。

4. 補(bǔ)充考慮

Self-Driving的DBMS需要能夠用人類可讀的形式解釋其決策過程磷斧。DBA可以輸入更多的補(bǔ)充信息振愿,例如哪些庫(kù)的優(yōu)先級(jí)更高捷犹。為了避免DBA人工決策出現(xiàn)失誤,DBA也需要提供出相應(yīng)決策的解釋冕末,便于DBMS后續(xù)能夠記錄并使用萍歉。

Peloton的運(yùn)行效果

Peloton中集成了TensorFlow模塊,并采用2個(gè)RNN對(duì)跨度為一個(gè)月&總量為52m的查詢workload進(jìn)行模型訓(xùn)練档桃,為了避免過擬合枪孩,應(yīng)用了10%的Dropout策略,用交叉驗(yàn)證的方式進(jìn)行了試驗(yàn)藻肄。

兩個(gè)RNN的作用如下:

1. 第一個(gè)RNN

????輸入:過去兩小時(shí)的查詢次數(shù)(分鐘粒度蔑舞,向量表示)

????輸出:未來(lái)一小時(shí)的查詢次數(shù)(分鐘粒度)

2. 第二個(gè)RNN

????輸入:前一天的查詢次數(shù)(小時(shí)粒度,向量表示)

????輸出:后一天的查詢次數(shù)(小時(shí)粒度)

實(shí)驗(yàn)一:對(duì)workload的不同粒度和跨度進(jìn)行預(yù)測(cè)

兩個(gè)RNN的預(yù)測(cè)效果如上圖所示嘹屯,較近時(shí)間段的看著還可以攻询,長(zhǎng)時(shí)間的預(yù)測(cè)效果看著一般,不過這也是預(yù)料之中的州弟。

實(shí)驗(yàn)二:對(duì)不同workload類型進(jìn)行實(shí)驗(yàn)

該實(shí)驗(yàn)主要是來(lái)看DBMS對(duì)不同類型OLAP钧栖、OLTP和HTAP的數(shù)據(jù)優(yōu)化能力,與固定的靜態(tài)行存儲(chǔ)婆翔、列存儲(chǔ)進(jìn)行對(duì)比拯杠。實(shí)驗(yàn)是HATP環(huán)境,白天執(zhí)行OLTP啃奴,夜間OLAP阴挣。

可以看出來(lái),Peloton會(huì)隨著時(shí)間的推移而收斂到一個(gè)適合于工作負(fù)載的布局纺腊。在第一個(gè)OLAP之后畔咧,DBMS將行存儲(chǔ)的元組遷移到列存儲(chǔ)的布局,這是OLAP查詢的理想選擇揖膜,延遲下降誓沸,并與純列存儲(chǔ)的系統(tǒng)相匹配。其他階段同理壹粟。

總結(jié)

本篇論文最主要的貢獻(xiàn)是界定了Self-Driving DBMS拜隧,并用Peloton DBMS作為示例進(jìn)行了架構(gòu)介紹。作者認(rèn)為趁仙,之所以現(xiàn)在可以做Self-Driving DBMS洪添,完全是深度神經(jīng)網(wǎng)絡(luò)、硬件加速和高性能數(shù)據(jù)庫(kù)架構(gòu)的福利雀费。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末干奢,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子盏袄,更是在濱河造成了極大的恐慌忿峻,老刑警劉巖薄啥,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異逛尚,居然都是意外死亡垄惧,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門绰寞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)到逊,“玉大人,你說(shuō)我怎么就攤上這事滤钱±俟埽” “怎么了?”我有些...
    開封第一講書人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵菩暗,是天一觀的道長(zhǎng)掰曾。 經(jīng)常有香客問我,道長(zhǎng)停团,這世上最難降的妖魔是什么旷坦? 我笑而不...
    開封第一講書人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮佑稠,結(jié)果婚禮上秒梅,老公的妹妹穿的比我還像新娘。我一直安慰自己舌胶,他們只是感情好捆蜀,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著幔嫂,像睡著了一般辆它。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上履恩,一...
    開封第一講書人閱讀 51,274評(píng)論 1 300
  • 那天锰茉,我揣著相機(jī)與錄音,去河邊找鬼切心。 笑死飒筑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的绽昏。 我是一名探鬼主播协屡,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼全谤!你這毒婦竟也來(lái)了肤晓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎材原,沒想到半個(gè)月后沸久,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體季眷,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡余蟹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了子刮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片威酒。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖挺峡,靈堂內(nèi)的尸體忽然破棺而出葵孤,到底是詐尸還是另有隱情,我是刑警寧澤橱赠,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布尤仍,位于F島的核電站,受9級(jí)特大地震影響狭姨,放射性物質(zhì)發(fā)生泄漏宰啦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一饼拍、第九天 我趴在偏房一處隱蔽的房頂上張望赡模。 院中可真熱鬧,春花似錦师抄、人聲如沸漓柑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)辆布。三九已至,卻和暖如春茶鉴,著一層夾襖步出監(jiān)牢的瞬間谚殊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工蛤铜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嫩絮,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓围肥,卻偏偏與公主長(zhǎng)得像剿干,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子穆刻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354