tinkerpop mysql_图论数据库未来的发展方向?
@Zete 提到了agens graph,個人關注這個項目也有一段時間了,確實非常不錯,基于pg良好的可擴展性和近一年來逐漸成熟的open cypher。這其實反應了圖數據庫多個分支的一個,即基于關系型數據庫構建圖數據庫。微軟的GraphView也是這一派。每年都有一些論文討論這個話題,主要的動機還是關系型數據庫有幾十年的工程積累,非常成熟。比如今年SIGMOD的這篇:All-in-One: Graph Processing in RDBMSs Revisited。
另一派是以neo4j為代表的所謂native圖數據庫,主要特點是查一個點的邊或者邊上的端點時,不需要再走一次B+樹索引,而是直接指針指向下一度的物理地址。它的十字鏈表結構在內存夠大,或者有SSD盤的情況下性能還是不錯的。但是因為編程語言(neo4j是java實現)和工程累積的關系,在內存完全容納的了數據的情況下,性能比pg要差。
在有一派呢,就是以Titan/JanusGraph為代表的使用nosql存儲的分布式圖數據庫。目前社區看到的產品還相當naive的,只是在分布式nosql上封裝了一層邏輯的圖,存儲和查詢嚴重分離,性能提升的空間十分巨大。微軟也有GraphView項目,基于SQL Server封裝,但是目前項目不太活躍。
那么那一派代表未來的趨勢呢?我覺得都不是。
想想圖的本質難題是什么?是數據的高度關聯帶來的嚴重的隨機訪問。所以,傳統的關系型數據庫解決不了這個問題,因為他們仍然是面向磁盤優化,盡可能利用磁盤順序讀寫的優勢。neo4j這種數據結構在數據落到磁盤上的時候,隨機訪問比關系型數據庫多更多,性能衰減想當厲害。那么分布式nosql的路子呢?網絡是瓶頸。完美的最小割圖分區算法是NP難題,而且在數據寫入的情況下還要面臨動態調整的難題。如果使用naive的分區算法,網絡通訊的開銷是想當大的。
所以,個人淺見,只有靠新硬件來解決問題。更廉價的大內存、NVRAM、RDMA高速網絡、隨機讀寫更強的SSD磁盤、有硬件事務支持的CPU等。
總結
以上是生活随笔為你收集整理的tinkerpop mysql_图论数据库未来的发展方向?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pythonsort函数时间复杂度_合并
- 下一篇: 以太坊服务器是什么_今日推荐 | 以太坊