內存數據庫及技術選型_第1頁
內存數據庫及技術選型_第2頁
內存數據庫及技術選型_第3頁
內存數據庫及技術選型_第4頁
內存數據庫及技術選型_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

內存數據庫及技術選型內存數據庫又稱主存數據庫(In-memory或mainmemorydatabase),是一種主要依靠內存來存儲數據的數據庫管理系統。在數據庫技術中,有一類內存優化技術,是在傳統的磁盤數據庫中,增加內存緩沖池,也就是常說的共享內存技術,其主要目的是最小化磁盤訪問。而內存數據庫技術,幾乎把整個數據庫放進了內存中,相較于傳統數據庫使用的磁盤讀寫機制,內存具備更極致的讀寫速度,性能會比傳統的磁盤數據庫有數量級的提升。因此內存數據庫通常被用于對性能要求較高的場景中。1.內存技術的成熟內存器件的容量密度在快速上升。最早期的內存和今天常見的內存條不同,是直接焊接在主板上的內存芯片,容量普遍在64KB以下。1982年之后,隨著80286芯片的推出,開始出現30線(Pin)256KB的SIMM內存條,被認為是內存領域的開山鼻祖;在80年代末,386和486時代的PC向16位發展,出現了72線的SIMM內存,單條容量可達512KB-2MB;90年代初,EDODRAM開始盛行,單條容量在4MB-16MB;在1995年,計算機系統進入圖形界面時代,內存技術也發生了重要變革,支持64位的SDRAM成為一代經典,在性能上有極大提升,容量也達到了64MB;隨后的十幾年,內存容量開始穩定地遵循摩爾定律翻倍,持續到2019年,DDR3內存的容量已經可以達到16GB。內存器件的單位價格也在逐年快速下降。從1970年代至今,內存每兆字節的價格下降了近9個數量級,根據2019年最新的統計數據,平均花費3-5美元就可以購買到1GB的內存。內存容量的持續上漲以及價格的下降,使大量數據在內存中進行存儲和操作成為可能。過去幾十年,計算機系統的存儲體系結構被設計成如圖2的金字塔形模型。這樣的存儲結構利用局部性原理盡量將熱數據存儲在靠近CPU的地方。在傳統模式中,內存數據庫的所有數據都保存在DRAM介質中。雖然DRAM的價格已經大幅下降,但在海量數據存儲的需求下,內存的成本依然是很大的問題;另外由于DRAM屬于易失性介質,掉電后所有數據都會丟失,需要額外考慮數據持久化的方案,會極大的限制內存數據庫的性能和使用場景。-抽失性療儲--抽失性療儲-load/store櫛令-InaidArore措令■非易處性存儲-1灼甜令容魚圖2存償的金宇塔模型針對DRAM現存的一些硬件瓶頸,業界已經研發出了持久型內存(PM,PersistentMemory),學術名為存儲級內存(SCM,StorageClassMemory),和DRAM一樣,都是安裝在機器主板的內存槽接口中。參考圖2,DDRDRAM及以上的易失性存儲CPU可以通過load/store指令直接訪問,而NANDSSD及以下的非易失性存儲CPU無法直接訪問,需要先加載到易失性存儲中,可以看出DRAM與SSD之間存在巨大的性能鴻溝,在訪問時延上出現了跳變。而持久型內存位于DRAM與SSD之間,以load/store指令的方式訪問并支持數據的持久化,也填補了DRAM與SSD在時延上存在的鴻溝。相比DRAM,持久型內存在性能上處于劣勢,但容量和價格均占據優勢;相比NANDSSD,持久型內存在性能上處于優勢,但容量和價值處于劣勢。3.內存數據庫的發展歷程內存數據庫的發展主要經歷了雛形期、理論成熟期、市場成長期及高速發展期四個階段。4.內存數據庫的優勢與挑戰內存數據庫在提供高性能讀寫能力的同時,也存在由于器件導致的數據易失問題,需要在應用中引起注意。.優勢:高性能讀寫由于省去了磁盤I/O的開銷,在數據訪問的時延上內存型數據庫可以達到傳統關系型數據庫無法達到的微秒級別,單機內存數據庫的QPS也可以達到10萬以上,配合上用戶態協議棧、內存大頁等技術之后,更是可以輕松達到幾十萬QPS的量級,這是傳統的關系型數據庫很難做到的。.挑戰:內存數據易失內存數據庫當前主要使用DRAM作為存儲介質,DRAM屬于掉電易失性介質,為了保證數據的可靠性,內存數據庫需要考慮持久化方案。現階段主流的鍵值對內存數據庫對于持久化的支持較為薄弱,持久化性能也不如傳統數據庫。內存型數據庫中克服掉電易失性來保障數據可靠性的方法主要是以下兩種:一是每次操作都進行數據持久化,這種方式勢必會大幅降低內存數據庫的性能;二是按照一定的策略進行操作的持久化,這樣可以達到一定程度的優化和緩解,但極端情況下數據丟失的情況仍不可避免。現階段新型的非易失性存儲器件已經發布但尚未規模化商用。相信解決了存儲易失性的難題后,內存數據庫會具備更多的應用。內存數據庫的分類主流的內存數據庫可分為鍵值對內存數據庫、關系型內存數據庫以及其他數據庫,用戶可根據自身的業務需求選擇適合自己的內存數據庫類型。.鍵值對內存數據庫鍵值對(KV,Key-Value)內存數據庫指的是一種以鍵值對為主要存儲結構的內存數據庫。鍵值對內存數據庫通常按鍵進行數據存取操作,值通常支持各種數據類型,使用鍵值存儲的數據模型相對簡單,更適合要求性能高、計算簡單的一些場景。鍵值對內存數據庫的典型代表為Redis、Memcached和Aerospike。.關系型內存數據庫關系型內存數據庫是一種基于數據關系模型的內存數據庫。關系型內存數據庫將傳統的關系型數據庫表搬到內存中,支持通過SQL語句的方式實現對內存數據的訪問,在實現復雜分析功能的同時,提升數據訪問速度。關系型內存數據庫的典型代表軟件為OracleTimesTen、SAPHANA、MemSQL和SQLite。.其他類型的內存數據庫除鍵值對內存數據庫、關系型內存數據庫之外,其他比較小眾的內存數據庫稱為其他內存數據庫,比如圖內存數據庫RedisGraph等。內存數據庫產品現狀DB-EnginesRanking是公認較權威的數據庫排行,我們選取了其中最為活躍的10款典型內存數據庫進行對比。開源產品中,Redis和Memcached是最受歡迎的兩款鍵值對內存數據庫;而SQLite是最受歡迎的關系型內存數據庫。表中大部分的關系型內存數據庫為商用數據庫,其中熱度最高的是SAPHANA。早在1995年就發布第一版的OracleTimesTen仍然在榜上活躍;2014年新發布ApacheIgnite兼容鍵值和關系型數據結構,熱度正穩步攀升。事務支持方面,大部分的關系型內存數據庫稱可以支持ACID,但都需要在性能上作出妥協。10款典型內存數據庫対比建摒庫窖麴數膽結構 起始年份商用/開源(License}ACID支持悄探Redifi2009年開源(BSD)不支持Memcached鍵値對2003年開源(BSD}不文持Aeruspikti鍵惜對2012年開源(AGPL)只支持原子性ApacheIgnite雛怛對/關系型2014年開源(Apache2.0)主持SAPHANA關系型2010年商崔主持OracleTirnssTen關系型1995年*支持VoltDE關系型2010年商用/開源(GPL)支持MemSQL關乘型2013年商用只文持隔離性SQLile關系型2000年開源(Publicdomain)支持e>lrem2CE關系型2001年商用支持內存數據庫選型建議技術服務于業務,內存數據庫的選型應首先遵循業務場景的需求業務特性決定了數據的應用特性,包括數據量、并發度、讀寫特性、一致性、響應時間、操作復雜度、業務連續性等要求,對應數據庫的一致性、容錯性、擴展性、安全性等技術要求。在做內存數據庫的選型前,建議先梳理業務需求并進行量化;再將核心數據應用特性映射成數據庫技術要求;最后按篩選出的技術要求進行選型。1).技術因素按照技術要求進行內存數據庫選型時,可主要考察業務的性能、致性要求和SQL兼容性三個因素。業務是否有很高的性能要求?一般有高并發、低時延讀寫要求的業務,如游戲實時排行、直播粉絲關注等,建議選擇內存數據庫。業務數據是否要求強一致性?如果業務對數據的可靠性和一致性要求較高、需要ACID級別的事務支持,則建議使用MySQL等傳統的關系型數據庫。但需要注意的是,強一致性的要求會對數據庫的性能造成一定的影響;如果需要兼具高性能和強一致性,則需要在應用架構層面進行優化,單靠數據庫的能力還無法實現。數據處理是否要求SQL兼容性?在高性能要求的場景下,業務中如果數據結構固定、有復雜的關聯計算要求,或是需要SQL語法支持的情況,建議使用關系型內存數據庫;對于數據結構多變、擴展性要求高、數據模型和操作簡單的場景,建議使用鍵值對內存數據庫。除了這三條考察指標,還可以結合數據容量、成本、擴展性、可維護性等需求進行綜合考量。2).非技術因素上述選型方法主要考量的是技術因素,除此以外還可以結合實際情況,引入一些其他維度的考量,進行綜合

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論