程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> 專家解讀DB2 BLU加速器功能

專家解讀DB2 BLU加速器功能

編輯:DB2教程

IBM公司在今年四月發布了最新的DB2數據庫,其中新增加了BLU加速器(BLU Acceleration)功能。從表面上看,BLU加速器是一個類似於列式存儲+內存計算的功能,但其中還有一些技術細節值得DBA注意。對此,數據庫咨詢顧問Curt Monash在他的博客中對BLU加速器進行了細致的解讀,方便DBA更深入地了解DB2 10.5版本中的這一新功能。

BLU加速器是新版DB2數據庫中的一個功能,它的作用類似於一個列式分析型DBMS。如果對BLU和非BLU表進行連接,其過程是先將所有BLU表連接,然後結果集再與其他DB2進行連接。至此,除了Oracle之外的其他主流企業級數據庫產品都已經添加了列式存儲的功能。

IBM宣稱,BLU能夠線性垂直擴展到64核CPU,而水平擴展將很快實現。IBM建議所有面向分析負載的DB2表都應該使用BLU加速器。第一個版本的BLU加速器針對10 TB級別數據庫進行了優化,其能力可以處理20 TB數據。

BLU加速器在技術方面的創新亮點包括:

查詢功能完全管道化(pipelining ),表掃描可以共享

數據忽略(Data Skipping)功能能夠有效降低I/O

基於單指令多數據結構(SIMD)的矢量化(Vectorization )。

概率緩存取代傳統LRU(Least Recently Used),經常被引用的數據塊出現在內存當中的幾率就越大。這一功能的背後還有更復雜的隨機算法支持。

“自動化工作負載管理”功能,IBM認為查詢之間的資源爭用是造成資源浪費的主要原因,這一功能讓BLU加速器與傳統DB2數據庫相比在並發性上產生差異性優勢。

此外,BLU采用列示存儲模型,在數據壓縮上同樣具備一定優勢。BLU壓縮包括了近似的霍夫曼編碼、前綴編碼和差值壓縮。此外IBM稱,所有的壓縮算法都是保序的,因此范圍判斷可以直接在壓縮數據上執行,也就是說可以直接在壓縮的數據上進行處理和分析。這是BLU壓縮功能中最大的亮點。

同其他列式數據庫系統一樣,BLU加速器的寫數據性能是性能瓶頸所在。對此,IBM給出的解釋是在數據庫中對新數據進行移動(包括內存中和磁盤中的數據),是BLU加速器的優勢之一。IBM支持的方法包括:

BLU加速器支持LOAD、SQL INSERT、UPDATE、DELETE和其他三個基於SQL的操作,即INGEST、IMPORT和EXPORT(另外還包括BACKUP和RESTORE,它們也是移動數據的方式之一)。由於數據導入的語法和語義都保持不變,因此意味著你不需要做任何修改就可以繼續使用IBM Data Stage或者其他第三方的ETL工具。

與其他列式數據庫廠商保證性能的方式有所不同,IBM沒有選擇使用表的delta區域來插入新數據,然後再異步移動行數據到列區域,這種數據的二次加載對於性能將造成很大影響。IBM的方法是,針對主表直接添加數據,然後使用批量轉換來平攤列式處理所帶來的延遲問題。通過批量處理數據,可以極大程度地消除列式數據庫的固有開銷,並且完全避免了數據的二次處理。

此外,IBM還為BLU加速器添加了新的列式日志方法。從表面上來看,它與DB2傳統的基於日志的交易恢復相同,但是其中日志的數據格式是按照列的方式重新組織的。再加上XOR日志功能,BLU可以極大程度上縮減日志空間。而且BLU加速器的表能夠與傳統的數據庫表共存,IBM做到了二者的無縫整合。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved