版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
GaussDB簡介講解課件數(shù)據(jù)庫系統(tǒng)—GaussDB1目錄數(shù)據(jù)庫系統(tǒng)—GaussDB2GaussDB總體架構(gòu)GaussDB查詢處理GaussDB存儲GaussDB分布式GaussDB云原生GaussDB高可用GaussDB安全GaussDB智能3GaussDB技術(shù)架構(gòu)數(shù)據(jù)庫系統(tǒng)—GaussDB分布式優(yōu)化器高可用容災(zāi)計算
節(jié)點計算
節(jié)點計算
節(jié)點…多方位安全引擎智能優(yōu)化引擎分布式共享存儲分布式事務(wù)管理器4GaussDB技術(shù)架構(gòu)數(shù)據(jù)庫系統(tǒng)—GaussDB③云原生彈性伸縮架構(gòu)故障自感知云原生分布式計算存儲分離多地多活容災(zāi)同城雙集群RPO=0①分布式優(yōu)化、執(zhí)行與事務(wù)處理全鏈路并行編譯執(zhí)行大規(guī)模并發(fā)事務(wù)處理分布式近數(shù)據(jù)計算細粒度無鎖并行回放在線彈性伸縮分布式多寫多讀⑤安全隱私④智能優(yōu)化ABO優(yōu)化器內(nèi)置AI引擎自治運維全密態(tài)防篡改自治安全SQL解析Hint計劃管理RBO/CBOSMP線程池向量化編譯執(zhí)行AStoreUStoreCStoreMOT段頁式增量檢查點滾動升級集群通信負載均衡多租戶透明加密權(quán)限控制動態(tài)脫敏參數(shù)調(diào)優(yōu)分布鍵推薦索引推薦Paxos②多層級高可用容災(zāi)ACID5GaussDB技術(shù)架構(gòu)特點原生分布式計算架構(gòu)(Shared
Nothing)支持分布式SQL、分布式執(zhí)行、分布式存儲、分布式事務(wù)可插拔存儲引擎(內(nèi)存表、行存表、列存表)云原生架構(gòu):計算-內(nèi)存-存儲分離、日志即數(shù)據(jù)多層級高可用:故障自感知、多副本恢復(fù)、兩地三中心、同城雙集群、異地多活基于機器學(xué)習(xí)的智能優(yōu)化器:ABO、智能優(yōu)化、庫內(nèi)AI安全管理:安全認證、訪問控制、統(tǒng)一審計、計算-存儲-傳輸?shù)娜軕B(tài)、數(shù)據(jù)脫敏、防篡改的存儲策略HTAP:行列混存、智能行轉(zhuǎn)列、新鮮度為0的透明行列路由、行列混存優(yōu)化器數(shù)據(jù)庫系統(tǒng)—GaussDB6GaussDB分布式架構(gòu)數(shù)據(jù)庫系統(tǒng)—GaussDB分布式執(zhí)行分布式SQLDataNodeCoordinatorNode(分布式優(yōu)化器)GTM(分布式事務(wù))網(wǎng)絡(luò)存儲引擎分布式執(zhí)行分布式SQLDataNode存儲引擎主備HA切換跨AZ多活兩地三中心7GaussDB分布式架構(gòu)分布式執(zhí)行框架CN(協(xié)調(diào)節(jié)點)與DN(數(shù)據(jù)節(jié)點)相互配合分布式事務(wù)處理保證事務(wù)全局強一致性,提供高性能事務(wù)處理能力分布式查詢RBO、CBO、ABO分布式并行執(zhí)行支持節(jié)點間并行、線程間并行和單指令多數(shù)據(jù)并行,提高復(fù)雜查詢的性能分布式高可用支持節(jié)點級、可用區(qū)級、城市級等多層級故障恢復(fù)數(shù)據(jù)庫系統(tǒng)—GaussDB8GaussDB分布式優(yōu)化器數(shù)據(jù)庫系統(tǒng)—GaussDB9GaussDB分布式并行執(zhí)行數(shù)據(jù)庫系統(tǒng)—GaussDB向量執(zhí)行(SIMD)并行執(zhí)行(Parallel)C1C2C3RowC1C1C1C1C1C2C2C2C2C2C3C3C3C3C3RowRowRowRowRow行存引擎向量引擎*VectorBatchTableRow多機多線程并行執(zhí)行充分利用當(dāng)前多核特點,通過多線程并發(fā)執(zhí)行,提高系統(tǒng)吞吐量
節(jié)點間并行節(jié)點內(nèi)并行線程線程線程線程線程利用CPU的局部性及算力利用CPU的局部性,通過向量執(zhí)行提高執(zhí)行效率編譯執(zhí)行(LLVM)提高CPU指令的利用率從解釋執(zhí)行向編譯執(zhí)行轉(zhuǎn)變,大幅降低執(zhí)行算子指令數(shù)量,提高運算效率10GaussDB兩地三中心高可用架構(gòu)數(shù)據(jù)庫系統(tǒng)—GaussDB11GaussDB云原生架構(gòu)計算存儲分離架構(gòu)協(xié)調(diào)節(jié)點CN調(diào)度用戶查詢請求,負載均衡后交由DN處理數(shù)據(jù)節(jié)點DN處理查詢的實際執(zhí)行過程緩存一定量的記錄數(shù)據(jù)和日志數(shù)據(jù)分布式共享緩沖區(qū)分布式共享存儲頁面和日志邏輯上分離管理,物理上存儲于相同的分布式存儲,保證有效管理與高效傳輸數(shù)據(jù)庫系統(tǒng)—GaussDB數(shù)據(jù)節(jié)點數(shù)據(jù)節(jié)點數(shù)據(jù)節(jié)點數(shù)據(jù)節(jié)點數(shù)據(jù)節(jié)點數(shù)據(jù)節(jié)點3數(shù)據(jù)節(jié)點2事務(wù)管理節(jié)點協(xié)調(diào)節(jié)點PLOGPLOGPagePage日志存儲池頁面存儲池高速網(wǎng)絡(luò)數(shù)據(jù)節(jié)點數(shù)據(jù)節(jié)點1緩存層存儲層PagePage分布式共享緩沖區(qū)計算層PagePage12GaussDB多租戶數(shù)據(jù)庫資源管控與隔離CPU、內(nèi)存、磁盤數(shù)據(jù)隔離數(shù)據(jù)多租租戶索引日志隔離彈性伸縮租戶資源彈性調(diào)度租戶資源管控數(shù)據(jù)庫系統(tǒng)—GaussDB應(yīng)用應(yīng)用應(yīng)用服務(wù)服務(wù)服務(wù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)應(yīng)用應(yīng)用應(yīng)用服務(wù)服務(wù)服務(wù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)應(yīng)用應(yīng)用應(yīng)用服務(wù)服務(wù)服務(wù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)應(yīng)用應(yīng)用應(yīng)用服務(wù)服務(wù)服務(wù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)13GaussDB多租戶數(shù)據(jù)庫系統(tǒng)—GaussDB相互隔離的業(yè)務(wù)應(yīng)用多個業(yè)務(wù)服務(wù)App1App2App3DB實例1DB實例2DB實例3傳統(tǒng)DB服務(wù)部署示例App1App2DB租戶1DB租戶2DB實例DB租戶1DB租戶2DB實例DB租戶1’DB租戶2’DB實例DB1DB2DB3DB1’DB2’GaussDB存儲多租戶App1’App2’14GausDB面向鯤鵬NUMA的架構(gòu)數(shù)據(jù)庫系統(tǒng)—GaussDBWorkerL1L2HelperL1L2L3DataL3tagWorkerL1L2HelperL1L2L3tagDDRCPFetchPOECCLCCLSCCL3微引擎1L3DataDDRCPOECCLCCLSCCL1微引擎2
SICL1SICL1HydraGuidedPrefetchSpinlock元語
vL3DataDDRCPOECCLCCLSCCL1微引擎3
WorkerL1L2HelperL1L2L3DataL3tagWorkerL1L2HelperL1L2L3tagDDRCPFetchPOECCLCCLSCCL3微引擎4
GuidedPrefetchSpinlock元語ARM16201ARM16202DDRPOEgroupPOEgroup分區(qū)DatabasePOE組POE組DDR分區(qū)DatabasePOE組POE組DDR分區(qū)Database
DDRPOEgroupPOE組分區(qū)Database
數(shù)據(jù)庫SSD/SCM數(shù)據(jù)庫SSD/SCM
分區(qū)1
分區(qū)2
分區(qū)3
分區(qū)4
15與昇騰結(jié)合的AI加速與計算加速數(shù)據(jù)庫系統(tǒng)—GaussDBDB算子加速查詢編譯SQLCompilationEngine查詢解析邏輯優(yōu)化物理優(yōu)化查詢執(zhí)行SQLRuntimeEngineScan掃描VecScan
向量掃描AccScan
異構(gòu)芯片掃描Agg聚集VecAgg向量聚集AccAgg異構(gòu)芯片聚集Join連接VecJoin向量連接AccJoin異構(gòu)芯片連接.........異構(gòu)硬件加速HardwareAccelerationLayer代碼生成CodeGen異步流水線鯤鵬K昇騰A智能網(wǎng)卡笛卡爾DGPUTPU…
…
AI算子加速行業(yè)應(yīng)用行業(yè)AI算法包昇騰加速
SQL+AI算法包分布式優(yōu)化器(DB+AI融合優(yōu)化)分布式執(zhí)行與優(yōu)化分布式執(zhí)行引擎TensorFlowMindSpore分布式存儲昇騰加速分布式異構(gòu)計算框架CPU(X86/鯤鵬)GPU昇騰16GausDB面向昇騰GPU的架構(gòu)支持和優(yōu)化AI算法中不同類型的算子操作,并通過SQL語句來支持GaussDB內(nèi)AI算子并發(fā)原語機制庫內(nèi)集成Tensorflow/MindSpore深度學(xué)習(xí)框架數(shù)據(jù)庫內(nèi)部實現(xiàn)CNN、DNN等神經(jīng)網(wǎng)絡(luò)算法,并基于昇騰芯片進行加速優(yōu)化數(shù)據(jù)庫的內(nèi)置AI算法包利用數(shù)據(jù)庫優(yōu)化器、索引、剪枝等技術(shù)實現(xiàn)機器學(xué)習(xí)模型訓(xùn)練與推理過程的加速對vector、cube等計算模型的加速能力實現(xiàn)傳統(tǒng)數(shù)據(jù)庫內(nèi)聚集操作(Aggregation)、連接操作(Join)的加速數(shù)據(jù)庫系統(tǒng)—GaussDB支持NUMA架構(gòu),提供大規(guī)模數(shù)據(jù)計算能力并發(fā)原語機制通過核間通訊機制,無需通過內(nèi)存變量的原子性修改來達成協(xié)同一致異步流水線機制執(zhí)行事務(wù)時,可根據(jù)任務(wù)特點,將其切分成多個子任務(wù),由特定線程執(zhí)行共享數(shù)據(jù)結(jié)構(gòu)的全局訪問利用單獨的核來進行處理,減少數(shù)據(jù)訪問沖突新型的NUMA事務(wù)處理及存儲引擎架構(gòu)基于數(shù)據(jù)進行事務(wù)分發(fā)、基于NUMA的數(shù)據(jù)老化回收等,減少核間沖突、提升系統(tǒng)效率17GausDB面向新硬件的異構(gòu)計算數(shù)據(jù)庫系統(tǒng)—GaussDB目錄數(shù)據(jù)庫系統(tǒng)—GaussDB18GaussDB總體架構(gòu)GaussDB查詢處理GaussDB存儲GaussDB分布式GaussDB云原生GaussDB高可用GaussDB安全GaussDB智能19GaussDB單機架構(gòu)—openGauss數(shù)據(jù)庫系統(tǒng)—GaussDB20GaussDB單機架構(gòu)—openGaussSQL引擎支持查詢重寫、統(tǒng)計信息、基數(shù)估計、代價估計、物理計劃選擇等功能執(zhí)行引擎支持近數(shù)計算、LLVM、并發(fā)處理、并行執(zhí)行、向量化執(zhí)行等功能存儲引擎段頁式管理方式,支持追加更新行存、就地更新行存、列存、內(nèi)存引擎等高可用容災(zāi)支持故障自感知、故障自恢復(fù)、多副本存儲、主備高可用部署等高智能基于AI的自監(jiān)控、自診斷、自優(yōu)化:智能基數(shù)估計和計劃生成;庫內(nèi)AI;智能調(diào)優(yōu)和運維安全支持認證、權(quán)限控制、異常檢測、審計等傳統(tǒng)數(shù)據(jù)庫安全能力支持全密態(tài)、防篡改、隱私保護等新型安全能力數(shù)據(jù)庫系統(tǒng)—GaussDB21GaussDB查詢優(yōu)化基于規(guī)則的查詢優(yōu)化(RBO)根據(jù)預(yù)定義的啟發(fā)式規(guī)則對SQL語句進行優(yōu)化基于代價的查詢優(yōu)化(CBO)利用統(tǒng)計信息,通過基礎(chǔ)和代價估計對SQL語句對應(yīng)的候選物理計劃進行代價估算,并從候選計劃中選擇代價最低的物理計劃作為最終的執(zhí)行計劃基于人工智能的查詢優(yōu)化(ABO)收集執(zhí)行計劃的特征統(tǒng)計信息,借助人工智能模型估計基數(shù)和代價,并選擇高效的執(zhí)行計劃智能基數(shù)估計和代價估計智能計劃選擇和生成數(shù)據(jù)庫系統(tǒng)—GaussDB22GaussDB查詢重寫數(shù)據(jù)庫系統(tǒng)—GaussDBpreprocess_const_params常數(shù)替換等式subquery-plannerpull_up_sublinks提升子鏈接reduce_orderby減少orderbyremoveNotNullTest刪除NotNullTestlazyagg_mainLazyagg重寫pull_up_subqueries提升子查詢flatten_simple_union_allUNIONALL優(yōu)化
expand_inherited_tables展開繼承表preprocess_expression預(yù)處理表達式處理HAVING子句reduce_outer_joins外連接消除reduce_inequality_fulljoins全連接fulljoin重寫例如>
any23GaussDB查詢重寫數(shù)據(jù)庫系統(tǒng)—GaussDB24GaussDB代價估計總代價=IO代價+CPU代價+通信代價處理頁面產(chǎn)生IO代價處理元組(表達式計算)產(chǎn)生CPU代價分布式數(shù)據(jù)庫在不同節(jié)點傳輸數(shù)據(jù)產(chǎn)生通信代價統(tǒng)計信息統(tǒng)計信息描述了用戶表中數(shù)據(jù)的分布特征為后續(xù)行數(shù)估算、代價估算提供數(shù)據(jù)基礎(chǔ)。Table-Level表級別統(tǒng)計信息:tuples總元組數(shù)、page總頁面數(shù)Column-Level列級別統(tǒng)計信息:Distinct值、NullRatio、MCV(MostCommonValue)、直方圖擴展統(tǒng)計信息:Multi-ColumnStatistics多列統(tǒng)計信息、View-Statistics視圖統(tǒng)計信息數(shù)據(jù)庫系統(tǒng)—GaussDB25GaussDB計劃生成物理計劃選擇自底向上模式拆解邏輯計劃,確定每個表的物理掃描算子,和物理連接算子(以及其他算子),從而最終確定完整的物理執(zhí)行自頂向下模式通過采用自頂向下的方法遍歷邏輯計劃,結(jié)合動態(tài)規(guī)劃、代價估算和分支界定技術(shù),逐步確定每個邏輯算子對應(yīng)的物理算子,獲得最優(yōu)的物理計劃隨機搜索模式表較多的情況下通過隨機化的方法對計劃進行搜索,獲得次優(yōu)的執(zhí)行計劃GaussDB主要采用自底向上與隨機搜索相結(jié)合的方式數(shù)據(jù)庫系統(tǒng)—GaussDB26GaussDB路徑搜索數(shù)據(jù)庫系統(tǒng)—GaussDBSeqscan(t1)Seqscan(t2)SortGroupAggSeqscan(t2)HashAggP2P1Seqscan(t3)P3Seqscan(t4)P4Lv1t1t2t3t4P1HashJoinP2P12P1HashJoinP4P14P2HashJoinP3P23P2HashJoinP4P24t1,t2t1,t4t2,t4t3,t4P3HashJoinP4P34t1,t3t2,t3P1MergeJoinP3P13
P12HashJoinP3P123P12HashJoinP4P124P14HashJoinP3P134P3HashJoinP24t1,t2,t3t1,t2,t4t2,t3,t4P23HashJoinP4P234t1,t3,t4P1MergeJoinP23……P2HashJoinP14P123HashJoinP4P1234P23HashJoinP14t1,t2,t3,t4P1MergeJoinP234P2HashJoinP134t1t2t3t44個表連接條件Lv2Lv3Lv427GaussDB查詢執(zhí)行火山模型并行執(zhí)行并行計劃生成生成每一層路徑時,都增加一個并行路徑,最終根據(jù)代價選擇最優(yōu)路徑。并行計劃框架處理不同節(jié)點和不同線程間數(shù)據(jù)分配對于掃描算子,增加一條并行的路徑,計算并行的啟動代價、數(shù)據(jù)分配代價以及算子執(zhí)行代價,與串行的路徑一起進行后續(xù)的路徑選擇向量化執(zhí)行編譯執(zhí)行數(shù)據(jù)庫系統(tǒng)—GaussDB28GaussDB編譯執(zhí)行數(shù)據(jù)庫系統(tǒng)—GaussDB為了進一步提升執(zhí)行速度,GaussDB執(zhí)行引擎采用LLVM、向量化引擎等多種技術(shù),充分結(jié)合硬件技術(shù)高效執(zhí)行編譯執(zhí)行技術(shù)LLVMLib庫,提供代碼生成所需的功能接口LLVMAPI層,封裝部分LLVMLib庫函數(shù)實現(xiàn)優(yōu)化功能,供LLVM實現(xiàn)層調(diào)用LLVM實現(xiàn)層,優(yōu)化LLVM
IR函數(shù),實現(xiàn)與原有執(zhí)行器中的相同更高效的功能29GaussDB向量化執(zhí)行數(shù)據(jù)庫系統(tǒng)—GaussDB向量化執(zhí)行技術(shù)一次處理一批元組,大大減小了遍歷執(zhí)行節(jié)點的開銷一次一批元組的數(shù)據(jù)處理方式為某些表達式計算的SIMD(單指令多數(shù)據(jù))化提供了機會,進而帶來性能的提升一次一批元組的處理方式天然對接列存,很方便在底層掃描節(jié)點批量裝填向量化列數(shù)據(jù)30GaussDB大并發(fā):全局共享數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)—GaussDBGSCLSCGlobalSysDBCacheLocalSysDBCache引用拷貝拷貝拷貝LRU同步失效失效消息LRUScanGlobalSysTabCache系統(tǒng)表LocalSysTupCacheLocalSysTabCacheLocalTabDefCacheLocalPartitionDefCacherelmap_cxtSmgrCacheVfdCacheTypeCacheDDLGlobalRelMapCacheGlobal
Partition
DefCacheGlobalTabDefCacheGlobalSysTabCache全局系統(tǒng)緩存(GSC)全局計劃緩存(GPC)每個會話單獨做計劃緩存,內(nèi)存開銷大Session1SessionNPreparestatementPlancachePreparestatementPlancachePreparestatementPlancachePreparestatementPlancachePreparestatementPlancachePreparestatementPlancache…Session1SessionNprepared_queriespreparedstatementprepared_queriespreparedstatement…GlobalPlanCacheGPCEntryplancacheGPCEntryplancacheGPCEntryplancacheGPCEntryplancacheGPCEntryplancacheGPCEntryplancache會話計劃緩存全局管理,內(nèi)存使用大幅縮減目錄數(shù)據(jù)庫系統(tǒng)—GaussDB31GaussDB總體架構(gòu)GaussDB查詢處理GaussDB存儲GaussDB分布式GaussDB云原生GaussDB高可用GaussDB安全GaussDB智能32GaussDB存儲概覽數(shù)據(jù)庫系統(tǒng)—GaussDB事務(wù)管理元數(shù)據(jù)管理SQL引擎鎖管理增量檢查點機制數(shù)據(jù)訪問接口存儲引擎日志優(yōu)化器行存執(zhí)行器列存執(zhí)行器元組操作全表掃描索引掃描表更改插入表刪除表更新表表分析外表追加更新行存原位更新行存列存緩沖池抽象存儲層抽象介質(zhì)層抽象內(nèi)存33GaussDB存儲概覽數(shù)據(jù)庫系統(tǒng)—GaussDB接口(Interface)堆表(Heap)索引(Index)空閑空間管理(FSM)段頁式存儲(Segmentstore)數(shù)據(jù)緩沖池(Bufferpool)預(yù)寫日志(WAL)表空間(tablespace)事務(wù)管理(Transaction)鎖管理(Lock)回滾段(Undo)檢查點和恢復(fù)(Checkpoint
andrecovery)控制文件(Controlfile)虛擬文件系統(tǒng)(VFS)元組(Tuple)34GaussDB行存儲引擎—頁面結(jié)構(gòu)行存儲以頁面為單位頁頭(HeapPageHeader)記錄頁面的公用信息以及關(guān)鍵標(biāo)識;頁頭后放置指向元組的行指針(tuple_pointer),并向頁面尾部擴展。行指針指向的元組(tuple),從頁面尾部向頁面頭部延展元組結(jié)構(gòu)每個元組在系統(tǒng)中的唯一標(biāo)識被稱為CTID數(shù)據(jù)庫系統(tǒng)—GaussDB事務(wù)LSNCheckSum校驗碼Flag標(biāo)記位空閑空間起始位置lower空閑空間結(jié)束位置upper輔助信息special頁面大小和版本號pagesize_version頁面清理事務(wù)號prune_xid基準(zhǔn)事務(wù)號xid_base持鎖事務(wù)號multi_base槽位1
tuple_pointer1槽位2
tuple_pointer2元組2元組1堆表頁面組織xmin插入事務(wù)號xmax
刪除事務(wù)號t_cid
事務(wù)內(nèi)部序號t_ctid
記錄唯一標(biāo)識t_infomask2
掩碼2t_infomask
掩碼1t_hoff
元組偏移t_bits元組bitmap元組信息35GaussDB
MVCC多版本數(shù)據(jù)庫系統(tǒng)—GaussDB元組版本號分發(fā)管理采用全局遞增的事務(wù)號(作為一個元組的版本號,每個寫事務(wù)都會獲得一個新的事務(wù)號。一個元組的頭部會記錄兩個事務(wù)號xmin和xmax,分別對應(yīng)元組的插入事務(wù)和刪除(更新)事務(wù)。xmin和xmax決定了元組的生命期,亦即該版本的可見性窗口??煺站S護快照是指在某一個特定的時刻點,數(shù)據(jù)庫中所有事務(wù)的運行狀態(tài)。每個事務(wù)都會選擇一個可見性判斷的“時刻點”,在這個時刻點對應(yīng)的快照中,正在執(zhí)行的和尚未開始的事務(wù),對其不可見;在這個時刻點,已經(jīng)結(jié)束的事務(wù),對其可見。使用時間戳法來實現(xiàn)快照。xmax狀態(tài)xmin狀態(tài)xmax對于查詢可見xmax對于查詢不可見xmin對于查詢可見記錄不可見(先插入,后刪除)記錄可見(先插入,未刪除)xmin對于查詢不可見不可能發(fā)生記錄不可見(未插入,未刪除)36GaussDB行存儲的多版本支持追加更新,即在更新時并不是就地更新,而是在原有頁面中保留上一個版本,然后在這個頁面(如果空間不夠會在新頁面中)創(chuàng)建一個新的版本,來進行歷史版本的累積更新。例如:
假設(shè)在一個事務(wù)號xid為10的事務(wù)中,插入數(shù)據(jù)’insert’,該行數(shù)據(jù)落入編號為0的數(shù)據(jù)頁面上該行結(jié)構(gòu)如上圖所示。xmax為0,說明該記錄為有效記錄。數(shù)據(jù)庫系統(tǒng)—GaussDBGaussDB行存多版本:追加更新1000(0,1)‘insert’xminxmaxt_cidt_ctiddata37GaussDB行存多版本:追加更新xid=30的事務(wù)中對該行做兩次更新操作,第一次更新會發(fā)生如下變化:原有行xmax更新為30,使得原有行失效。t_ctid更新為新的ctid,指向新版本的行。數(shù)據(jù)庫系統(tǒng)—GaussDB10300(0,2)‘insert’xminxmaxt_cidt_ctiddata3000(0,2)‘update’xminxmaxt_cidt_ctiddata38GaussDB行存多版本:追加更新第二次更新會發(fā)生如下變化:第二個版本也變?yōu)闅v史版本通過t_ctid指向最新版本的記錄第二個版本的記錄在一個事務(wù)中被刪除,xmin、xmax均為30第三個(最新)版本的xmin仍為30,但事務(wù)內(nèi)的第二次更新,操作序號cid從0增加為1數(shù)據(jù)庫系統(tǒng)—GaussDB10300(0,2)'insert'xminxmaxt_cidt_ctiddata30300(0,3)'update'xminxmaxt_cidt_ctiddata3001(0,3)'update2'xminxmaxt_cidt_ctiddata39GaussDB行存多版本:追加更新經(jīng)過兩次更新后的頁面如下圖所示。不同于原地更新,三次操作產(chǎn)生的同一行的3個版本均存儲在該頁面中。數(shù)據(jù)庫系統(tǒng)—GaussDB同一頁面中會存有同一條數(shù)據(jù)的不同版本在讀寫這些不同版本時互不沖突,具備良好的并發(fā)性能。行1行1'行1''行指針3行指針1行指針2t_ctidt_ctidheader40GaussDB行存多版本:追加更新為了實現(xiàn)多版本的并發(fā)控制,還需要為每個事務(wù)分配事務(wù)號,并設(shè)計能夠確定快照與事務(wù)之間可見關(guān)系的機制每個事務(wù)有一個單獨的事務(wù)狀態(tài)存儲區(qū)域,記錄了該事務(wù)的狀態(tài)信息和提交順序號(CSN)圖中每個非只讀事務(wù)的事務(wù)號為XID,在事務(wù)提交時會增加CSN取值數(shù)據(jù)庫系統(tǒng)—GaussDBTX4TX2快照Snapshot1234578TX1TX3CSNTX7CSN:4TX6TX5TX812345676XID841GaussDB行存多版本:追加更新CSNLog:記錄XID與CSN的映射關(guān)系,為每個事務(wù)生成一個唯一遞增的CSN,用于將事務(wù)與其可見性進行關(guān)聯(lián)Clog:記錄事務(wù)ID的運行狀態(tài):運行中/提交/回滾當(dāng)事務(wù)結(jié)束后,使用CLOG記錄是否提交,使用CSNLOG記錄該事務(wù)提交的序列數(shù)據(jù)庫系統(tǒng)—GaussDB00:事務(wù)狀態(tài)為在進行中01:事務(wù)狀態(tài)為已提交10:事務(wù)狀態(tài)為終止11:事務(wù)狀態(tài)為子提交每兩位表示一個事務(wù)狀態(tài)00011011一個字節(jié)42GaussDB行存多版本:追加更新數(shù)據(jù)庫系統(tǒng)—GaussDB判斷Xid對于當(dāng)前快照是否可見Xid>=快照的xmaxXid小于快照的xmin不可見否是是查看Clog中事務(wù)狀態(tài)已提交可見不可見是否讀取事務(wù)ID的CSN正在提交等待事務(wù)結(jié)束不可見是否事務(wù)ID對應(yīng)CSN小于快照CSN可見不可見是否未提交已提交否43GaussDB行存多版本:原位更新追加更新行存儲將老版本元組和新版本元組存儲在統(tǒng)一空間老版本回收困難,而且可能需要掃描所有數(shù)據(jù)來清除老版本信息原位更新行存通過單獨的回滾段來存儲老版本數(shù)據(jù)最新版存在數(shù)據(jù)段,并通過指針指向存放于回滾段的老版本數(shù)據(jù)庫系統(tǒng)—GaussDB事務(wù)IDUndo指針元組2事務(wù)IDUndo指針元組1元組1指針元組2指針頁面頭8K8K…8K頁面0頁面1頁面N數(shù)據(jù)段元組2元組1元組指針1元組指針2頁面頭8K8K…8K頁面0頁面1頁面N回滾段Undo頁面事務(wù)信息元組(事務(wù)狀態(tài),CSN,第一條undo記錄指針,最后一條undo記錄指針)事務(wù)頁面元組頭:包含了事務(wù)ID,undo指針等事務(wù)信息元組(事務(wù)狀態(tài),CSN,第一條undo記錄指針,最后一條undo記錄指針)數(shù)據(jù)頁面44GaussDB行存多版本:原位更新元組不直接存儲老版本的指針,而是通過事務(wù)槽號來維護時間戳信息,從而節(jié)省存儲空間數(shù)據(jù)庫系統(tǒng)—GaussDBTD1(事務(wù)ID,undo指針)元組2頁面頭8K8K…8K頁面0頁面1頁面N數(shù)據(jù)段元組2元組1元組指針1元組指針2頁面頭8K8K…8K頁面0頁面1頁面N回滾段Undo頁面事務(wù)頁面TD1元組1指針TD2(事務(wù)ID,undo指針)元組頭:包含了事務(wù)槽位ID等元組2指針元組1TD2數(shù)據(jù)頁面事務(wù)信息元組(事務(wù)狀態(tài),CSN,第一條undo記錄指針,最后一條undo記錄指針)事務(wù)信息元組(事務(wù)狀態(tài),CSN,第一條undo記錄指針,最后一條undo記錄指針)45GaussDB行存儲引擎—空閑空間管理在數(shù)據(jù)插入的時候需要高效找到空閑空間足夠的頁面插入數(shù)據(jù)后還要能夠高效更新頁面的空閑空間大小采用三層大根堆的數(shù)據(jù)結(jié)構(gòu)來管理空閑空間FSM(freespacemap)數(shù)據(jù)庫系統(tǒng)—GaussDB20201020610820118764102FSMpage20201020610520115164102FSMpage775765375316452FSMpage……20201520715520125176152FSMpage771574155735143152FSMpage…………Heap0~4000pagesHeap12000~16000pages…………0層1層2層……………………………………46GaussDB行存儲引擎—B+樹索引行存儲索引采用Blink-tree的并發(fā)優(yōu)化算法索引葉子頁面存儲事務(wù)信息,非葉子頁面不存儲事務(wù)信息索引空閑空間管理包括空頁面(被刪空)的回收重用和基于訪問頁面時按需整理頁面空間。因為插入索引數(shù)據(jù)都是有序插入到葉子頁面的,按需整理頁面即可。數(shù)據(jù)庫系統(tǒng)—GaussDBMetapagerootpageInternalpage(fastroot)InternalpageInternalpageInternalpage元組1:Key1,key2,ctid元組2:Key1,key2,ctidLeafpage……元組1:Key1,key2,ctid元組2:Key1,key2,ctidLeafpage元組指針1元組指針…元組指針…元組1元組…Heappage47GaussDB行存儲引擎—B+樹索引數(shù)據(jù)庫系統(tǒng)—GaussDBP3P1P2P3P1P4P2P3P1P4P21P3P1P2NewP4插入P1頁面,空間不夠,分裂頁面P1;創(chuàng)建NewP4頁面并持有頁面寫鎖持有頁面P2的寫鎖(修改左兄弟指針為P4)
釋放P2的寫鎖;修改P1,P4左右兄弟指針持有頁面P1,P4的寫鎖持有父頁面P3的寫鎖,插入指向頁面P4的索引元組釋放P4,P1,P3的頁面寫鎖。查找到待插入的頁面P1,持有頁面P1寫鎖234P3P1P4P2索引查詢P3P1P4P2從P3獲取到滿足條件的葉子頁面P1;
釋放P3頁面讀鎖讀取P1獲取頁面讀鎖,P1正在分裂,加頁面讀鎖等待持有P1頁面的讀鎖后,P1發(fā)生過分裂,可能滿足條件的索引元組遷移到了P4,釋放P1的讀鎖,繼續(xù)遍歷P4。索引插入48GaussDB行存儲引擎—緩沖區(qū)GaussDB對事務(wù)的讀寫請求,都會被先傳遞至共享緩沖區(qū)請求頁面利用Ring
Buffer操作批量讀、批量寫、以及頁面清理,會先在緩沖區(qū)搜索該頁面,如未命中,則獲取一個空的槽位(可能需要淘汰掉緩沖區(qū)中不常用的頁面),再與文件系統(tǒng)進行交互將所需頁面讀到槽位中,加鎖并使用。高并發(fā)Hashtable:采用分區(qū)鎖避免讀寫hashtable沖突Buffer頁面的冷熱管理1)bufferring策略:避免順序掃描讀取頁面導(dǎo)致大量淘汰溫?zé)醔uffer2)neverevict策略:基于規(guī)則避免頁面被淘汰3)LRU策略:識別冷熱頁面,提高buffer命中率空閑Buffer的高效查找算法Bufferpool在線彈性擴縮數(shù)據(jù)庫系統(tǒng)—GaussDB49GaussDB行存儲引擎—緩沖區(qū)數(shù)據(jù)庫系統(tǒng)—GaussDBbuf_descbuf_descbuf_desc……bufpagebufpagebufpagebufpagebuf_desc……bufpagebuf_desc高并發(fā)讀寫Hashtable磁盤上的文件頁面內(nèi)存里的頁面buf_id讀取表的第N個頁面查看共享緩沖區(qū)里是否存在查找freebuffer讀取文件的磁盤頁面InsertHashtablefindFreebufferlist1Freebufferlist2……Freebufferlist1024find遍歷buf_desc,引用計數(shù)為0,淘汰buffer從hashtable刪除如果是臟頁淘汰刷盤讀取頁面后臺刷頁面線程50GaussDB行存儲引擎—并行日志系統(tǒng)事務(wù)提交僅保證事務(wù)相關(guān)的預(yù)寫日志W(wǎng)AL持久化完成WAL模塊在內(nèi)存中維護了WAL緩沖區(qū)用于各個事務(wù)的WAL日志并發(fā)寫入緩存區(qū),提高性能后臺刷WAL日志線程需要順序從WAL緩沖區(qū)讀取WAL日志完成持久化在每個事務(wù)提交之前,需要判斷已經(jīng)刷新的WALLSN是否已經(jīng)包含了本事務(wù)的WAL數(shù)據(jù)庫系統(tǒng)—GaussDB分發(fā)事務(wù)1線程事務(wù)日志事務(wù)2線程事務(wù)日志事務(wù)3線程事務(wù)日志事務(wù)4線程事務(wù)日志事務(wù)5線程事務(wù)日志事務(wù)6線程事務(wù)日志日志寫盤線程事務(wù)日志事務(wù)日志共享緩沖區(qū)1事務(wù)日志共享緩沖區(qū)2事務(wù)日志共享緩沖區(qū)3原子的全局LSN++分發(fā)事務(wù)1線程事務(wù)日志事務(wù)2線程事務(wù)日志事務(wù)3線程事務(wù)日志事務(wù)4線程事務(wù)日志事務(wù)5線程事務(wù)日志事務(wù)6線程事務(wù)日志日志寫盤線程1事務(wù)日志1日志寫盤線程2事務(wù)日志2日志寫盤線程3事務(wù)日志3事務(wù)日志共享緩沖區(qū)1事務(wù)日志共享緩沖區(qū)2事務(wù)日志共享緩沖區(qū)3原子的全局LSN++51GaussDB行存儲引擎—備機支持讀主備通過Raft復(fù)制WAL,備機讀取WAL記錄并按照頁面并行恢復(fù)備機按照WAL
CSN順序回放,同時推進備機讀的快照CSN,保證事務(wù)的因果序。針對清理頁面垃圾版本空間的WAL記錄回放:主機計算可回收CSN時間點(考慮備機的讀快照CSN),會影響主機垃圾版本回收效率、影響性能;備機回放WAL時,維護多版本,根據(jù)備機的最老快照讀決定回收。數(shù)據(jù)庫系統(tǒng)—GaussDB讀取WALrecord根據(jù)WAL類型dispatch分發(fā)事務(wù)提交WAL分發(fā)到一個回放線程按照WAL修改的頁面分發(fā)到對應(yīng)回放線程推進備機讀快照CSN52GaussDB列存儲引擎列存引擎的基本單位是壓縮單元(CU),即表中一列的一部分數(shù)據(jù)組成的壓縮數(shù)據(jù)塊。整個表被按列劃分為若干個CU支持差分編碼、游程編碼、字典編碼、LZ4、zlib等壓縮算法,并能為每個列自適應(yīng)地選擇壓縮方式數(shù)據(jù)庫系統(tǒng)—GaussDB53GaussDB列存儲引擎—頁面結(jié)構(gòu)為了管理列存表的CU,列存儲引擎使用壓縮單元描述符(CUDesc)表來記錄CU的元信息CUDesc的一行對應(yīng)一個CU,記錄了CU的事務(wù)時間戳信息、大小、存儲位置等信息CU文件結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)—GaussDBCUCRC校驗碼壓縮后NULL值位圖位數(shù)CU
magic壓縮前數(shù)據(jù)長度CU
info屬性壓縮后數(shù)據(jù)內(nèi)容壓縮后數(shù)據(jù)長度壓縮后NULL值位圖內(nèi)容54GaussDB列存儲引擎—索引設(shè)計列存儲的B+樹索引與行存類似,列存B+樹的索引頁面上存儲鍵到ctid(頁面號,元組槽位)的映射,ctid記錄的是CU的編號,還需要通過CUDesc進一步查找列存儲的稀疏索引CUDesc存儲每個CU中數(shù)據(jù)的最小值和最大值。讀CU前可以根據(jù)查詢條件進行判斷,如不在不在最小值和最大值之間,則可以不讀取該CU,大量減少I/O的開銷列存儲的聚集索引不同CU間最小值和最大值的區(qū)間有大量交集時,稀疏索引可能無法提升效率聚簇索引對部分區(qū)間內(nèi)的數(shù)據(jù)排序(一般區(qū)間會包含多個CU),由此減小CU之間數(shù)據(jù)的交集,使CU內(nèi)部的數(shù)據(jù)有序,提升CU文件本身的壓縮效率。數(shù)據(jù)庫系統(tǒng)—GaussDB55GaussDB內(nèi)存引擎數(shù)據(jù)庫系統(tǒng)—GaussDB全內(nèi)存態(tài)的數(shù)據(jù)存儲與事務(wù)處理低延遲(LowLatency):提供快速的查詢和事務(wù)響應(yīng)時間。高吞吐量(HighThroughput):支持峰值和持續(xù)高用戶并發(fā)。高資源利用率(HighResourceUtilization):充分利用硬件。具備并行持久化、檢查點、高可靠等能力56GaussDB內(nèi)存引擎內(nèi)存優(yōu)化數(shù)據(jù)結(jié)構(gòu)免鎖事務(wù)管理免鎖索引NUMA-aware的內(nèi)存管理高效持久性高SQL覆蓋率和功能集編譯執(zhí)行MOT和普通表的無縫集成數(shù)據(jù)庫系統(tǒng)—GaussDB57GaussDB內(nèi)存引擎:FDW采用外部數(shù)據(jù)封裝器FDW(ForeignDataWrapper)方式將內(nèi)存引擎插入數(shù)據(jù)庫優(yōu)化器可以獲取內(nèi)存引擎的元信息內(nèi)存引擎可以按照執(zhí)行器預(yù)期的方式將查詢結(jié)果返回數(shù)據(jù)庫系統(tǒng)—GaussDB58GaussDB內(nèi)存引擎—并發(fā)控制數(shù)據(jù)庫系統(tǒng)—GaussDB事務(wù)
緩存Masstree索引事務(wù)管理器1.查找行(讀/寫/刪除)3.返回緩存的行或空(當(dāng)緩存行無效)插入行此行僅對當(dāng)前事務(wù)可見將插入的行映射到本地緩存事務(wù)存儲管理器2.讀取行,并將行映射到本地緩存提交回滾更新索引事務(wù)提交協(xié)議59GaussDB內(nèi)存引擎—索引設(shè)計要求必須存在主鍵主鍵索引存儲各個行記錄的行指針,由行指針來對行記錄數(shù)據(jù)進行內(nèi)存地址的記錄非主鍵索引被稱為二級索引,不再以主鍵為鍵值,但仍然存儲鍵值對應(yīng)元組的指針數(shù)據(jù)庫系統(tǒng)—GaussDB二級索引行指針二級索引數(shù)據(jù)主鍵索引="ABY"指針二級索引鍵值="AB"指針下一個數(shù)據(jù)主鍵索引="ABX"主鍵索引指針下一個指針版本指針版本主鍵索引行指針二級索引對象60GaussDB
HTAP數(shù)據(jù)庫系統(tǒng)—GaussDBHTAPIn-MemoryColumnStore(IMCS)HTAP行列混合執(zhí)行架構(gòu)HTAP負載透明路由智能列選擇透明路由列存算子向量化執(zhí)行行列混合執(zhí)行框架列存儲行delta存儲數(shù)據(jù)實時轉(zhuǎn)換列數(shù)據(jù)合并數(shù)據(jù)壓縮行轉(zhuǎn)列算子列轉(zhuǎn)行算子代價模型計劃生成61GaussDB
HTAP數(shù)據(jù)庫系統(tǒng)—GaussDB目錄數(shù)據(jù)庫系統(tǒng)—GaussDB62GaussDB總體架構(gòu)GaussDB查詢處理GaussDB存儲GaussDB分布式GaussDB云原生GaussDB高可用GaussDB安全GaussDB智能63GaussDB分布式事務(wù)全局事務(wù)管理器GTM處理全局時間戳請求,即CSN(CommitSequenceNumber,待提交事務(wù)的序列號)獲取本地最新的CSN和準(zhǔn)備階段事務(wù)號如果CSN狀態(tài)為“提交中”則進行等待如果row.CSN<localsnapshot.csn||xidinprepared_xidlist可見,否則不可見。數(shù)據(jù)庫系統(tǒng)—GaussDB本地分配事務(wù)id插入&本地快照本地CSN本地準(zhǔn)備階段插入&本地快照應(yīng)用CNGTMDN請求CSN返回就緒返回CSN提交&&CSN查詢插入收到CSN設(shè)置插入對應(yīng)的事務(wù)狀態(tài)為“正在提交”狀態(tài)(僅內(nèi)存中)寫持久化日志,修改堆頁面、索引頁面插入提交OK設(shè)置事務(wù)id對應(yīng)的CSN插入OK查詢OK查詢OK64GaussDB分布式事務(wù)在分布式事務(wù)(含有多個DN)中,第二階段事務(wù)提交改為異步方式,只同步做兩階段提交的準(zhǔn)備階段DN處于準(zhǔn)備狀態(tài)的事務(wù)依賴對應(yīng)CN上的事務(wù)是否提交,如已提交,且CSN比快照CSN小,即為可見;DN上處于準(zhǔn)備狀態(tài)的事務(wù),CN上的事務(wù)不處于提交狀態(tài),則必須判斷是否是殘留狀態(tài),如果是則進行回滾。數(shù)據(jù)庫系統(tǒng)—GaussDB應(yīng)用CNGTMDN1DN2插入請求快照返回快照插入&快照本地分配事務(wù)id本地分配事務(wù)id寫持久化日志,修改堆頁面、索引頁面寫持久化日志,修改堆頁面、索引頁面就緒準(zhǔn)備事務(wù)準(zhǔn)備事務(wù)準(zhǔn)備OK設(shè)置插入對應(yīng)的事務(wù)狀態(tài)為“正在提交”狀態(tài)(僅內(nèi)存中)準(zhǔn)備OK設(shè)置插入對應(yīng)的事務(wù)狀態(tài)為“正在提交”狀態(tài)(僅內(nèi)存中)請求CSN請求CSN本地提交插入OK異步收到CSN提交&&CSN收到CSN提交&&CSN提交準(zhǔn)備的事務(wù)設(shè)置事務(wù)id對應(yīng)的CSN提交準(zhǔn)備的事務(wù)設(shè)置事務(wù)id對應(yīng)的CSN65GaussDB分布式高精度時鐘數(shù)據(jù)庫系統(tǒng)—GaussDB基于高精度時鐘的全球數(shù)據(jù)庫技術(shù)全球分布式事務(wù)模型一致性就近備機查詢跨地域高精度時鐘同步技術(shù)全球多活異地容災(zāi)管理66GaussDB分布式查詢優(yōu)化數(shù)據(jù)庫系統(tǒng)—GaussDB數(shù)據(jù)節(jié)點2大量計算本地訪存協(xié)調(diào)節(jié)點數(shù)據(jù)節(jié)點1大量計算本地訪存數(shù)據(jù)節(jié)點2網(wǎng)絡(luò)代理協(xié)調(diào)節(jié)點數(shù)據(jù)節(jié)點1大量計算本地訪存網(wǎng)絡(luò)代理協(xié)調(diào)節(jié)點數(shù)據(jù)節(jié)點1少量計算本地訪存大量計算數(shù)據(jù)節(jié)點2少量計算本地訪存大量數(shù)據(jù)傳輸少量數(shù)據(jù)傳輸少量數(shù)據(jù)傳輸傳統(tǒng)分發(fā)-匯聚的分布式計劃協(xié)調(diào)節(jié)點旁路技術(shù)數(shù)據(jù)節(jié)點自協(xié)同的流式計劃67GaussDB分布式查詢優(yōu)化生成分布式物理計劃時,會考慮數(shù)據(jù)是否處于同一個數(shù)據(jù)節(jié)點,如果不是,那么會添加相應(yīng)的數(shù)據(jù)分發(fā)算子。例如:
根據(jù)分發(fā)算子的數(shù)據(jù)量以及網(wǎng)絡(luò)通信開銷,GaussDB優(yōu)化器計算計劃的代價,并根據(jù)代價從中選出最優(yōu)的物理計劃。數(shù)據(jù)庫系統(tǒng)—GaussDB68GaussDB分布式并行執(zhí)行數(shù)據(jù)庫系統(tǒng)—GaussDB向量執(zhí)行(SIMD)并行執(zhí)行(Parallel)C1C2C3RowC1C1C1C1C1C2C2C2C2C2C3C3C3C3C3RowRowRowRowRow行存引擎向量引擎*VectorBatchTableRow多線程并行執(zhí)行充分利用多核特點,通過多線程并發(fā)執(zhí)行,提高系統(tǒng)吞吐量
節(jié)點間并行節(jié)點內(nèi)并行線程線程線程線程線程利用CPU的局部性及算力利用CPU的局部性,通過向量執(zhí)行提高執(zhí)行效率編譯執(zhí)行(LLVM)提高CPU指令的利用率從解釋執(zhí)行向編譯執(zhí)行轉(zhuǎn)變,大幅降低執(zhí)行算子的指令數(shù)量,提高運算效率目錄數(shù)據(jù)庫系統(tǒng)—GaussDB69GaussDB總體架構(gòu)GaussDB查詢處理GaussDB存儲GaussDB分布式GaussDB云原生GaussDB高可用GaussDB安全GaussDB智能70GaussDB云原生數(shù)據(jù)庫系統(tǒng)—GaussDB數(shù)據(jù)節(jié)點數(shù)據(jù)節(jié)點數(shù)據(jù)節(jié)點數(shù)據(jù)節(jié)點數(shù)據(jù)節(jié)點數(shù)據(jù)節(jié)點3數(shù)據(jù)節(jié)點2事務(wù)管理節(jié)點協(xié)調(diào)節(jié)點PLOGPLOGPagePage日志存儲池頁面存儲池高速網(wǎng)絡(luò)數(shù)據(jù)節(jié)點數(shù)據(jù)節(jié)點1緩存層存儲層PagePage分布式共享緩沖區(qū)計算層PagePage分布式計算存儲分離架構(gòu)存儲節(jié)點日志按需回放數(shù)據(jù)預(yù)分片哈希桶聚簇存儲映射表并行遷移哈希桶聚簇存儲自調(diào)節(jié)查詢下發(fā)讀寫負載均衡71GaussDB云原生分布式計算存儲分離:計算與存儲解耦,實現(xiàn)計算資源池和存儲資源池獨立擴縮容,分層彈性存儲節(jié)點按需回放:存儲節(jié)點實現(xiàn)日志回放,大幅減少計算節(jié)點和存儲節(jié)點帶寬壓力。數(shù)據(jù)預(yù)分片:結(jié)合底層分布式存儲,
實現(xiàn)數(shù)據(jù)預(yù)分片能力,縮短擴容時間,
實現(xiàn)業(yè)務(wù)平滑擴容哈希桶聚簇存儲:把表文件拆分為多個
分片,采用一致性哈希算法,擴容時,
只需重分布少量數(shù)據(jù)可實現(xiàn)擴容映射表并行遷移:用戶數(shù)據(jù)不遷移,
僅遷移少量元數(shù)據(jù)映射表,
實現(xiàn)數(shù)據(jù)在數(shù)據(jù)節(jié)點的重分布,達成擴容目標(biāo)數(shù)據(jù)庫系統(tǒng)—GaussDB網(wǎng)絡(luò)數(shù)據(jù)節(jié)點1存儲池映射表分片1分片2分片3分片4DN1-分片1DN1-分片2DN1-分片3DN1-分片4網(wǎng)絡(luò)數(shù)據(jù)節(jié)點1存儲池映射表分片1分片3DN1-分片1DN2-分片2DN1-分片3DN2-分片4數(shù)據(jù)節(jié)點2映射表分片2分片472GaussDB云原生全局回放點計算:收集所有備機回放進度,計算全局一致性點自調(diào)節(jié)查詢下發(fā):通過全局一致點信息,選擇滿足要求的節(jié)點下發(fā)查詢,保證分布式強一致讀取讀寫負載均衡:將讀請求下發(fā)給同一分片,不同的副本節(jié)點,實現(xiàn)讀請求的負載均衡數(shù)據(jù)庫系統(tǒng)—GaussDBAPP自調(diào)節(jié)查詢?nèi)只胤劈c計算主節(jié)點副本主節(jié)點副本協(xié)調(diào)節(jié)點數(shù)據(jù)節(jié)點1數(shù)據(jù)節(jié)點2全局回放點事務(wù)管理器(GTM)目錄數(shù)據(jù)庫系統(tǒng)—GaussDB73GaussDB總體架構(gòu)GaussDB查詢處理GaussDB存儲GaussDB分布式GaussDB云原生GaussDB高可用GaussDB安全GaussDB智能74GaussDB高可用容災(zāi)關(guān)鍵技術(shù)GaussDB設(shè)計了多副本高可用、兩地三中心、雙集群高可用、跨地域多活等技術(shù),全面提升分布式數(shù)據(jù)庫的高可用能力數(shù)據(jù)庫系統(tǒng)—GaussDB容災(zāi)級別容災(zāi)方案故障場景關(guān)鍵技術(shù)同城三可用區(qū)節(jié)點、機房級故障多副本一致性算法同城雙集群節(jié)點、機房級故障并行邏輯日志解析與回放異地兩地三中心節(jié)點、機房級、城市級故障物理日志流式復(fù)制技術(shù)異地雙活節(jié)點、機房級、城市級故障并行邏輯日志復(fù)制技術(shù)75GaussDB高可用數(shù)據(jù)庫系統(tǒng)—GaussDB異地多活同城跨AZ同城數(shù)據(jù)中心A同城數(shù)據(jù)中心B用戶數(shù)據(jù)雙向復(fù)制讀寫讀寫兩地三中心同城數(shù)據(jù)中心A同城數(shù)據(jù)中心B異地冷備中心C數(shù)據(jù)異步復(fù)制數(shù)據(jù)異步復(fù)制用戶數(shù)據(jù)雙向復(fù)制讀寫讀寫統(tǒng)一接入層用戶多數(shù)據(jù)中心復(fù)制協(xié)議A城數(shù)據(jù)中心B城數(shù)據(jù)中心C城數(shù)據(jù)中心76GaussDB多副本高可用數(shù)據(jù)庫系統(tǒng)—GaussDBDN(M)DCF……WALlogmetadataThreadpooltimerqueuereplicationstoragenetworkelectioninterfaceapi&callbackfilefilefileDN(S)DCF……WALloginterfaceapi&callbackmetadataThreadpooltimerqueuereplicationstoragenetworkelectionpipelinefilefilefilebatchpipelinepipelinepipelinebatchBatchPipelinecompress基于Paxos協(xié)議的自感知共識高可用架構(gòu)備備備備主Paxos77GaussDB同城雙集群RPO=0數(shù)據(jù)庫系統(tǒng)—GaussDB78GaussDB兩地三中心數(shù)據(jù)庫系統(tǒng)—GaussDB79GaussDB多地多活數(shù)據(jù)庫系統(tǒng)—GaussDB80GaussDB邏輯復(fù)制從WAL記錄并行反解析事務(wù)的SQL,反解析依賴于系統(tǒng)表元信息。反解析的事務(wù)SQL在目標(biāo)端數(shù)據(jù)庫按照在源端的csn順序提交。有行沖突的事務(wù)必須是串行的,無法并行執(zhí)行。對無行沖突的事務(wù),可以并行,但是原則上也要按照csn提交順序提交事務(wù)才可以保證事務(wù)的因果序。邏輯復(fù)制支持發(fā)布訂閱功能,支持創(chuàng)建邏輯復(fù)制槽。數(shù)據(jù)庫系統(tǒng)—GaussDBWAL并行邏輯解碼目標(biāo)端數(shù)據(jù)庫系統(tǒng)表SQL并行回放目錄數(shù)據(jù)庫系統(tǒng)—GaussDB81GaussDB總體架構(gòu)GaussDB查詢處理GaussDB存儲GaussDB分布式GaussDB云原生GaussDB高可用GaussDB安全GaussDB智能82GaussDB安全全景數(shù)據(jù)庫系統(tǒng)—GaussDB進不來拿不走看不懂改不了賴不掉第三方安全測試數(shù)據(jù)庫審計機制GDPRCC認證第三方評估數(shù)據(jù)庫安全感知框架數(shù)據(jù)庫內(nèi)核可信接入訪問控制數(shù)據(jù)脫敏數(shù)據(jù)加密語句審計統(tǒng)一審計機制用戶審計數(shù)據(jù)庫防篡改部署架構(gòu)賬本數(shù)據(jù)庫機制口令登錄認證(RFC5802)SSL證書認證IP黑白名單細粒度權(quán)限管理行級訪問控制RBAC動態(tài)脫敏靜態(tài)脫敏傳輸加密TDE加密備份加密資源標(biāo)簽/策略異常行為發(fā)現(xiàn)動態(tài)威脅檢測多中心防篡改機制純軟密態(tài)ABACIAM/Kerberos等認證機制12攻不破運行配置安全攻擊模式庫34231456764信得過75硬件密態(tài)中心化防篡改機制內(nèi)置角色機制AISQL防注入數(shù)據(jù)庫水印敏感數(shù)據(jù)發(fā)現(xiàn)數(shù)據(jù)庫多層級安全防御架構(gòu)Auditor83GaussDB安全機制體系安全認證限制用戶對數(shù)據(jù)庫的訪問基于角色的訪問控制控制用戶對數(shù)據(jù)庫資源的訪問審計日志記錄與行為追溯統(tǒng)一審計數(shù)據(jù)安全保障數(shù)據(jù)的隱私和安全全密態(tài)防篡改異常行為分析和SQL防注入數(shù)據(jù)庫系統(tǒng)—GaussDB84GaussDB安全認證工作模式:客戶端/服務(wù)端模式解決訪問源可信問題將訪問方式、訪問源IP地址、認證方法等存放在服務(wù)端的配置文件中認證方法Trust認證:無需提供口令口令認證:SHA256加密口令認證證書認證:使用SSL客戶端認證安全認證機制RFC5802認證機制客戶端服務(wù)端配置SSL認證信息(可選)發(fā)送連接請求發(fā)送認證信息獲取認證響應(yīng)認證通過繼續(xù)或認證失敗中斷建立連接分配服務(wù)線程檢查配置文件獲取認證信息發(fā)送認證方式進行認證處理認證通過啟動任務(wù)會話數(shù)據(jù)庫系統(tǒng)—GaussDB85GaussDB安全認證數(shù)據(jù)庫系統(tǒng)—GaussDBgsql-d
db
-Uusername-W‘passwd#123’-h192.168.0.10-p
8000-r請求登錄的數(shù)據(jù)庫登錄所使用的用戶名對應(yīng)用戶名的密碼服務(wù)器端IP地址服務(wù)端端口號客戶端登錄數(shù)據(jù)庫本地登錄遠程登錄初始用戶非初始用戶trust連接非初始用戶(初始用戶禁止遠程連接)禁止遠程trust登錄trust連接非trust連接通過身份驗證后可登錄trust/非trust連接無需身份驗證可登錄非trust連接通過身份驗證后可登錄通過身份驗證后可登錄觸發(fā)事件登錄方式用戶級別連接配置登錄期望86GaussDB權(quán)限管理:基于角色的訪問控制用戶(USER)創(chuàng)建、訪問數(shù)據(jù)庫對象和執(zhí)行SQL語句。角色(ROLE)通常用來組織和管理權(quán)限。系統(tǒng)權(quán)限:又稱用戶屬性,系統(tǒng)規(guī)定用戶使用數(shù)據(jù)庫的權(quán)限,
比如連接數(shù)據(jù)庫(LOGIN),創(chuàng)建數(shù)據(jù)庫(CREATEDB),創(chuàng)建用戶(CREATEROLE)等。使用角色控制哪些用戶擁有哪些對象的哪些權(quán)限,可以大大簡化權(quán)限的管理。通過將多種權(quán)限打包成角色授予用戶,使得用戶獲得該角色的所有權(quán)限;若改變角色的權(quán)限,則繼承該角色的用戶權(quán)限會被自動修改。一個用戶也可以繼承多個不同角色的權(quán)限。數(shù)據(jù)庫系統(tǒng)—GaussDB系統(tǒng)權(quán)限對象權(quán)限角色權(quán)限控制87GaussDB權(quán)限管理:基于角色的訪問控制角色包含角色組中所有成員權(quán)限管理員將權(quán)限賦予角色,用戶從角色繼承相應(yīng)權(quán)限每個數(shù)據(jù)庫對象都有對應(yīng)的訪問控制列表ACL三權(quán)分立管理員細分為安全管理員、系統(tǒng)管理員和審計管理員安全管理員系統(tǒng)管理員審計管理員審計日志可創(chuàng)建不可審不可管可審不可管可管理不可審數(shù)據(jù)庫系統(tǒng)—GaussDB88GaussDB基于標(biāo)簽的訪問控制數(shù)據(jù)庫系統(tǒng)—GaussDB符合規(guī)則,允許訪問不符合規(guī)則,拒絕訪問安全標(biāo)簽等級L1-L1024:范圍G1-G1024獲取主體安全標(biāo)簽強制訪問控制規(guī)則校驗主體:用戶客體:表或表列訪問插入(INSERT)主體等級小于等于客體等級且
主體范圍是客體范圍的子集獲取客體安全標(biāo)簽獲取訪問動作修改(UPDATE)主體等級等于客體等級且
主體范圍等于客體范圍查詢(SELECT)主體等級大于等于客體等級且
主體范圍是客體范圍的超集刪除(DELETE)主體等級等于客體等級且
主體范圍等于客體范圍89GaussDB審計目的:快速發(fā)現(xiàn)和追溯異常行為審計日志內(nèi)容:事件發(fā)起者、發(fā)生時間、事件內(nèi)容審計線程自動記錄審計日志保存方法:記錄到數(shù)據(jù)庫表或操作系統(tǒng)文件審計追蹤審計文件按先后順序進行標(biāo)記以特定格式存儲統(tǒng)一審計通過規(guī)則在數(shù)據(jù)庫內(nèi)部有選擇性執(zhí)行有效審計數(shù)據(jù)庫系統(tǒng)—GaussDB90GaussDB數(shù)據(jù)安全管理數(shù)據(jù)庫系統(tǒng)—GaussDB應(yīng)用程序ODBC/JDBC驅(qū)動加密驅(qū)動(UserSide)明文數(shù)據(jù)數(shù)據(jù)加解密數(shù)據(jù)庫內(nèi)核密文數(shù)據(jù)可信執(zhí)行環(huán)境(TEE)密文數(shù)據(jù)智能安全管控SQL注入檢測異常行為檢測全密態(tài)數(shù)據(jù)處理純軟密態(tài)查詢軟硬融合密態(tài)防篡改數(shù)據(jù)處理賬本數(shù)據(jù)庫多中心防篡改安全認證訪問控制數(shù)據(jù)脫敏透明加密審計機制第三方認證23191GaussDB數(shù)據(jù)加密數(shù)據(jù)加密數(shù)據(jù)經(jīng)過加密后以密文形式存儲數(shù)據(jù)脫敏對敏感信息進行特殊處理,掩蓋敏感數(shù)據(jù)主要使用動態(tài)脫敏技術(shù)透明加密全程加密更好地保護靜態(tài)存儲的數(shù)據(jù)防止第三方人員繞過認證機制數(shù)據(jù)庫密鑰由系統(tǒng)密鑰管理系統(tǒng)生成數(shù)據(jù)庫密鑰密文以文件存儲于數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)進入到數(shù)據(jù)庫系統(tǒng)后一直出于加密狀態(tài)DML請求解析、查詢、重寫、生成執(zhí)行計劃調(diào)用存儲引擎選擇加密/解密算法執(zhí)行加密/解密運算返回結(jié)果檢查密鑰記錄文件獲取密鑰檢查密鑰正確性數(shù)據(jù)庫密鑰數(shù)據(jù)庫系統(tǒng)—GaussDB92GaussDB全密態(tài)數(shù)據(jù)庫系統(tǒng)—GaussDBlibpq協(xié)議ClientKMSREE(ciphertext)業(yè)務(wù)QuerySelectc1fromtablewherec1>123;TEE(plaintext)selectc1fromtablewherec1>‘0xfe31da05’;123->‘0xfe31da05’‘0xad6e5d2e’‘0x5892be2d’‘0x784dce2f’疊加網(wǎng)絡(luò)ClientEncryptionKey(CEK)GaussDBREE:RichExecutionEnvironmentTEE:TrustExecutionEnvironmentTEE環(huán)境明文計算REE環(huán)境密文計算純軟軟硬結(jié)合idc1(plaintext)c1(ciphertext)C100012560xad6e5d2eC100021570x5892be2dC10003970x124f4ed2C100046850x784dce2fC10005580x324f4ed293GaussDB防篡改數(shù)據(jù)庫系統(tǒng)—GaussDBGaussDB賬本數(shù)據(jù)庫多方共識
cluster1cluster2clusterN…賬本數(shù)據(jù)存儲:忠實記錄用戶數(shù)據(jù)操作的完整信息,保證操作鏈可追溯。挑戰(zhàn):保證追溯信息充分的情況下降低額外存儲開銷多方共識防篡改:數(shù)據(jù)的修改需要取得參與節(jié)點的一致。挑戰(zhàn):高性能共識協(xié)議。dataslice1slice2slice3checkpoint1checkpoint2checkpoint3增量校驗增量校驗多方共識高效篡改校驗算法:保證用戶在不接觸敏感信息的條件下校驗數(shù)據(jù)庫中數(shù)據(jù)的一致性和完整性。挑戰(zhàn):高性能、高并發(fā)的篡改校驗算法94GaussDB防篡改數(shù)據(jù)庫系統(tǒng)—GaussDB防篡改賬本數(shù)據(jù)庫:使用Multi-Set方式生成數(shù)據(jù)及SQL操作的校驗數(shù)據(jù),提供高性能、強追溯的防篡改對數(shù)據(jù)增刪改操作,系統(tǒng)會記錄行級數(shù)據(jù)變化追溯信息及操作的追溯信息,并通過算法高效生成校驗信息通過對校驗信息的保護和校驗,起到對重要數(shù)據(jù)的完整性保護,識別、阻止未授權(quán)更改區(qū)塊鏈數(shù)據(jù)結(jié)構(gòu)單一交易性能低易用性差存儲
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 應(yīng)急救護評估程序課件
- 經(jīng)理人入股協(xié)議書
- 作家簽約協(xié)議書
- 2025年禽類養(yǎng)殖場糞污處理服務(wù)合同
- 恒泰安全標(biāo)準(zhǔn)化課件
- 游戲設(shè)計師游戲開發(fā)與維護工作績效考核表
- 工作場所安全隱患排查與整改模板
- 通信技術(shù)項目經(jīng)理網(wǎng)絡(luò)行業(yè)績效考核表
- 客戶服務(wù)標(biāo)準(zhǔn)化流程與問題解決方案庫
- 一本好書引導(dǎo)我成長讀后感作文15篇范文
- 飛機機務(wù)維修工程師航空業(yè)機務(wù)維修績效表
- 2026屆四川省德陽市2023級高三一診英語試題(含答案和音頻)
- 2025年遵守工作紀(jì)律財經(jīng)紀(jì)律心得體會
- 第11課《我們都是熱心人》第一課時(課件)
- 7.2《走向未來》課件- 2024-2025學(xué)年統(tǒng)編版道德與法治九年級下冊
- 市場銷售費用管理制度(3篇)
- 含銅污泥與廢線路板協(xié)同處理及綜合利用技術(shù)
- 法律法規(guī)及其他要求獲取與識別程序
- (教師版)《項脊軒志》文言知識點檢測
- IATF-I6949SPC統(tǒng)計過程控制管理程序
- 電大國民經(jīng)濟核算期末考試試題及答案匯總
評論
0/150
提交評論