大規(guī)模分布式內(nèi)存列式數(shù)據(jù)庫(kù)編譯執(zhí)行框架
發(fā)布時(shí)間:2021-01-13 17:13
隨著數(shù)據(jù)規(guī)模的爆炸性增長(zhǎng),人類創(chuàng)造了分布式計(jì)算系統(tǒng),實(shí)現(xiàn)結(jié)構(gòu)化數(shù)據(jù)的處理,即聯(lián)機(jī)分析處理。已有的分布式計(jì)算系統(tǒng),如分布式內(nèi)存數(shù)據(jù)庫(kù),普遍采用批處理方式處理海量數(shù)據(jù),同時(shí)使用更適合批處理計(jì)算的存儲(chǔ)格式存儲(chǔ)數(shù)據(jù),即列式存儲(chǔ)。同時(shí)內(nèi)存數(shù)據(jù)庫(kù)使用更大的內(nèi)存空間彌補(bǔ)傳統(tǒng)數(shù)據(jù)庫(kù)的磁盤“I/O墻”問(wèn)題。為了進(jìn)一步提升計(jì)算能力,已有的批處理方式的“內(nèi)存墻”問(wèn)題需要被解決。使用編譯技術(shù)動(dòng)態(tài)生成計(jì)算任務(wù)的可執(zhí)行代碼的方法,能進(jìn)一步提升分布式內(nèi)存數(shù)據(jù)庫(kù)中單機(jī)和系統(tǒng)總體的計(jì)算能力,也對(duì)計(jì)劃生成和執(zhí)行提出了新的要求。該方法一方面能使用運(yùn)行時(shí)信息生成精簡(jiǎn)和高效的可執(zhí)行代碼,提升代碼局部性;另一方面能融合多個(gè)計(jì)算任務(wù)減少內(nèi)存數(shù)據(jù)讀寫(xiě),提升數(shù)據(jù)局部性。后者也適應(yīng)于非易失性內(nèi)存這一新的存儲(chǔ)介質(zhì)。本文基于分布式列式內(nèi)存數(shù)據(jù)庫(kù),研究通過(guò)動(dòng)態(tài)生成執(zhí)行代碼的技術(shù)提升計(jì)算效率的方法及對(duì)應(yīng)的計(jì)劃生成和執(zhí)行方法。主要工作如下:1.研究、設(shè)計(jì)和實(shí)現(xiàn)了基于大規(guī)模分布式內(nèi)存列式數(shù)據(jù)庫(kù)的編譯執(zhí)行框架。該框架將計(jì)算任務(wù)的執(zhí)行計(jì)劃圖轉(zhuǎn)換為底層的計(jì)算原語(yǔ)(算子),并能將多個(gè)計(jì)算原語(yǔ)的處理融入同一個(gè)函數(shù)的可執(zhí)行代碼中。該框架支持自定義其他計(jì)算原語(yǔ)以...
【文章來(lái)源】:電子科技大學(xué)四川省 211工程院校 985工程院校 教育部直屬院校
【文章頁(yè)數(shù)】:94 頁(yè)
【學(xué)位級(jí)別】:碩士
【文章目錄】:
摘要
abstract
第一章 緒論
1.1 研究背景與意義
1.2 國(guó)內(nèi)外研究歷史及現(xiàn)狀
1.3 本文的主要貢獻(xiàn)和創(chuàng)新
1.4 本論文的結(jié)構(gòu)安排
第二章 理論基礎(chǔ)及相關(guān)技術(shù)
2.1 數(shù)據(jù)庫(kù)執(zhí)行模型
2.1.1 火山模型
2.1.2 物化模型
2.1.3 向量化模型
2.1.4 拉取模型和推送模型
2.2 編譯執(zhí)行方式與執(zhí)行計(jì)劃中數(shù)據(jù)流式執(zhí)行
2.2.1 編譯執(zhí)行
2.2.2 執(zhí)行計(jì)劃中的Pipeline
2.3 編譯技術(shù)
2.3.1 編譯相關(guān)概念與程序執(zhí)行方式
2.3.2 GCC與 C/C++
2.3.3 LLVM
2.4 本章小結(jié)
第三章 分布式內(nèi)存列式數(shù)據(jù)庫(kù)編譯執(zhí)行框架的總體設(shè)計(jì)
3.1 分布式內(nèi)存數(shù)據(jù)庫(kù)架構(gòu)
3.2 應(yīng)用場(chǎng)景與設(shè)計(jì)目標(biāo)
3.3 系統(tǒng)總體架構(gòu)和模塊設(shè)計(jì)
3.3.1 執(zhí)行引擎總體架構(gòu)和系統(tǒng)執(zhí)行流程
3.3.2 執(zhí)行引擎內(nèi)部架構(gòu)
3.3.3 編譯模塊
3.3.4 代碼復(fù)用和管理器模塊
3.3.5 數(shù)據(jù)存儲(chǔ)模型和概念
3.4 編譯執(zhí)行下的執(zhí)行計(jì)劃優(yōu)化
3.4.1 表達(dá)式的生成
3.4.2 執(zhí)行計(jì)劃及其執(zhí)行機(jī)分配
3.4.3 多列數(shù)據(jù)讀取和篩選的融合
3.4.4 Join節(jié)點(diǎn)的融合
3.4.5 Group、Aggregation節(jié)點(diǎn)的融合
3.5 各節(jié)點(diǎn)算子代碼生成方法
3.5.1 Pipeline代碼生成方法
3.5.2 Scan節(jié)點(diǎn)和Filt節(jié)點(diǎn)代碼生成方案
3.5.3 Join節(jié)點(diǎn)的代碼生成方案
3.5.4 Sort節(jié)點(diǎn)的代碼生成方案
3.5.5 Group節(jié)點(diǎn)的代碼生成方案
3.5.6 Aggregation節(jié)點(diǎn)的代碼生成方案
3.5.7 算術(shù)計(jì)算Algo節(jié)點(diǎn)的代碼生成方案
3.6 代碼參數(shù)化和匹配方法
3.6.1 代碼參數(shù)化方法
3.6.2 代碼匹配技術(shù)
3.7 本章小結(jié)
第四章 分布式內(nèi)存列式數(shù)據(jù)庫(kù)編譯執(zhí)行框架的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)
4.1 整體任務(wù)執(zhí)行流程實(shí)現(xiàn)
4.1.1 編譯執(zhí)行的整體任務(wù)處理流程的實(shí)現(xiàn)
4.1.2 線程池框架的實(shí)現(xiàn)
4.1.3 網(wǎng)絡(luò)庫(kù)和消息驅(qū)動(dòng)流程的實(shí)現(xiàn)
4.2 LLVM庫(kù)的封裝實(shí)現(xiàn)
4.2.1 LLVM庫(kù)基礎(chǔ)對(duì)象和功能
4.2.2 基本對(duì)象的封裝實(shí)現(xiàn)
4.2.3 控制語(yǔ)句的封裝實(shí)現(xiàn)
4.2.4 函數(shù)構(gòu)造的封裝實(shí)現(xiàn)
4.3 編譯執(zhí)行相關(guān)數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)
4.3.1 生成代碼的執(zhí)行參數(shù)
4.3.2 中間數(shù)據(jù)結(jié)構(gòu)
4.4 算子和生成代碼的實(shí)現(xiàn)
4.4.1 代碼生成、編譯與執(zhí)行流程
4.4.2 節(jié)點(diǎn)的編譯過(guò)程
4.4.3 Scan算子的實(shí)現(xiàn)
4.4.4 Filt算子的實(shí)現(xiàn)
4.4.5 Join算子的實(shí)現(xiàn)
4.4.6 Group算子的實(shí)現(xiàn)
4.4.7 Aggregation算子的實(shí)現(xiàn)
4.4.8 Algo算子和Output算子的實(shí)現(xiàn)
4.4.9 代碼管理器
4.5 本章小結(jié)
第五章 系統(tǒng)測(cè)試與分析
5.1 測(cè)試環(huán)境
5.2 功能測(cè)試
5.3 性能測(cè)試
5.3.1 Filt節(jié)點(diǎn)算子測(cè)試
5.3.2 Join節(jié)點(diǎn)算子測(cè)試
5.3.3 Group節(jié)點(diǎn)測(cè)試
5.3.4 Sort節(jié)點(diǎn)算子測(cè)試
5.3.5 Filt和 Join
5.3.6 Join與 Group
5.4 本章小結(jié)
第六章 總結(jié)與展望
致謝
參考文獻(xiàn)
攻讀碩士期間取得的研究成果
【參考文獻(xiàn)】:
期刊論文
[1]OceanBase關(guān)系數(shù)據(jù)庫(kù)架構(gòu)[J]. 陽(yáng)振坤. 華東師范大學(xué)學(xué)報(bào)(自然科學(xué)版). 2014(05)
[2]基于EPOLL的單進(jìn)程事件驅(qū)動(dòng)通信服務(wù)器設(shè)計(jì)與分析[J]. 段翰聰,盧顯良,宋杰. 計(jì)算機(jī)應(yīng)用. 2004(10)
本文編號(hào):2975254
【文章來(lái)源】:電子科技大學(xué)四川省 211工程院校 985工程院校 教育部直屬院校
【文章頁(yè)數(shù)】:94 頁(yè)
【學(xué)位級(jí)別】:碩士
【文章目錄】:
摘要
abstract
第一章 緒論
1.1 研究背景與意義
1.2 國(guó)內(nèi)外研究歷史及現(xiàn)狀
1.3 本文的主要貢獻(xiàn)和創(chuàng)新
1.4 本論文的結(jié)構(gòu)安排
第二章 理論基礎(chǔ)及相關(guān)技術(shù)
2.1 數(shù)據(jù)庫(kù)執(zhí)行模型
2.1.1 火山模型
2.1.2 物化模型
2.1.3 向量化模型
2.1.4 拉取模型和推送模型
2.2 編譯執(zhí)行方式與執(zhí)行計(jì)劃中數(shù)據(jù)流式執(zhí)行
2.2.1 編譯執(zhí)行
2.2.2 執(zhí)行計(jì)劃中的Pipeline
2.3 編譯技術(shù)
2.3.1 編譯相關(guān)概念與程序執(zhí)行方式
2.3.2 GCC與 C/C++
2.3.3 LLVM
2.4 本章小結(jié)
第三章 分布式內(nèi)存列式數(shù)據(jù)庫(kù)編譯執(zhí)行框架的總體設(shè)計(jì)
3.1 分布式內(nèi)存數(shù)據(jù)庫(kù)架構(gòu)
3.2 應(yīng)用場(chǎng)景與設(shè)計(jì)目標(biāo)
3.3 系統(tǒng)總體架構(gòu)和模塊設(shè)計(jì)
3.3.1 執(zhí)行引擎總體架構(gòu)和系統(tǒng)執(zhí)行流程
3.3.2 執(zhí)行引擎內(nèi)部架構(gòu)
3.3.3 編譯模塊
3.3.4 代碼復(fù)用和管理器模塊
3.3.5 數(shù)據(jù)存儲(chǔ)模型和概念
3.4 編譯執(zhí)行下的執(zhí)行計(jì)劃優(yōu)化
3.4.1 表達(dá)式的生成
3.4.2 執(zhí)行計(jì)劃及其執(zhí)行機(jī)分配
3.4.3 多列數(shù)據(jù)讀取和篩選的融合
3.4.4 Join節(jié)點(diǎn)的融合
3.4.5 Group、Aggregation節(jié)點(diǎn)的融合
3.5 各節(jié)點(diǎn)算子代碼生成方法
3.5.1 Pipeline代碼生成方法
3.5.2 Scan節(jié)點(diǎn)和Filt節(jié)點(diǎn)代碼生成方案
3.5.3 Join節(jié)點(diǎn)的代碼生成方案
3.5.4 Sort節(jié)點(diǎn)的代碼生成方案
3.5.5 Group節(jié)點(diǎn)的代碼生成方案
3.5.6 Aggregation節(jié)點(diǎn)的代碼生成方案
3.5.7 算術(shù)計(jì)算Algo節(jié)點(diǎn)的代碼生成方案
3.6 代碼參數(shù)化和匹配方法
3.6.1 代碼參數(shù)化方法
3.6.2 代碼匹配技術(shù)
3.7 本章小結(jié)
第四章 分布式內(nèi)存列式數(shù)據(jù)庫(kù)編譯執(zhí)行框架的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)
4.1 整體任務(wù)執(zhí)行流程實(shí)現(xiàn)
4.1.1 編譯執(zhí)行的整體任務(wù)處理流程的實(shí)現(xiàn)
4.1.2 線程池框架的實(shí)現(xiàn)
4.1.3 網(wǎng)絡(luò)庫(kù)和消息驅(qū)動(dòng)流程的實(shí)現(xiàn)
4.2 LLVM庫(kù)的封裝實(shí)現(xiàn)
4.2.1 LLVM庫(kù)基礎(chǔ)對(duì)象和功能
4.2.2 基本對(duì)象的封裝實(shí)現(xiàn)
4.2.3 控制語(yǔ)句的封裝實(shí)現(xiàn)
4.2.4 函數(shù)構(gòu)造的封裝實(shí)現(xiàn)
4.3 編譯執(zhí)行相關(guān)數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)
4.3.1 生成代碼的執(zhí)行參數(shù)
4.3.2 中間數(shù)據(jù)結(jié)構(gòu)
4.4 算子和生成代碼的實(shí)現(xiàn)
4.4.1 代碼生成、編譯與執(zhí)行流程
4.4.2 節(jié)點(diǎn)的編譯過(guò)程
4.4.3 Scan算子的實(shí)現(xiàn)
4.4.4 Filt算子的實(shí)現(xiàn)
4.4.5 Join算子的實(shí)現(xiàn)
4.4.6 Group算子的實(shí)現(xiàn)
4.4.7 Aggregation算子的實(shí)現(xiàn)
4.4.8 Algo算子和Output算子的實(shí)現(xiàn)
4.4.9 代碼管理器
4.5 本章小結(jié)
第五章 系統(tǒng)測(cè)試與分析
5.1 測(cè)試環(huán)境
5.2 功能測(cè)試
5.3 性能測(cè)試
5.3.1 Filt節(jié)點(diǎn)算子測(cè)試
5.3.2 Join節(jié)點(diǎn)算子測(cè)試
5.3.3 Group節(jié)點(diǎn)測(cè)試
5.3.4 Sort節(jié)點(diǎn)算子測(cè)試
5.3.5 Filt和 Join
5.3.6 Join與 Group
5.4 本章小結(jié)
第六章 總結(jié)與展望
致謝
參考文獻(xiàn)
攻讀碩士期間取得的研究成果
【參考文獻(xiàn)】:
期刊論文
[1]OceanBase關(guān)系數(shù)據(jù)庫(kù)架構(gòu)[J]. 陽(yáng)振坤. 華東師范大學(xué)學(xué)報(bào)(自然科學(xué)版). 2014(05)
[2]基于EPOLL的單進(jìn)程事件驅(qū)動(dòng)通信服務(wù)器設(shè)計(jì)與分析[J]. 段翰聰,盧顯良,宋杰. 計(jì)算機(jī)應(yīng)用. 2004(10)
本文編號(hào):2975254
本文鏈接:http://sikaile.net/kejilunwen/shengwushengchang/2975254.html
最近更新
教材專著