數(shù)據(jù)庫技術(shù)發(fā)展,如何搭載GPU、FPGA和SCM等新硬件技術(shù)?

傳統(tǒng)的引擎,包括 Oracle、SQL Server 等的磁盤引擎并沒有針對 SSD 做 出什么明顯的改變,倒是 SSD 直接替換了磁盤,憑借優(yōu)秀的 IO 能力就已經(jīng)解決了很多現(xiàn) 實問題。大內(nèi)存對產(chǎn)品改變主要體現(xiàn)在 SQL Server 等增加了內(nèi)存引擎,也出現(xiàn)了很多的內(nèi) 存數(shù)據(jù)庫產(chǎn)品。

數(shù)據(jù)庫與新硬件技術(shù)關(guān)系:數(shù)據(jù)庫技術(shù)的發(fā)展依靠應(yīng)用需求的牽引力和新硬件產(chǎn)品的推動力。

最近十幾年,新硬件產(chǎn)品對數(shù)據(jù)庫系統(tǒng)設(shè)計的影響一直是一個比較熱門的主題。期間最主要的硬 件技術(shù)進步是多處理器(SMP)、多核(MultiCore)、大內(nèi)存(Big Memory)和SSD。

新硬件對數(shù)據(jù)庫設(shè)計的影響

多處理器、多核的流行促使了數(shù)據(jù)庫系統(tǒng)設(shè)計要考慮充分利用多處理器和多核的并行處理能力,傳統(tǒng)數(shù)據(jù)庫的設(shè)計針對的是單一處理器或少數(shù)幾個處理器的場景,并沒有把重心放在這里。多核多處理器對數(shù)據(jù)庫系統(tǒng)的高并發(fā)需求演進到了并行需求,這也是為什么 1990 年 代并行數(shù)據(jù)庫技術(shù)的研究非常熱門。

而 SSD 的出現(xiàn)大大提高了塊設(shè)備的處理能力(很高的 IOPS和很低的延遲),極大的緩解了慢速磁盤設(shè)備給數(shù)據(jù)庫系統(tǒng)帶來的挑戰(zhàn)??墒?SSD 的 物理特性(擦寫、壽命等)又和磁盤存在較大的差別。

很多研究和創(chuàng)新都集中在基于 SSD 的新存儲引擎設(shè)計上,試圖發(fā)明一些新的引擎,既可以充分利用 SSD 設(shè)備的 IO 能力,又 避免其擦寫和壽命的問題。甚至有一些研究試圖針對數(shù)據(jù)庫的特點,定制 SSD 的訪問 API。

現(xiàn)在回顧來看,傳統(tǒng)的引擎,包括 Oracle、SQL Server 等的磁盤引擎并沒有針對 SSD 做 出什么明顯的改變,倒是 SSD 直接替換了磁盤,憑借優(yōu)秀的 IO 能力就已經(jīng)解決了很多現(xiàn) 實問題。大內(nèi)存對產(chǎn)品改變主要體現(xiàn)在 SQL Server 等增加了內(nèi)存引擎,也出現(xiàn)了很多的內(nèi) 存數(shù)據(jù)庫產(chǎn)品。

最近幾年,針對 NVM 的研究和開發(fā)出現(xiàn)得更多了一些,針對 NVM 設(shè)計一個 全新的引擎更多的屬于學術(shù)研究和創(chuàng)業(yè)企業(yè)的范圍,企業(yè)產(chǎn)品更多的是針對產(chǎn)品的某些部件 做一些改進,例如 Oracle、SAP HANA、SQL Server 等。

除了NVM之外,還有一些硬件, 例如 GPU、FPGA、RDMA 等也一直受到關(guān)注。其中,GPU、FPGA對數(shù)據(jù)庫而言,起到的主要 是對特定操作加速的作用,因此大多用在 OLAP 的場景。

新硬件引入的不同階段

針對新硬件的引入,可以分為以下幾個階段:

純粹的學術(shù)研究階段:主要的參與者為學術(shù)機構(gòu)以及各大公司的研究部門。通常的做法是針對新硬件完全從頭設(shè)計 一個新的存儲引擎,并評估各種設(shè)計的可能,然后以此原型為基礎(chǔ),實現(xiàn) SQL 等功能。主要 目的是研究各種潛在的可能性,并發(fā)表論文和專利等。偶爾也會有人根據(jù)論文創(chuàng)立公司。

工程化的研究階段:主要的參與者為各大公司的研究部門或?qū)嶒炇?。做法一般比學術(shù)研究要務(wù)實一些,通?;?現(xiàn)有的產(chǎn)品做局部性的改造或者融合新老產(chǎn)品。在此過程中也可能會產(chǎn)生一些工程性的論文 或?qū)@?。此時,也可能會出現(xiàn)一些創(chuàng)業(yè)性公司。

