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