版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
內(nèi)存數(shù)據(jù)庫(kù)及技術(shù)選型內(nèi)存數(shù)據(jù)庫(kù)又稱主存數(shù)據(jù)庫(kù)(In-memory或mainmemorydatabase),是一種主要依靠?jī)?nèi)存來(lái)存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫(kù)管理系統(tǒng)。在數(shù)據(jù)庫(kù)技術(shù)中,有一類內(nèi)存優(yōu)化技術(shù),是在傳統(tǒng)的磁盤數(shù)據(jù)庫(kù)中,增加內(nèi)存緩沖池,也就是常說(shuō)的共享內(nèi)存技術(shù),其主要目的是最小化磁盤訪問(wèn)。而內(nèi)存數(shù)據(jù)庫(kù)技術(shù),幾乎把整個(gè)數(shù)據(jù)庫(kù)放進(jìn)了內(nèi)存中,相較于傳統(tǒng)數(shù)據(jù)庫(kù)使用的磁盤讀寫(xiě)機(jī)制,內(nèi)存具備更極致的讀寫(xiě)速度,性能會(huì)比傳統(tǒng)的磁盤數(shù)據(jù)庫(kù)有數(shù)量級(jí)的提升。因此內(nèi)存數(shù)據(jù)庫(kù)通常被用于對(duì)性能要求較高的場(chǎng)景中。1.內(nèi)存技術(shù)的成熟內(nèi)存器件的容量密度在快速上升。最早期的內(nèi)存和今天常見(jiàn)的內(nèi)存條不同,是直接焊接在主板上的內(nèi)存芯片,容量普遍在64KB以下。1982年之后,隨著80286芯片的推出,開(kāi)始出現(xiàn)30線(Pin)256KB的SIMM內(nèi)存條,被認(rèn)為是內(nèi)存領(lǐng)域的開(kāi)山鼻祖;在80年代末,386和486時(shí)代的PC向16位發(fā)展,出現(xiàn)了72線的SIMM內(nèi)存,單條容量可達(dá)512KB-2MB;90年代初,EDODRAM開(kāi)始盛行,單條容量在4MB-16MB;在1995年,計(jì)算機(jī)系統(tǒng)進(jìn)入圖形界面時(shí)代,內(nèi)存技術(shù)也發(fā)生了重要變革,支持64位的SDRAM成為一代經(jīng)典,在性能上有極大提升,容量也達(dá)到了64MB;隨后的十幾年,內(nèi)存容量開(kāi)始穩(wěn)定地遵循摩爾定律翻倍,持續(xù)到2019年,DDR3內(nèi)存的容量已經(jīng)可以達(dá)到16GB。內(nèi)存器件的單位價(jià)格也在逐年快速下降。從1970年代至今,內(nèi)存每兆字節(jié)的價(jià)格下降了近9個(gè)數(shù)量級(jí),根據(jù)2019年最新的統(tǒng)計(jì)數(shù)據(jù),平均花費(fèi)3-5美元就可以購(gòu)買到1GB的內(nèi)存。內(nèi)存容量的持續(xù)上漲以及價(jià)格的下降,使大量數(shù)據(jù)在內(nèi)存中進(jìn)行存儲(chǔ)和操作成為可能。過(guò)去幾十年,計(jì)算機(jī)系統(tǒng)的存儲(chǔ)體系結(jié)構(gòu)被設(shè)計(jì)成如圖2的金字塔形模型。這樣的存儲(chǔ)結(jié)構(gòu)利用局部性原理盡量將熱數(shù)據(jù)存儲(chǔ)在靠近CPU的地方。在傳統(tǒng)模式中,內(nèi)存數(shù)據(jù)庫(kù)的所有數(shù)據(jù)都保存在DRAM介質(zhì)中。雖然DRAM的價(jià)格已經(jīng)大幅下降,但在海量數(shù)據(jù)存儲(chǔ)的需求下,內(nèi)存的成本依然是很大的問(wèn)題;另外由于DRAM屬于易失性介質(zhì),掉電后所有數(shù)據(jù)都會(huì)丟失,需要額外考慮數(shù)據(jù)持久化的方案,會(huì)極大的限制內(nèi)存數(shù)據(jù)庫(kù)的性能和使用場(chǎng)景。-抽失性療儲(chǔ)--抽失性療儲(chǔ)-load/store櫛令-InaidArore措令■非易處性存儲(chǔ)-1灼甜令容魚(yú)圖2存償?shù)慕鹩钏P歪槍?duì)DRAM現(xiàn)存的一些硬件瓶頸,業(yè)界已經(jīng)研發(fā)出了持久型內(nèi)存(PM,PersistentMemory),學(xué)術(shù)名為存儲(chǔ)級(jí)內(nèi)存(SCM,StorageClassMemory),和DRAM一樣,都是安裝在機(jī)器主板的內(nèi)存槽接口中。參考圖2,DDRDRAM及以上的易失性存儲(chǔ)CPU可以通過(guò)load/store指令直接訪問(wèn),而NANDSSD及以下的非易失性存儲(chǔ)CPU無(wú)法直接訪問(wèn),需要先加載到易失性存儲(chǔ)中,可以看出DRAM與SSD之間存在巨大的性能鴻溝,在訪問(wèn)時(shí)延上出現(xiàn)了跳變。而持久型內(nèi)存位于DRAM與SSD之間,以load/store指令的方式訪問(wèn)并支持?jǐn)?shù)據(jù)的持久化,也填補(bǔ)了DRAM與SSD在時(shí)延上存在的鴻溝。相比DRAM,持久型內(nèi)存在性能上處于劣勢(shì),但容量和價(jià)格均占據(jù)優(yōu)勢(shì);相比NANDSSD,持久型內(nèi)存在性能上處于優(yōu)勢(shì),但容量和價(jià)值處于劣勢(shì)。3.內(nèi)存數(shù)據(jù)庫(kù)的發(fā)展歷程內(nèi)存數(shù)據(jù)庫(kù)的發(fā)展主要經(jīng)歷了雛形期、理論成熟期、市場(chǎng)成長(zhǎng)期及高速發(fā)展期四個(gè)階段。4.內(nèi)存數(shù)據(jù)庫(kù)的優(yōu)勢(shì)與挑戰(zhàn)內(nèi)存數(shù)據(jù)庫(kù)在提供高性能讀寫(xiě)能力的同時(shí),也存在由于器件導(dǎo)致的數(shù)據(jù)易失問(wèn)題,需要在應(yīng)用中引起注意。.優(yōu)勢(shì):高性能讀寫(xiě)由于省去了磁盤I/O的開(kāi)銷,在數(shù)據(jù)訪問(wèn)的時(shí)延上內(nèi)存型數(shù)據(jù)庫(kù)可以達(dá)到傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)無(wú)法達(dá)到的微秒級(jí)別,單機(jī)內(nèi)存數(shù)據(jù)庫(kù)的QPS也可以達(dá)到10萬(wàn)以上,配合上用戶態(tài)協(xié)議棧、內(nèi)存大頁(yè)等技術(shù)之后,更是可以輕松達(dá)到幾十萬(wàn)QPS的量級(jí),這是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)很難做到的。.挑戰(zhàn):內(nèi)存數(shù)據(jù)易失內(nèi)存數(shù)據(jù)庫(kù)當(dāng)前主要使用DRAM作為存儲(chǔ)介質(zhì),DRAM屬于掉電易失性介質(zhì),為了保證數(shù)據(jù)的可靠性,內(nèi)存數(shù)據(jù)庫(kù)需要考慮持久化方案?,F(xiàn)階段主流的鍵值對(duì)內(nèi)存數(shù)據(jù)庫(kù)對(duì)于持久化的支持較為薄弱,持久化性能也不如傳統(tǒng)數(shù)據(jù)庫(kù)。內(nèi)存型數(shù)據(jù)庫(kù)中克服掉電易失性來(lái)保障數(shù)據(jù)可靠性的方法主要是以下兩種:一是每次操作都進(jìn)行數(shù)據(jù)持久化,這種方式勢(shì)必會(huì)大幅降低內(nèi)存數(shù)據(jù)庫(kù)的性能;二是按照一定的策略進(jìn)行操作的持久化,這樣可以達(dá)到一定程度的優(yōu)化和緩解,但極端情況下數(shù)據(jù)丟失的情況仍不可避免。現(xiàn)階段新型的非易失性存儲(chǔ)器件已經(jīng)發(fā)布但尚未規(guī)?;逃谩O嘈沤鉀Q了存儲(chǔ)易失性的難題后,內(nèi)存數(shù)據(jù)庫(kù)會(huì)具備更多的應(yīng)用。內(nèi)存數(shù)據(jù)庫(kù)的分類主流的內(nèi)存數(shù)據(jù)庫(kù)可分為鍵值對(duì)內(nèi)存數(shù)據(jù)庫(kù)、關(guān)系型內(nèi)存數(shù)據(jù)庫(kù)以及其他數(shù)據(jù)庫(kù),用戶可根據(jù)自身的業(yè)務(wù)需求選擇適合自己的內(nèi)存數(shù)據(jù)庫(kù)類型。.鍵值對(duì)內(nèi)存數(shù)據(jù)庫(kù)鍵值對(duì)(KV,Key-Value)內(nèi)存數(shù)據(jù)庫(kù)指的是一種以鍵值對(duì)為主要存儲(chǔ)結(jié)構(gòu)的內(nèi)存數(shù)據(jù)庫(kù)。鍵值對(duì)內(nèi)存數(shù)據(jù)庫(kù)通常按鍵進(jìn)行數(shù)據(jù)存取操作,值通常支持各種數(shù)據(jù)類型,使用鍵值存儲(chǔ)的數(shù)據(jù)模型相對(duì)簡(jiǎn)單,更適合要求性能高、計(jì)算簡(jiǎn)單的一些場(chǎng)景。鍵值對(duì)內(nèi)存數(shù)據(jù)庫(kù)的典型代表為Redis、Memcached和Aerospike。.關(guān)系型內(nèi)存數(shù)據(jù)庫(kù)關(guān)系型內(nèi)存數(shù)據(jù)庫(kù)是一種基于數(shù)據(jù)關(guān)系模型的內(nèi)存數(shù)據(jù)庫(kù)。關(guān)系型內(nèi)存數(shù)據(jù)庫(kù)將傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)表搬到內(nèi)存中,支持通過(guò)SQL語(yǔ)句的方式實(shí)現(xiàn)對(duì)內(nèi)存數(shù)據(jù)的訪問(wèn),在實(shí)現(xiàn)復(fù)雜分析功能的同時(shí),提升數(shù)據(jù)訪問(wèn)速度。關(guān)系型內(nèi)存數(shù)據(jù)庫(kù)的典型代表軟件為OracleTimesTen、SAPHANA、MemSQL和SQLite。.其他類型的內(nèi)存數(shù)據(jù)庫(kù)除鍵值對(duì)內(nèi)存數(shù)據(jù)庫(kù)、關(guān)系型內(nèi)存數(shù)據(jù)庫(kù)之外,其他比較小眾的內(nèi)存數(shù)據(jù)庫(kù)稱為其他內(nèi)存數(shù)據(jù)庫(kù),比如圖內(nèi)存數(shù)據(jù)庫(kù)RedisGraph等。內(nèi)存數(shù)據(jù)庫(kù)產(chǎn)品現(xiàn)狀DB-EnginesRanking是公認(rèn)較權(quán)威的數(shù)據(jù)庫(kù)排行,我們選取了其中最為活躍的10款典型內(nèi)存數(shù)據(jù)庫(kù)進(jìn)行對(duì)比。開(kāi)源產(chǎn)品中,Redis和Memcached是最受歡迎的兩款鍵值對(duì)內(nèi)存數(shù)據(jù)庫(kù);而SQLite是最受歡迎的關(guān)系型內(nèi)存數(shù)據(jù)庫(kù)。表中大部分的關(guān)系型內(nèi)存數(shù)據(jù)庫(kù)為商用數(shù)據(jù)庫(kù),其中熱度最高的是SAPHANA。早在1995年就發(fā)布第一版的OracleTimesTen仍然在榜上活躍;2014年新發(fā)布ApacheIgnite兼容鍵值和關(guān)系型數(shù)據(jù)結(jié)構(gòu),熱度正穩(wěn)步攀升。事務(wù)支持方面,大部分的關(guān)系型內(nèi)存數(shù)據(jù)庫(kù)稱可以支持ACID,但都需要在性能上作出妥協(xié)。10款典型內(nèi)存數(shù)據(jù)庫(kù)対比建摒庫(kù)窖麴數(shù)膽結(jié)構(gòu) 起始年份商用/開(kāi)源(License}ACID支持悄探Redifi2009年開(kāi)源(BSD)不支持Memcached鍵値對(duì)2003年開(kāi)源(BSD}不文持Aeruspikti鍵惜對(duì)2012年開(kāi)源(AGPL)只支持原子性ApacheIgnite雛怛?qū)?關(guān)系型2014年開(kāi)源(Apache2.0)主持SAPHANA關(guān)系型2010年商崔主持OracleTirnssTen關(guān)系型1995年*支持VoltDE關(guān)系型2010年商用/開(kāi)源(GPL)支持MemSQL關(guān)乘型2013年商用只文持隔離性SQLile關(guān)系型2000年開(kāi)源(Publicdomain)支持e>lrem2CE關(guān)系型2001年商用支持內(nèi)存數(shù)據(jù)庫(kù)選型建議技術(shù)服務(wù)于業(yè)務(wù),內(nèi)存數(shù)據(jù)庫(kù)的選型應(yīng)首先遵循業(yè)務(wù)場(chǎng)景的需求業(yè)務(wù)特性決定了數(shù)據(jù)的應(yīng)用特性,包括數(shù)據(jù)量、并發(fā)度、讀寫(xiě)特性、一致性、響應(yīng)時(shí)間、操作復(fù)雜度、業(yè)務(wù)連續(xù)性等要求,對(duì)應(yīng)數(shù)據(jù)庫(kù)的一致性、容錯(cuò)性、擴(kuò)展性、安全性等技術(shù)要求。在做內(nèi)存數(shù)據(jù)庫(kù)的選型前,建議先梳理業(yè)務(wù)需求并進(jìn)行量化;再將核心數(shù)據(jù)應(yīng)用特性映射成數(shù)據(jù)庫(kù)技術(shù)要求;最后按篩選出的技術(shù)要求進(jìn)行選型。1).技術(shù)因素按照技術(shù)要求進(jìn)行內(nèi)存數(shù)據(jù)庫(kù)選型時(shí),可主要考察業(yè)務(wù)的性能、致性要求和SQL兼容性三個(gè)因素。業(yè)務(wù)是否有很高的性能要求?一般有高并發(fā)、低時(shí)延讀寫(xiě)要求的業(yè)務(wù),如游戲?qū)崟r(shí)排行、直播粉絲關(guān)注等,建議選擇內(nèi)存數(shù)據(jù)庫(kù)。業(yè)務(wù)數(shù)據(jù)是否要求強(qiáng)一致性?如果業(yè)務(wù)對(duì)數(shù)據(jù)的可靠性和一致性要求較高、需要ACID級(jí)別的事務(wù)支持,則建議使用MySQL等傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)。但需要注意的是,強(qiáng)一致性的要求會(huì)對(duì)數(shù)據(jù)庫(kù)的性能造成一定的影響;如果需要兼具高性能和強(qiáng)一致性,則需要在應(yīng)用架構(gòu)層面進(jìn)行優(yōu)化,單靠數(shù)據(jù)庫(kù)的能力還無(wú)法實(shí)現(xiàn)。數(shù)據(jù)處理是否要求SQL兼容性?在高性能要求的場(chǎng)景下,業(yè)務(wù)中如果數(shù)據(jù)結(jié)構(gòu)固定、有復(fù)雜的關(guān)聯(lián)計(jì)算要求,或是需要SQL語(yǔ)法支持的情況,建議使用關(guān)系型內(nèi)存數(shù)據(jù)庫(kù);對(duì)于數(shù)據(jù)結(jié)構(gòu)多變、擴(kuò)展性要求高、數(shù)據(jù)模型和操作簡(jiǎn)單的場(chǎng)景,建議使用鍵值對(duì)內(nèi)存數(shù)據(jù)庫(kù)。除了這三條考察指標(biāo),還可以結(jié)合數(shù)據(jù)容量、成本、擴(kuò)展性、可維護(hù)性等需求進(jìn)行綜合考量。2).非技術(shù)因素上述選型方法主要考量的是技術(shù)因素,除此以外還可以結(jié)合實(shí)際情況,引入一些其他維度的考量,進(jìn)行綜合
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024股權(quán)抵押借款合同范本格式
- 2024商品買賣合同范本
- 2024年度甲方聘請(qǐng)乙方進(jìn)行市場(chǎng)推廣服務(wù)的合同
- 工廠用工合同協(xié)議書(shū)(2024年)
- 2024年建筑勞務(wù)分包主體結(jié)構(gòu)合同
- 個(gè)人質(zhì)押擔(dān)保借款合同模板
- 2024年度金融服務(wù)與投資咨詢合同
- 標(biāo)準(zhǔn)版工程居間合同格式
- 合法勞務(wù)施工協(xié)議書(shū)樣式
- 精美施工合同模板
- 公益廣告廣告策劃書(shū)
- 特種設(shè)備作業(yè)人員資格復(fù)審申請(qǐng)表
- T∕ZS 0237-2021 托育機(jī)構(gòu)內(nèi)部管理規(guī)范
- 喉炎并喉梗阻護(hù)理查房課件
- DBJ50∕T-346-2020 無(wú)障礙設(shè)計(jì)標(biāo)準(zhǔn)
- 高中信息技術(shù) 必修1 數(shù)據(jù)的分析(課件)
- 校本課程評(píng)價(jià)表
- 紅色經(jīng)典朗誦稿3-5分鐘18篇
- 高中學(xué)生創(chuàng)新思維能力現(xiàn)狀調(diào)查問(wèn)卷
- 洞口封堵工程(混凝土樓板)施工方案
- 臨時(shí)便道施工方案47107
評(píng)論
0/150
提交評(píng)論