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

OceanBase資料庫發表於2021-11-10
2021年10月22日雲棲大會上,OceanBase CTO 楊傳輝分享了《OceanBase 一體化架構助力核心系統》的主題演講,並宣佈 OceanBase 3.2 版本正式釋出。

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 能力。

0 更高的效能,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 佇列等模組記憶體方面進行重要技術升級,大幅提升資料庫對記憶體資源的利用率。

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

分散式資料庫系統記憶體 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 資料庫對資料庫的易管理和易運維進行了針對性的提升,針對很多常用使用者操作進行了簡化,降低使用者使用資料庫的複雜度,提升使用效率。

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

支援 Schema History 回收功能和自動清空回收站功能,OceanBase 資料庫回收站提供以租戶為單位,當磁碟空閒空間不足時,按照 FIFO 的策略,自動清理回收站空間的功能。支援使用者透過配置項 _schema_history_recycle_interval 控制Schema History 回收週期,透過配置項 recyclebin_object_expire_time 指定回收站中物件的過期時間。提供自動巡檢能力,可以根據內建巡檢規則及系統指令碼對關心的資源設定時間進行檢查並生成巡檢報告。支援租戶級別的最新狀態物理恢復,恢復命令在預設條件下恢復到 CLOG 中記錄的目標租戶的最新狀態簡化使用者操作。

  客戶原聲:支援自動清空回收站功能  


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


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

提供內部狀態視覺化能力,透過虛擬表讀取任務佇列及記憶體任務情況;加強效能診斷報告能力,對叢集的效能指標、引數和資源配置、負載進行分析並生成診斷報告幫助 DBA 進行效能診斷;提供 SQL 診斷調優特性,針對 SQL 進行健康情況診斷及效能問題排查,識別可能會影響系統穩定性的慢 SQL 及可疑 SQL ,幫忙使用者提早排查問題規避風險。

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


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

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

死鎖是資料庫非常常見的問題。出現死鎖時,需要 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 資料庫將持續圍繞打造硬核原生分散式 HTAP 資料庫,在相容性、穩定性、混合負載 HTAP、透明擴充套件等方面進行持續提升,把複雜留給資料庫、把簡單留給客戶,打造滿足客戶真實業務訴求和場景的硬核資料庫。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69909943/viewspace-2841616/,如需轉載,請註明出處,否則將追究法律責任。

相關文章