天天看點

OceanBase 3.2 正式釋出 | 更硬核的 HTAP,TPC-H 性能提升6倍!

OceanBase 3.2 正式釋出 | 更硬核的 HTAP,TPC-H 性能提升6倍!

2021年10月22日雲栖大會上,OceanBase CTO 楊傳輝分享了《OceanBase 一體化架構助力核心系統》的主題演講,并宣布 OceanBase 3.2 版本正式釋出。

OceanBase 3.2 正式釋出 | 更硬核的 HTAP,TPC-H 性能提升6倍!

OceanBase 資料庫作為一款企業級原生分布式關系型資料庫,自創立以來一直堅持原生分布式的發展路線,其高相容、金融級容災和高可用、透明靈活擴充、超強穩定性等能力已經在金融、政府、營運商等各個行業得到了充分驗證以及認可。今年 6 月 1 日,OceanBase 3.0 産品釋出會宣布 OceanBase 資料庫進入 3.0 時代,全力打造硬核的原生分布式 HTAP 資料庫,打破邊界,同時支援 OLTP 和 OLAP 負載。截止目前為止,OceanBase 3.0 已經在多家企業的核心業務系統得以應用。

OceanBase 3.2 是宣布進入3.0時代後的首個重大版本,持續在企業級能力建構上發力,圍繞相容性、HTAP混合負載、小規格成本效益等幾大核心能力,在Oracle/MySQL 相容、易用性、穩定性、性能和功能等諸多方面持續疊代增強與優化更新,在提升使用者體驗的同時,幫助使用者更輕松地完成應用遷移、TP 和 AP 統一部署、降低應用開發部署和運維成本。OceanBase 3.2在同等環境及任務的前提下,相比于3.1版本,Sysbench OLTP 性能提升24%,BMSQL tpmC 性能提升30%以上,TPC-H 性能提升655%,極大的提升了 OLAP 能力。

01

更高的性能,TPC-H 6倍高性能提升

Ⅰ.硬核 HTAP 能力,OLTP 和 OLAP 性能大幅提升

在 3.2 版本,OceanBase 資料庫通過執行計劃索引剪枝、緩沖區重新整理算法、去除重複表達式、Table Scan 算子,多種算子的執行效率與記憶體消耗優化,極大提升了HTAP 負載能力。相比于3.1版本,3.2版本在 OLTP 和 OLAP 性能上具有大幅度提升,可以更輕松的應對海量資料和高并發的 OLTP 業務挑戰以及實時分析的 OLAP 業務與挑戰,在 TPC-H 性能測試上提升655%,極大的提升了 OLAP 能力。

Ⅱ.支援小規格部署,性能提升30%

持續優化系統内部子產品級記憶體使用限制,突破小規格限制,并支援在8C64GB 小規格機器部署并穩定運作。性能層面,相比3.1版本整體提升30%。針對記憶體寫入平滑性、系統并發執行、系統可用會話池、收發包記憶體等記憶體使用方面進行性能增強優化。進一步降低資料庫對記憶體資源消耗。針對棧記憶體、Diagnose 記憶體、SQL 線程緩存、Close STMT 隊列等子產品記憶體方面進行重要技術更新,大幅提升資料庫對記憶體資源的使用率。

OceanBase 3.2 正式釋出 | 更硬核的 HTAP,TPC-H 性能提升6倍!
OceanBase 3.2 正式釋出 | 更硬核的 HTAP,TPC-H 性能提升6倍!

Ⅲ.突破分布式資料庫事務限制,支援超大事務

分布式資料庫系統記憶體 Memstore 中寫入的資料量超過一定限制時将 Memstore  “當機”并将資料 dump 到磁盤上,但當機和轉儲過程 Memstore 中要求沒有未送出的事務,是以會導緻活躍事務頻繁搬遷以及租戶記憶體爆的風險。OceanBase 通過轉儲未送出事務技術(租戶級别的排程與當機超出記憶體限制的活躍未送出事務)以及 Paxos 即時寫日志技術(對當機事務生成 clog 進行Paxos 同步),實作了分布式資料庫對超大事務支援能力,更好地有效解決轉儲對事務狀态的依賴。

Ⅳ.核心能力優化提升性能

強化核心能力,通過 Marker 去除重複的表達式,替代原有的 HashSet 以獲得更好的性能;新增支援手工收集優化器統計資訊,提升手工調優能力;新增索引自動加密,提升資料存儲的安全性。

02

更高相容性,降低業務遷移改造成本

OceanBase 資料庫針對 Oracle 和 MySQL 模式,在功能、文法、函數、過程語言、系統包等方面均進行了相容性增強,進一步降低業務遷移到 OceanBase 資料庫的改造成本,以及使用者使用 OceanBase 資料庫的學習成本。

