NoSQL分布式数据库的独家见解- Adam Fowler
摘要:
原創(chuàng)翻譯, 原文作者:Adam Fowler, 轉(zhuǎn)載自:https://adamfowler.org/2017/06/27/nosql-review-arangodb-3-2-beta/
我查看了ArangoDB混合文檔和圖形存儲(chǔ)的最新測(cè)試版...
ArangoDB是一個(gè)混合或多模型的NoSQL文檔和圖形存儲(chǔ)。這為項(xiàng)目開(kāi)發(fā)提供了很大的靈活性和力量。自從他們開(kāi)始以來(lái),我一直在關(guān)注ArangoDB,如今已有3年多,所以現(xiàn)在我們來(lái)一起看看有什么有趣的更新:
有什么更新?
最大的變化是使用Facebook的RocksDB鍵值存儲(chǔ)作為存儲(chǔ)引擎(我將在以后的文章中分別回顧RocksDB)。這是一個(gè)巨大的變化,需要在應(yīng)用程序中進(jìn)行負(fù)載測(cè)試,因?yàn)橐恢滦院玩i定功能與以前的mmfiles方法不同。
此外,MongoDB客戶在將WiredTiger引入存儲(chǔ)引擎時(shí)發(fā)現(xiàn),人們將始終想要測(cè)試和重新測(cè)試新的存儲(chǔ)層,以尋找意外的回歸和性能問(wèn)題。
但是這確實(shí)是一個(gè)積極的更新,允許文檔級(jí)鎖定,并可以防止寫(xiě)入阻塞讀取,反之亦然。這將大大提高在高寫(xiě)入和讀取負(fù)載下的性能。
對(duì)Pregel圖形處理模型的支持將是開(kāi)發(fā)人員的福音。想像這樣一個(gè)有效的Map / Reduce版本,用于跨整個(gè)群集數(shù)據(jù)傳播的圖形算法。有趣的是,您可以選擇單節(jié)點(diǎn)或集群執(zhí)行。某些圖形算法需要在單個(gè)機(jī)器上運(yùn)行所有數(shù)據(jù),所以使圖形愛(ài)好者擁有自由選擇的快樂(lè)!
企業(yè)版也受益于LDAP安全支持,閑時(shí)加密。這是許多敏感型企業(yè)客戶,如銀行和政府的福音。
Satellite Collections(僅限企業(yè)版)是一個(gè)很好的新功能,您可以指導(dǎo)引擎使用副本進(jìn)行處理,從而無(wú)需網(wǎng)絡(luò)跳轉(zhuǎn)來(lái)在另一個(gè)節(jié)點(diǎn)上查找密鑰收集數(shù)據(jù)。這可能聽(tīng)起來(lái)不怎么樣,但是我可以通過(guò)在NoSQL數(shù)據(jù)庫(kù)上運(yùn)行分布式處理算法來(lái)告訴你,這將有助于在很大程度上調(diào)整大型文檔處理算法。
我喜歡ArangoDB 什么?
分布式圖形存儲(chǔ)中的一個(gè)大問(wèn)題是在群集中的多個(gè)服務(wù)器上圖形算法的高效處理。為了使用商業(yè)服務(wù)器而不是昂貴的大功率服務(wù)器,您需要將數(shù)據(jù)傳播出去。當(dāng)然,對(duì)于遵循節(jié)點(diǎn)之間的路徑的圖算法,當(dāng)您遍歷該圖時(shí),會(huì)引入滯后。
我很高興看到ArangoDB在這個(gè)關(guān)鍵問(wèn)題上花了大量的時(shí)間。如果他們可以在這個(gè)版本中用Pregel解決這個(gè)問(wèn)題,那么他們將會(huì)超越其他幾個(gè)競(jìng)爭(zhēng)對(duì)手。
例如,最近添加的SmartGraphs功能(僅限企業(yè)版)。這基于已知屬性管理圖上的節(jié)點(diǎn)的分片。考慮一個(gè)社交圖 - 大多數(shù)人在同一個(gè)國(guó)家有連接(除非你是我,并且寫(xiě)IT!) - 所以根據(jù)用戶的國(guó)家劃分一個(gè)圖表是很好的,通過(guò)應(yīng)用此屬性,可以最大限度地減少大多數(shù)查詢的網(wǎng)絡(luò)跳數(shù)。
結(jié)合上面提到的SatelliteCollections(僅限企業(yè)版),您可以調(diào)整數(shù)據(jù)存儲(chǔ),以確保快速圖形查詢,即使圖形被分片 - 使用我的國(guó)際,噴氣式設(shè)置,twitter連接來(lái)處理像我這樣的棘手情況。在與ArangoDB交談后,他們認(rèn)為這些功能的組合對(duì)于特定的IoT用例將非常有用。如果您發(fā)現(xiàn)該組合有用,請(qǐng)為此文章添加評(píng)論 - 我很樂(lè)意聽(tīng)到不同的聲音!
當(dāng)我第一次寫(xiě)關(guān)于ArangoDB在NoSQL 2016的狀態(tài),我評(píng)估它還不完全符合ACID。這是由于滯后的最終一致的副本。由于其他主服務(wù)器上的碎片被標(biāo)記為“追隨者”,因此已經(jīng)解決了這一點(diǎn)。對(duì)主要和主要追隨者的更新是同步的,允許數(shù)據(jù)的高可用性,同時(shí)確保符合ACID。
這是數(shù)據(jù)場(chǎng)景關(guān)鍵任務(wù)的重中之重,當(dāng)數(shù)據(jù)庫(kù)告訴您保存數(shù)據(jù)時(shí),您需要確保數(shù)據(jù)安全地位于光盤(pán)上。我只能再次強(qiáng)調(diào),我認(rèn)為符合ACID對(duì)于具有關(guān)鍵任務(wù)應(yīng)用程序需求的企業(yè)客戶至關(guān)重要。
我也喜歡ArangoDB的免費(fèi)版本使用真正的開(kāi)源許可證 - ?Apache 2.0許可證。與其他供應(yīng)商使用的AGPL v3不同,該許可證并不限制想要使用該軟件的組織,也可以將其定制為生產(chǎn)商業(yè)應(yīng)用程序。
我認(rèn)為這可能源于我個(gè)人對(duì)多模型文檔和圖形庫(kù)的熱愛(ài),ArangoDB的工程團(tuán)隊(duì)真的做的很好。而且跟我交談的每個(gè)人似乎都很友善。即使是他們的President也親自花了時(shí)間幫我收集關(guān)于這篇文章的信息!
ArangoDB的工程團(tuán)隊(duì)也及時(shí)考慮到客戶的問(wèn)題和用途,并根據(jù)此添加產(chǎn)品新功能,新功能都是參考現(xiàn)實(shí)用例而來(lái)。
做的不好的方面?
ArangoDB作為鍵值存儲(chǔ)用例與?Redis相比似乎還受局限。
話雖如此,但這是一個(gè)很小的困擾,大多數(shù)人會(huì)使用ArangoDB的文檔和圖形庫(kù)功能以及AQL查詢語(yǔ)言,因?yàn)樗鼈優(yōu)榇蠖鄶?shù)用例提供了豐富的功能。
使用場(chǎng)景有哪些?
牛津大學(xué)似乎使用ArangoDB來(lái)減少醫(yī)院出勤和醫(yī)療費(fèi)用,并提高測(cè)試結(jié)果。其開(kāi)發(fā)了一項(xiàng)手機(jī)應(yīng)用程序,通過(guò)在ArangoDB 中存儲(chǔ)數(shù)據(jù)的Node.js應(yīng)用程序,使用手指式血壓計(jì)將患者的信息發(fā)回NHS信托。這當(dāng)然意味著你可以有效地跟蹤病人,并智慧地決定何時(shí)要求他們進(jìn)入醫(yī)院,減少NHS的負(fù)擔(dān)。這是一個(gè)很好的小例子,但很容易復(fù)制到其他問(wèn)題領(lǐng)域。
更多場(chǎng)景用例
Find?ArangoDB on Github
轉(zhuǎn)載于:https://www.cnblogs.com/germanwifi/p/7269372.html
總結(jié)
以上是生活随笔為你收集整理的NoSQL分布式数据库的独家见解- Adam Fowler的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Storm架构和编程模型总结
- 下一篇: Lucene6去掉了Filter但是可以