單機儲存原理與設計

2021-08-29 07:34:00 字數 1637 閱讀 7676

1 單機儲存引擎:儲存引擎是儲存系統的發動機,決定了儲存系統能夠提供的功能和效能。儲存系統提供功能:create、update、read、delete(curd)。儲存引擎型別有: 

· 雜湊儲存引擎 

· b樹儲存引擎 

· lsm儲存引擎

2  雜湊儲存引擎:基於雜湊表結構的鍵值儲存系統,陣列+鍊錶的方式實現,支援持create、update、delete、隨機read,o(1)read複雜度。

b樹儲存引擎:基於b tree實現,支援單條記錄的curd,還支援順序掃瞄、範圍查詢,rdbms使用較多,例如:mysql,innodb 聚簇索引,b+樹。

3  lsm樹儲存引擎:log structured merge tree,對資料的修改增量儲存在記憶體中,達到指定條件後(通常是數量和時間間隔),批量將更新操作持久到磁碟,讀取資料時需要合併磁碟中的歷史資料和記憶體中最近修改操作,lsm優勢在於通過批量寫入,規避了隨機寫入問題,提高寫入效能,lsm劣勢在於讀取需要合併磁碟資料和記憶體資料。lsm通過commit log避免了記憶體資料丟失,首先將修改操作作寫入到commit log中,保證運算元據的可靠性。 典型案例設計:leveldb。

4  資料模型:資料模型是儲存系統外殼,分類有: 

· 檔案:以目錄樹的方式組織檔案 linux、mac、windows 

· 關係型:每個關係是乙個**,由多個行組成,每個行由於多個列組成,如mysql、orcale等 

· 鍵值(key-value)儲存型:memcached、 tokyo cabinet、redis 

· 列儲存型:cassadra、hbase 

· 圖形(graph)資料庫:neo4j、infogrid、infinite graph 

· 文件型:mongodb、couchdb

5  事務與併發控制 

· 事物四個基本屬性:原子性、一致性、隔離性、永續性 

6  併發控制:鎖粒度,mongodb:process->db->table->row,提供read併發,read不加鎖:寫時複製、mvcc

資料恢復:操作日誌

第二章 單機儲存系統

單機儲存引擎就是雜湊表、b樹等資料結構在機械磁碟、ssd等持久化介質上的實現。單機儲存系統是單機儲存引擎的一種封裝,對外提供檔案、鍵值、**或者關係模型。

2.1硬體基礎

cpu架構

經典的多cpu架構為對稱多處理結構(smp),即在乙個計算機上匯集了一組處理器,它們之間對稱工作, 無主次或從屬 關係,共享相同的物理記憶體及匯流排。

smp架構的主要特點是共享,系統中所有資源(cpu、記憶體、i/o等)都是共享的, 由於多 cpu 對前端匯流排的競 ,smp的擴充套件能力非常有限。為了提高可擴充套件性,現在的主流伺服器架構一般為numa(非一致儲存訪問)架構。

io匯流排

北橋晶元通過前端匯流排(fsb)與cpu相連,記憶體模組以及pci-e裝置(如高階 的 ssd裝置fusion-io) 接在北橋上。

網路拓撲

下圖為傳統的資料中心網路  ,思科過去一直提倡這樣的拓撲,分為三層,最下面是接入層,中間是匯聚層,上面是核心層。

儲存層次架構

從分布式系統的 度 ,整個集群中所有伺服器上的儲存介質(記憶體、機械硬碟,ssd)構成乙個整體,其他伺服器上的儲存介質與本機儲存介質一樣都是可訪問的,區別僅僅在於需要額外的網路傳輸及網路協議棧等訪問開銷。

海量網路儲存系統原理與設計 二

目前,三種基本的網路儲存結構是san,nas和iscsi。nas network attached storage,網路附加儲存。在nas儲存方案中,伺服器與實際的儲存裝置是分開的,也就是說在硬碟等儲存裝置與伺服器端之間存在著乙個網路附加儲存伺服器。san storage area network,...

PLL原理與設計要點

pll就是phase locked loop,鎖相環。在許多場合,我們需要獲得乙個和輸入訊號或者載波同頻同相的本地訊號,這就要用到pll,它是當前頻率合成常用手段之一。其結構如下 pd是鑑相器,用於檢測兩個輸入訊號的相位差,有數字方式的也有模擬方式。模擬方式最好理解,設輸入訊號分別為cos wt a...

專案設計與原理分析

在學習過程中,積累的專案設計相關知識,後續會不斷完善 1.設計原則 2.設計方法1.設計原則 2.設計方法1.基本概念 a css畫素 裝置畫素 邏輯畫素 裝置畫素比 b viewport c rem 2.工作原理 a 利用viewport和裝置畫素比調整基準畫素 b 利用px2rem自動轉化css...