Ⅰ.Oracle 相容性,支援存儲過程讀寫及定時器任務管理排程能力

新增支援系統包 UTL_FILE,實作多系統間的資料交換、同步和整合,使用者可以将資料庫内的資料寫成檔案同步至下遊系統使用,也可将其他系統生成的資料檔案讀入資料庫做進行進一步處理,避免系統重構成本。新增支援定時器任務 DBMS_JOB ,可以輕松進行任務的管理和排程,實作定時任務、循環任務及異步任務等複雜業務場景下的自定義任務管理和排程,降低人力維護成本。

  客戶原聲:UTL_FILE  

某大型銀行:上層十餘個微服務應用均需要通過 UTL_FILE 與外部檔案互動進行資料的載入和導出, 3.2版本支援的 UTL_FILE 功能,大幅提升相容性并降低改造成本,提升研發人員操作外部檔案的效率。

  客戶原聲:定時器任務 DBMS_JOB  

某保險公司:在保險業務跑批過程中,通過 DBMS_JOB 可以靈活定制定時作業,用于進行清理大表曆史資料、财務明細計算和彙總等,大大簡化了開發和運維。

某營運商:當資料庫自身不能執行定時任務時,為了完成營運商的資料修複任務,隻能通過應用修改或編寫作業系統 Shell 腳本的方式實作,所有的定時任務無法統一管理和統一運維,長期使用會造成大量不可追溯源頭的資料問題。3.2版本 OceanBase 提供了完全相容 Oracle DBMS_JOB 的定時任務能力,可以用于安排和管理自定義任務,實作資料庫定時任務的統一管理和維護。

Ⅱ.适配 MySQL 5.7 協定,MySQL 模式下支援自增列和 DML 觸發器

适配支援 MySQL 5.7 驅動協定,支援 5.7 新增的會話變量,可以推高 OceanBase 的 MySQL 相容版本,避免企業内部安全審計問題。新增支援自增列做為分區鍵,為資料的邏輯分離提供更好的靈活性。OceanBase 的 MySQL 模式并不支援 DML 觸發器,導緻需要觸發器行為的場景下,客戶需要自己寫代碼來實作資料和記錄的限制,OceanBase 資料庫在3.2版本在 MySQL 模式下支援 DML 觸發器,使用者可以在表上建立觸發器,當在該表上的 DML 操作滿足條件時,即可觸發使用者自定義行為。

  客戶原聲:使用自增列作為分區鍵  

某商業銀行:智能收支業務測試中存在部分表将自增列做為主鍵,并通過自增列進行分庫分表的設計,此前由于不支援自增列的分區表建立,隻能通過複合方式完成,在完全的遷移性或相容性上是無法完全符合要求。支援自增列建立分區表後,滿足需求的同時大大減少對業務的侵入。

03

提高産品易用性,降低運維成本

OceanBase 資料庫對資料庫的易管理和易運維進行了針對性的提升,針對很多常用使用者操作進行了簡化,降低使用者使用資料庫的複雜度,提升使用效率。

OceanBase 3.2 正式釋出 | 更硬核的 HTAP,TPC-H 性能提升6倍!
OceanBase 3.2 正式釋出 | 更硬核的 HTAP,TPC-H 性能提升6倍!

Ⅰ.提升自動化能力簡化運維成本

支援 Schema History 回收功能和自動清空資源回收筒功能,OceanBase 資料庫資源回收筒提供以租戶為機關,當磁盤空閑空間不足時,按照 FIFO 的政策,自動清理資源回收筒空間的功能。支援使用者通過配置項 _schema_history_recycle_interval 控制Schema History 回收周期,通過配置項 recyclebin_object_expire_time 指定資源回收筒中對象的過期時間。提供自動巡檢能力,可以根據内置巡檢規則及系統腳本對關心的資源設定時間進行檢查并生成巡檢報告。支援租戶級别的最新狀态實體恢複,恢複指令在預設條件下恢複到 CLOG 中記錄的目标租戶的最新狀态簡化使用者操作。

  客戶原聲:支援自動清空資源回收筒功能  

某商業銀行:資源回收筒作為運維人員的“定心丸”,可以作為誤删資料、租戶時的最後的屏障。但是否在運維過程中遇到在建立表時發現存儲空間不足,而空間實際上被資源回收筒中的對象大量占用的問題。這類問題可能需要消耗較長時間才可能排查出來。3.2版本提供的資源回收筒自動清理功能,提供以租戶為機關,當磁盤空閑空間不足時,按照 FIFO 的政策,自動清理資源回收筒,并可以指定資源回收筒中對象的過期時間。

”Ⅱ.極大提升性能及問題診斷監控能力

