日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

nosql非关系型数据库_从Datomic出发,革命性的非NoSQL数据库

發(fā)布時(shí)間:2023/12/3 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nosql非关系型数据库_从Datomic出发,革命性的非NoSQL数据库 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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)

  • Datomic是位于另一個(gè)數(shù)據(jù)庫(kù)(或更確切地說(shuō)是存儲(chǔ))之上的數(shù)據(jù)庫(kù)–內(nèi)存中的文件系統(tǒng),傳統(tǒng)的RDBMS,Amazon Dynamo。
  • 您不將查詢發(fā)送到服務(wù)器并獲取結(jié)果。 相反,您取回了執(zhí)行查詢并在本地運(yùn)行查詢以及所有后續(xù)查詢所需的所有數(shù)據(jù)。 因此,“聯(lián)接”非常便宜,您可以做很多其他不可能的事情(組合來(lái)自多個(gè)數(shù)據(jù)庫(kù)和本地?cái)?shù)據(jù)結(jié)構(gòu)的數(shù)據(jù),在它們上運(yùn)行任何代碼,…)。 每個(gè)使用Datomic(即“對(duì)等”)的應(yīng)用程序都將根據(jù)其獨(dú)特的需求和使用模式,將所需的數(shù)據(jù)與自身緊密聯(lián)系在一起。
  • 所有寫(xiě)入都通過(guò)一個(gè)稱為T(mén)ransactor的組件進(jìn)行,該組件本質(zhì)上將寫(xiě)入序列化 ,從而確保ACID 。 聽(tīng)起來(lái)可能是瓶頸,但考慮到設(shè)計(jì)和典型的應(yīng)用需求,它并不是最實(shí)用的目的[1] 。 (據(jù)報(bào)道,Datomic可以處理世界上所有信用卡的所有交易。在Kurt Zimmer的Relevance Podcast中收聽(tīng)Room Key的大量寫(xiě)入操作(Podcast Episode 033) 。)
  • Datomic的工作方式與Git等版本控制系統(tǒng)非常相似。 它永遠(yuǎn)不會(huì)覆蓋數(shù)據(jù),也沒(méi)有更新。 您只需將數(shù)據(jù)標(biāo)記為無(wú)效,然后添加新數(shù)據(jù)即可生成新版本的數(shù)據(jù)庫(kù)(請(qǐng)考慮git hash / svn修訂版號(hào))。 然后,您可以查詢數(shù)據(jù)庫(kù)的最新?tīng)顟B(tài)或特定版本的狀態(tài)。 (當(dāng)然,無(wú)論何時(shí)向數(shù)據(jù)庫(kù)添加事實(shí),都不會(huì)復(fù)制整個(gè)數(shù)據(jù)庫(kù)。Datomic既聰明又高效。)
  • 它不是單個(gè)的整體服務(wù)器,存儲(chǔ),事務(wù)處理程序和對(duì)等點(diǎn)在物理上是分開(kāi)的。
  • 是什么使這成為可能?

    • 網(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ū) 。

    參考資料: The Holy Java博客上的JCG合作伙伴 Jakub Holy 撰寫(xiě)的Datomic,《革命性的No-NoSQL數(shù)據(jù)庫(kù)》的意義 。

    翻譯自: 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)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。