產(chǎn)品化階段:主要的參與者是公司的工程化團隊,也會有研究部門或?qū)嶒炇业膮⑴c。到了這一階段就 可以認為技術(shù)已經(jīng)足夠成熟。在商業(yè)化產(chǎn)品足夠成熟后,小型的產(chǎn)品或一些開源的產(chǎn)品 也會逐步采納相關(guān)的技術(shù)。

新硬件相關(guān)的數(shù)據(jù)庫產(chǎn)品

多處理器、多核、大內(nèi)存、SSD 等的進步,對實際系統(tǒng)的影響要相對小一點;也就是說現(xiàn)有 系統(tǒng)不做大的改動,實際上也很繼續(xù)跑。對多處理器和多核的支持主要體現(xiàn)在并行處理上, 這實際上也是 1990 年代的研究主流,因此在現(xiàn)有的商業(yè)產(chǎn)品中早就得到了不同程度的優(yōu)化。

大內(nèi) 存主要促進了內(nèi)存數(shù)據(jù)庫引擎的發(fā)展,不僅出現(xiàn)了很多新型的內(nèi)存數(shù)據(jù)庫如 MemSQL、HANA 等,傳統(tǒng)產(chǎn)品中也出現(xiàn)了一些新的內(nèi)存引擎,如 SQL Server 的 Heckton。SSD 領(lǐng)域的研究 雖然很多,但是對實際產(chǎn)品的影響似乎不大。業(yè)界明顯可以看到的反而是 LSM 類引擎的流行, 例如以 RocksDB 為代表的 KV 存儲引擎。

GPU、FPGA、NVM/SCM等t硬件設(shè)備本身很比較特殊,因此對數(shù)據(jù)庫系統(tǒng)的影響要相對大很多。而且 由于它們也不像處理器、內(nèi)存、SSD 那樣通用,早期很多公司都把產(chǎn)品設(shè)計為專用的 Appliance, 近些年則大多是在大型互聯(lián)網(wǎng)公司的機房內(nèi)進行規(guī)?;渴稹S眯员容^強的設(shè)備意味著可以做 深度的定制開發(fā),充分發(fā)掘其優(yōu)勢;反過來,也意味著數(shù)據(jù)庫的通用性可能會受限制,不利 于用戶的采納。GPU、FPGA 都適合做特定的數(shù)據(jù)庫操作的加速,容易想到的如數(shù)據(jù)的 SCAN 以及謂 詞過濾,大量數(shù)據(jù)的排序,大表的 JOIN、聚集等操作。甚至有一些 CPU 廠商或 SSD 廠商 也可以利用 FPGA 或處理器的富余計算能力,在做壓縮、CRC、加解密之外,也來加速數(shù)據(jù)庫操作。

硬件技術(shù): GPU

GPU技術(shù)日益成熟,GPU在特殊數(shù)據(jù)應(yīng)用加入方面也得到了發(fā)展和應(yīng)用。GPU相關(guān)的數(shù)據(jù)庫創(chuàng)業(yè)公司主要有 Kinetica (2009 年成立)、 SQream (2010 年成立)、 ParStream (2011 年成立)、PG-Strom (2012 年 NEC)、MapD (2013 年成立)等。

硬件技術(shù): FPGA

FPGA在OLAP領(lǐng)域最出名的產(chǎn)品應(yīng)該是Netteza。此外還有KickFire(2005) 等公司。前者被IBM收購,后者被 Teradata 收購,發(fā)展都不是很理想,市場上的聲音也 小了很多。最近幾年,互聯(lián)網(wǎng)公司又在FPGA的加速方面做了很多探索,例如微軟用 FPGA 來加速網(wǎng)卡的處理,百度用 FPGA 來加速查詢處理等。

硬件技術(shù): NVM/SCM

NVM作為很多種持久化內(nèi)存形態(tài)的總稱,最近幾年因為Intel推出了相關(guān)的產(chǎn)品DCPMM(基于3D XPoint非易失性存儲/內(nèi)存技術(shù)),Optane數(shù)據(jù)中心持久化內(nèi)存技術(shù)引起了更廣泛的關(guān)注。SAP HANA等產(chǎn)品也與 Intel 合作,提供了一些改進的版本。主要的 數(shù)據(jù)庫廠商如 Oracle、SQL Server 等也不甘落后。此外,CMU等研究機構(gòu)也發(fā)表了相關(guān)領(lǐng)域的論文。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論