nosql非关系型数据库_从Datomic出发,革命性的非NoSQL数据库
nosql非關(guān)系型數(shù)據(jù)庫(kù)
我終于設(shè)法了解了當(dāng)今最不尋常的數(shù)據(jù)庫(kù)之一,Datomic,并希望與您分享。 感謝Stuart Halloway和他的工作室!
為什么?!?
我們很快就會(huì)看到,Datomic與傳統(tǒng)的RDBMS數(shù)據(jù)庫(kù)以及各種NoSQL數(shù)據(jù)庫(kù)有很大的不同。 它甚至不是數(shù)據(jù)庫(kù)-它是數(shù)據(jù)庫(kù)之上的數(shù)據(jù)庫(kù)。 直到現(xiàn)在我都無(wú)法解決這個(gè)問(wèn)題。 理解Datomic及其獨(dú)特設(shè)計(jì)和優(yōu)勢(shì)的關(guān)鍵實(shí)際上很簡(jiǎn)單。
主流數(shù)據(jù)庫(kù)(和語(yǔ)言)是圍繞1970年代的以下約束設(shè)計(jì)的:
- 內(nèi)存很貴
- 存儲(chǔ)很貴
- 有必要使用專用的昂貴機(jī)器
Datomic本質(zhì)上是對(duì)如果沒(méi)有這些約束的話我們應(yīng)該設(shè)計(jì)什么數(shù)據(jù)庫(kù)的探索。 我們將選擇什么樣的設(shè)計(jì)來(lái)?yè)碛星д鬃止?jié)的RAM,具有與帶寬和速度相匹配的網(wǎng)絡(luò),并且具有超越硬盤(pán)訪問(wèn)的能力,以及一時(shí)興起地殺死服務(wù)器的能力。
但是Datomic并不是一個(gè)學(xué)術(shù)項(xiàng)目。 這是務(wù)實(shí)的,它想適應(yīng)我們現(xiàn)有的環(huán)境,并讓我們現(xiàn)在就可以輕松開(kāi)始使用其未來(lái)功能。 而且它不像看起來(lái)那樣新鮮和綠色。 據(jù)報(bào)道,Clojure和Datomic背后的主要思想家Rich Hickey已經(jīng)考慮了這兩個(gè)項(xiàng)目很多年了,而且設(shè)計(jì)也經(jīng)過(guò)了深思熟慮。
Datomic的怪異架構(gòu)
是什么使這成為可能?
- 網(wǎng)絡(luò)訪問(wèn)速度快于磁盤(pán)訪問(wèn)=>可以通過(guò)網(wǎng)絡(luò)獲取所有數(shù)據(jù)
- 大量?jī)?nèi)存=>可以根據(jù)其實(shí)際需求在每個(gè)對(duì)等體上存儲(chǔ)大量的子集
- 存儲(chǔ)量巨大且價(jià)格便宜=>我們可以輕松存儲(chǔ)歷史數(shù)據(jù)
- 具有在現(xiàn)代FP語(yǔ)言中使用的高效,不變,“持久”數(shù)據(jù)結(jié)構(gòu)的經(jīng)驗(yàn)=>廉價(jià)地創(chuàng)建新的“數(shù)據(jù)庫(kù)值”
Datomic的獨(dú)特價(jià)值主張和能力
現(xiàn)在,我們已經(jīng)了解并希望了解Datomic的獨(dú)特設(shè)計(jì)。 但是它給我們帶來(lái)了什么,與其他數(shù)據(jù)庫(kù)有什么區(qū)別?
該體系結(jié)構(gòu)以及其他一些設(shè)計(jì)決策提供了以下關(guān)鍵特征:
- 可編程性–數(shù)據(jù),架構(gòu),查詢輸入/輸出,事務(wù)元數(shù)據(jù)都是對(duì)等點(diǎn)上完全可用的基本數(shù)據(jù)結(jié)構(gòu),因此可以以以前無(wú)法想象的強(qiáng)大方式進(jìn)行組合和處理
- 持久性/問(wèn)責(zé)制–您永遠(yuǎn)不會(huì)丟失歷史記錄,可以使用有關(guān)誰(shuí)/為什么等的元數(shù)據(jù)來(lái)注釋事務(wù),支持發(fā)現(xiàn)事物的狀態(tài),事物如何變化,進(jìn)行假設(shè)分析
- 彈性可伸縮性–因?yàn)楹芏嘭?fù)載已經(jīng)被推到了對(duì)等端
- 靈活性–沒(méi)有嚴(yán)格的架構(gòu),易于根據(jù)每個(gè)對(duì)等方的獨(dú)特需求進(jìn)行導(dǎo)航,合并和緩存數(shù)據(jù),并通過(guò)數(shù)據(jù)功能進(jìn)行擴(kuò)展
結(jié)束語(yǔ)
Datomic具有與關(guān)系數(shù)據(jù)庫(kù)(尤其是ACID)相似的目標(biāo),并且可以在類似的用例中使用。 從性能角度來(lái)看,如果寫(xiě)入比讀取更重要,或者您確實(shí)需要每秒連續(xù)寫(xiě)入大量數(shù)據(jù),或者您的行數(shù)超過(guò)數(shù)十億,那么您可能更喜歡另一種解決方案。 得益于針對(duì)重負(fù)載安裝的設(shè)計(jì)和建議的體系結(jié)構(gòu),即在存儲(chǔ)器前面安裝了memcached,后端的性能并不那么重要(因?yàn)閷?duì)等方擁有本地所需的數(shù)據(jù)或從memcached獲取數(shù)據(jù)),因此應(yīng)該根據(jù)使用相關(guān)的特征選擇更多。
摘要
Datomic的設(shè)計(jì)–在本地獲取數(shù)據(jù)和運(yùn)行查詢的對(duì)等點(diǎn),單個(gè)寫(xiě)入?yún)f(xié)調(diào)器(事務(wù)處理器),基于現(xiàn)有數(shù)據(jù)庫(kù)/存儲(chǔ)工具(并保留所有歷史記錄)的方法對(duì)我來(lái)說(shuō)似乎很奇怪,可能對(duì)我來(lái)說(shuō)效率很低,直到我意識(shí)到傳統(tǒng)的數(shù)據(jù)庫(kù)是圍繞不再存在的約束設(shè)計(jì)的。 Datomic現(xiàn)在對(duì)我來(lái)說(shuō)很有意義,并且似乎是一種具有令人著迷的功能和巨大潛力的工具。 希望您現(xiàn)在也能看到。
我遺漏了一些有趣的主題,例如可以在Datomic中存儲(chǔ)哪些數(shù)據(jù)結(jié)構(gòu)以及所使用的數(shù)據(jù)模型和查詢模型。 要了解有關(guān)Datomic的更多信息,請(qǐng)?jiān)L問(wèn)5歲 兒童Datomic和Datomic的主頁(yè) 。
獎(jiǎng)勵(lì)鏈接
- Datomic中的樂(lè)觀和悲觀鎖定的數(shù)據(jù)功能 (論壇答案)
- HighScalability.com:VoltDB消除了六個(gè)SQL城市神話,并在過(guò)程中提供了Internet規(guī)模的OLTP – VoltDB的體系結(jié)構(gòu)描述,與Datomic有一些共同點(diǎn)(單線程寫(xiě)入,作為事務(wù)單位的“存儲(chǔ)過(guò)程”等) )
- VoltDB – Mike Stonebraker令人難以置信的可伸縮性,SQL,ACID數(shù)據(jù)庫(kù),它也打破了70年代的約束,并利用了巨大的RAM,單線程訪問(wèn)等功能。
[1] Harizopoulos,S.,Abadi,DJ,Madden,S.,&Stonebraker,M.(2008年6月)。 OLTP穿過(guò)窺視鏡,以及我們?cè)谀抢锇l(fā)現(xiàn)的東西 。 在2008年ACM SIGMOD國(guó)際數(shù)據(jù)管理會(huì)議論文集 (第981-992頁(yè))中。 ACM。 –本文表明,傳統(tǒng)的RDBMS在鎖定和閂鎖上花費(fèi)了將近30%的時(shí)間,而在VoltDB中也可以通過(guò)單線程訪問(wèn)消除這種情況。 另請(qǐng)參見(jiàn)VoltDB白皮書(shū) 。
翻譯自: https://www.javacodegeeks.com/2013/06/making-sense-out-of-datomic-the-revolutionary-non-nosql-database.html
nosql非關(guān)系型數(shù)據(jù)庫(kù)
總結(jié)
以上是生活随笔為你收集整理的nosql非关系型数据库_从Datomic出发,革命性的非NoSQL数据库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux ffmpeg安装(linux
- 下一篇: PostgreSQL开放自由