從全球頂級數據庫大會 SIGMOD 看數據庫發展趨勢

語言: CN / TW / HK

本文來自 NebulaGraph 的軟件工程師文豪在美國費城參加 2022 年 SIGMOD 大會時的見聞。SIGMOD 是數據庫領域的頂級會議之一,是 CCF 數據庫 / 數據挖掘 / 內容檢索領域 A 類會議。

NebulaGraph 作為國內唯一的開源圖數據庫廠商參加,並以展商身份在會上發表了《NebulaGraph: a nex t-generation of hyperscale graph database》演講。

以下內容文豪將以第一人稱展開敍述:

今年 SIGMOD'22 在費城 Philadelphia 舉辦,我有幸代表公司參加這次盛會。此次參會,我和學生、教授、廠商多有交流,一方面宣傳了我們的產品,另一方面也獲取了許多寶貴的建議和意見。接下來,我將分享其中一些建議,以及我整體的思考。

圖學習和存儲技術廣受關注

首先是行業新趨勢,本次會議大家關注的熱點主要有兩個。

第一,機器學習的比重進一步增加,尤其圖學習(graph learning)可能成為新的熱點。近年來,越來越多的系統領域的會議會專門開設機器學習的專區,主要是運用一些機器學習的方法來優化系統或者算法。其中,有一個方向最近異軍突起,就是圖學習。簡單來説,圖學習就是在圖上的機器學習。和其他用機器學習解決實際問題類似,圖學習通過 embedding 的方式,從 graph 中提取出特徵向量(feature vector),再用機器學習的方法解決圖中那些困難的問題,包括分類、子圖匹配、鏈接預測(classfication,subgraph matching,link prediction)等。

從會議的傾向和 NSF (National Science Foundation) 的指導來看,這個趨勢還會持續火熱。我們也收到很多學生和教授關於是否支持圖學習的詢問。從圖數據庫供應商角度出發,圖學習是 NebulaGraph 的應用之一。我們不能僅僅滿足於提供圖數據庫核心,還得為上層應用提供庫、接口,甚至優化,來保證上層應用的順利高效運行。從另一個角度出發,如果我們的 NebulaGraph 可以幫助學界在一些領域,比如在圖學習方面有所突破,對我們公司、全行業發展也是大有裨益的。

SIGMOD 大會現場內景

除了機器學習,我認為另一個熱點趨勢就是內存,包括 in-memory database, persistent memory 等。目前非易失性存儲(non volatile memory),或者叫持久性存儲(persistent memory),經過學術界和工業界十多年的共同努力已經越來越成熟。目前針對如何使用持久性存儲的研究也是非常火熱,幾乎所有系統的頂會都有大量相關的文章。

具體到數據庫領域,就包括:如何設計內存數據庫(in-memory database)、如何將持久性存儲(persistent memory) 和 SSD、DRAM 等混合使用,如何解決內存隔離(memory segregation)的問題。NebulaGraph 作為圖數據庫供應商,也應該積極擁抱新硬件帶來的改變,積極探索基於 persistent memory 的存儲系統。

圖的優勢與發展方向

除了新趨勢,我在會議中最大的收穫和思考是關於圖數據庫(GDBMS)和關係型數據庫(RDBMS)的比較。會上有不少人表達「為什麼不基於關係型數據庫來實現 graph datababse」的疑慮。

因為關係型數據庫經過多年優化,確實已經武裝到了牙齒。比如 Peter Boncz 教授(LDBC 創始人之一)在今年早些時候在 EDBT / ICDT 會議上做了個主題演講——《The (Sorry) State of Graph Database Systems 》,提出當前 GDBMS 跟 RDBMS 相比,在計算和存儲層都還有很多地方需要提高,尤其是針對子圖匹配(subgraph matching) 這樣的 AP 查詢。他提出了針對子圖匹配場景的性能基準測試(Benchmark)。在他的實驗環境下,沒有一款圖數據庫軟件在「子圖匹配」場景上的性能能夠接近 Hyper 和 Umbra 這兩款關係型數據庫(見下面圖1)。

GDBMS vs RDBMS

圖 1:在 Subgraph matching 上,GRDMS 不如一些特殊的 RDBMS,具體可看 Slides

這個實驗的設置固然有值得探討的地方,但 Peter 作為 LDBC 的創始人,他的核心目的自然不是貶低圖數據庫,只是想借用子圖匹配——這個圖數據庫優化得還不夠好的一種查詢場景,來鼓勵各個圖數據庫廠商提升自己的產品。

從更廣的圖景來看,我們 NebulaGraph 作為圖數據庫廠商,必須把握圖數據庫和關係型數據庫的區別和優勢:

  • 一是圖查詢,尤其是 GQL 相對於 SQL 的易用性和高效性。
  • 二是易用性,Neo4J 的 CEO,Emil Eifrem 有個非常好的例子:對於一個 AP 系統非常常見的查詢,如果使用 SQL 需要 23 個 SELECT,21 個 WHERE,11 個 JOIN,9 個 UNION,最後形成一個巨長無比的查詢語句(query)。但如果使用圖相關語句,只需要一個 MATCH 和一個 WHERE。對於使用 SQL,很有可能是無法完成工作或者極易出錯,而對於後者使用圖相關語句,則可以省下無數人力物力。

關於性能,除了在關聯關係查詢中,圖數據庫相較於關係型數據庫的天然優勢,還需要在其他圖相關的各種查詢上(不止於上文提到的子圖匹配 subraph matching)取得對於關係型數據庫的優勢。這其實也是 Peter 提出子圖查詢這個檢測基準對於我們的核心啟示。

對底層存儲結構的思考

最後,我們也獲得了不少關於底層存儲的建議。NebulaGraph 目前底層存儲使用的是基於 LSM Tree 的 RocksDB。但 LSM Tree 是否適用於圖數據庫的 workload,尤其是上雲後,是否是性能最好、成本最低的選擇,一直是有爭議的。可能的替代者有:

總之,這次 SIGMOD’22 之旅收穫了許多。期待明年的 SIGMOD。西雅圖見!


謝謝你讀完本文 (///▽///)

要來近距離體驗一把圖數據庫嗎?現在可以用用 NebulaGraph Cloud 來搭建自己的圖數據系統喲,快來節省大量的部署安裝時間來搞定業務吧~ NebulaGraph 阿里雲計算巢現 30 天免費使用中,點擊鏈接來用用圖數據庫吧~

想看源碼的小夥伴可以前往 GitHub 閲讀、使用、(^з^)-☆ star 它 -> GitHub;和其他的 NebulaGraph 用户一起交流圖數據庫技術和應用技能,留下「你的名片」一起玩耍呢~