提供内部狀态可視化能力,通過虛拟表讀取任務隊列及記憶體任務情況;加強性能診斷報告能力,對叢集的性能名額、參數和資源配置、負載進行分析并生成診斷報告幫助 DBA 進行性能診斷;提供 SQL 診斷調優特性,針對 SQL 進行健康情況診斷及性能問題排查,識别可能會影響系統穩定性的慢 SQL 及可疑 SQL ,幫忙使用者提早排查問題規避風險。

04

核心場景穩定性更強,為業務護航

OceanBase 資料庫在通路連續性、資料一緻性和事務執行等方面針對性提升系統的穩定性,為客戶業務的連續性和正确性提供更有效的保障。新增全局死鎖檢測、本地路由表自動重新整理、備機強一緻性讀、系統異常狀态偵測強化、叢集網絡流控優化能力。

OceanBase 3.2 正式釋出 | 更硬核的 HTAP,TPC-H 性能提升6倍!
OceanBase 3.2 正式釋出 | 更硬核的 HTAP,TPC-H 性能提升6倍!

Ⅰ.新增全局死鎖檢測功能,及時處理死鎖問題,保障事務執行穩定性

死鎖是資料庫非常常見的問題。出現死鎖時,需要 DBA 來監控或巡檢發現,并人工進行處理;定位時間和周期都比較長。針對這一場景,OceanBase 資料庫在3.2版本支援全局死鎖檢測功能。實作分布式死鎖檢測的關鍵在于, 如何彙總每個節點上的局部鎖等待關系, 并基于彙總出來的全局鎖等待關系産生全局的鎖等待圖(wait-for graph), 找出圖中成環(deadlock cycle)的事務, 最後挑選出最優的事務作為犧牲者(victim)去解開死鎖。

OceanBase 資料庫采用基于 Mitchell-Merritt 算法,使得分布式死鎖檢測在分布式資料庫系統中的得以實作。目前死鎖檢測範圍已包含嵌套執行、存儲過程、觸發器、外鍵等,後續版本也會持續增強和完善全局死鎖檢測能力。

  客戶原聲:全局死鎖檢測  

某商業銀行:在分布式資料庫系統中,系統可能經常出現死鎖,過去隻能用逾時等待方式在系統逾時出現時再解除死鎖。依靠OceanBase 3.2的最新全局死鎖檢測功能,系統可以第一時間檢測到死鎖,讓死鎖解除大幅加速。

Ⅱ.支援超多分區,突破個數規格限制,確定業務系統穩定性

OceanBase 3.2版本就分區級聯方案、分區狀态算法、心跳及日志傳輸等多個重要子產品元件進行增強優化,實作資料庫叢集支援規模達到50萬級别分區數量,幫助使用者在業務高速增長下保證系統穩定性。

Ⅲ.優化叢集網絡流控,避免網絡帶寬耗盡帶來的通路故障

在資料庫實際的業務場景中,當出現大規模資料同步複制(比如故障資料遷移、備份恢複)時,很容易把網絡帶寬耗盡,進而影響正常業務通路。OceanBase 資料庫優化了叢集網絡流控,優化事務日志同步、遷移、補副本、RRebuild 操作拷貝靜态資料等場景下所需要的網絡帶寬資源使用,對網絡流量進行更好的控制,通過規則和保底方案形式避免通路故障的出現。

05

強化管控能力,滿足複雜業務場景

Ⅰ.支援公共雲海外部署形态,助力客戶全球業務拓展

OceanBase 公有雲在海外釋出,在安全特性(SSL 加密、TDE 資料透明加密、VPC 隔離)滿足海外安全合規需求的同時,通過資料存儲壓縮技術優勢,實作成本下降30%、 存儲空間下降90%。

Ⅱ.支援多租戶資源隔離,滿足跨業務跨部門複雜業務場景

大型複雜的業務場景下,不同業務以及部門之間需實作權限及資源隔離,以避免因資源争搶等造成業務間互相影響。針對多租戶場景,提供租戶級的磁盤空間限制管理能力,通過自動化任務定期主動探測空間使用情況,超出時觸發空間限額管理政策。支援租戶級的快照備份恢複,可以根據業務種類及重要程度指定備份政策,并支援自定義備份目的地。

OceanBase 3.2 正式釋出 | 更硬核的 HTAP,TPC-H 性能提升6倍!
OceanBase 3.2 正式釋出 | 更硬核的 HTAP,TPC-H 性能提升6倍!

OceanBase 資料庫将持續圍繞打造硬核原生分布式 HTAP 資料庫,在相容性、穩定性、混合負載 HTAP、透明擴充等方面進行持續提升,把複雜留給資料庫、把簡單留給客戶,打造滿足客戶真實業務訴求和場景的硬核資料庫。