從全球頂級數據庫大會 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: https://www.betrfs.org/
- LiveGraph:https://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 實現一個推薦系統
- 如何輕鬆做數據治理?開源技術棧告訴你答案
- 圖算法、圖數據庫在風控場景的應用