從全球頂級資料庫大會 SIGMOD 看資料庫發展趨勢
本文來自 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 可以幫助學界在一些領域,比如在圖學習方面有所突破,對我們公司、全行業發展也是大有裨益的。
除了機器學習,我認為另一個熱點趨勢就是記憶體,包括 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)。
圖 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,尤其是上雲後,是否是效能最好、成本最低的選擇,一直是有爭議的。可能的替代者有:
- Bε-tree File System,betrFS: http://www.betrfs.org/
- LiveGraph:http://marcoserafini.github.io/papers/LiveGraph.pdf
- B+ Tree: 在這方面,後續我們也會持續跟進研究
總之,這次 SIGMOD’22 之旅收穫了許多。期待明年的 SIGMOD。西雅圖見!
謝謝你讀完本文 (///▽///)
要來近距離體驗一把圖資料庫嗎?現在可以用用 NebulaGraph Cloud 來搭建自己的圖資料系統喲,快來節省大量的部署安裝時間來搞定業務吧~ NebulaGraph 阿里雲端計算巢現 30 天免費使用中,點選連結來用用圖資料庫吧~
想看原始碼的小夥伴可以前往 GitHub 閱讀、使用、(^з^)-☆ star 它 -> GitHub;和其他的 NebulaGraph 使用者一起交流圖資料庫技術和應用技能,留下「你的名片」一起玩耍呢~
- 圖資料庫在中國移動金融風控的落地應用
- 記一次 rr 和硬體斷點解決記憶體踩踏問題
- 用圖技術搞定附近好友、時空交集等 7 個典型社交網路應用
- 用圖技術搞定附近好友、時空交集等 7 個典型社交網路應用
- 圖資料庫中的“分散式”和“資料切分”(切圖)
- 揭祕視覺化圖探索工具 NebulaGraph Explore 是如何實現圖計算的
- 連線微信群、Slack 和 GitHub:社群開放溝通的基礎設施搭建
- 圖資料庫認證考試 NGCP 錯題解析 vol.02:這 10 道題竟無一人全部答對
- 如何判斷多賬號是同一個人?用圖技術搞定 ID Mapping
- 複雜場景下圖資料庫的 OLTP 與 OLAP 融合實踐
- 如何運維多叢集資料庫?58 同城 NebulaGraph Database 運維實踐
- 有了 ETL 資料神器 dbt,表資料秒變 NebulaGraph 中的圖資料
- 基於圖的下一代入侵檢測系統
- 從實測出發,掌握 NebulaGraph Exchange 效能最大化的祕密
- 讀 NebulaGraph原始碼 | 查詢語句 LOOKUP 的一生
- 當雲原生閘道器遇上圖資料庫,NebulaGraph 的 APISIX 最佳實踐
- 從全球頂級資料庫大會 SIGMOD 看資料庫發展趨勢
- 「實操」結合圖資料庫、圖演算法、機器學習、GNN 實現一個推薦系統
- 如何輕鬆做資料治理?開源技術棧告訴你答案
- 圖演算法、圖資料庫在風控場景的應用