近日,Google開源了圖數(shù)據(jù)庫Cayley。Cayley是受Freebase和Google的Knowledge Graph背后的圖數(shù)據(jù)庫graphd所啟發(fā),由Google工程師Barak Michener開發(fā)的一款開源圖數(shù)據(jù)庫。圖數(shù)據(jù)庫是一種NoSQL數(shù)據(jù)庫,適合處理大量復(fù)雜、互連接、低結(jié)構(gòu)化的數(shù)據(jù)。圖數(shù)據(jù)庫與其他數(shù)據(jù)庫不同,它更擅長描述數(shù)據(jù)之間的關(guān)系,所以被大量用于社交網(wǎng)絡(luò)、推薦系統(tǒng)等專注于構(gòu)建關(guān)系圖譜的系統(tǒng)。
Cayley使用Go語言編寫,創(chuàng)始人Barak在博客中解釋了選擇Go的原因,“Cayley需要支持高速且大并發(fā)的存取,Go看起來是不錯的選擇。基于官方提供的標(biāo)準(zhǔn)包以及社區(qū)開源的包,開發(fā)過程中的一些大的障礙已經(jīng)得以解決,再結(jié)合Go的并發(fā)模式,開發(fā)一個比graphd性能更高的圖數(shù)據(jù)庫成為可能。”
Cayley的目標(biāo)是成為成為開發(fā)者在Linked Data 和圖數(shù)據(jù)(語義網(wǎng)絡(luò)、社交網(wǎng)絡(luò)等)的工具之一。初步性能測試表明,在普通PC硬件和硬盤上,基于LevelDB存儲的Cayley跑1.34億三元組毫無壓力,多跳交叉查詢(比如有X和Y兩位影星同時出演的電影)只需150ms。Cayley的主要特點(diǎn)如下: