分布式儲存系統基本概念

2021-07-07 03:53:24 字數 1348 閱讀 4666

參考《大規模分布式儲存系統》楊傳輝

非結構化資料:辦公文件、文字。、視音訊等

結構化資料:可以設計成二維關係表來儲存,資料屬性基本固定,資料的模式(字段、資料間關係--個表之間的關係)要預先定義

半結構化:資料的模式和內容混在一起,沒有明顯區分,也不需要預先定義資料的模式結構

根據不同的資料型別,分布式儲存系統可分為四類

儲存非結構化資料,如blob物件、定長塊、大檔案。分布式儲存檔案系統也常作為分布式**和分布式資料庫的底層儲存

儲存關係簡單的半結構資料,只提供基於主鍵的crud操作。分布式鍵值系統是分布式**的一種簡化實現,一般用做快取,如**的tair以及memcache。一致性雜湊是分布式鍵值系統中常用的資料分布技術。

儲存關係較為複雜的半結構資料,與分布式鍵值系統相比,分布式**系統不僅僅支援簡單的crud操作,而且支援掃瞄某個主鍵範圍。分布式**系統借鑑了很多關聯式資料庫的技術,但是它主要支援單張表的操作,不支援一些特別複雜的操作,如多表關聯。同乙個**的多個資料行也不要求相同型別的列,適合半結構化資料

儲存結構化資料

儲存引擎就將資料持久化的儲存實現

是雜湊表的持久化實現,支援增刪改,以及隨機讀取操作,但不支援順序掃瞄,對應鍵值儲存系統。如

bitcask(基於hash表結構和key-value儲存模型的日誌型儲存系統-只增)

:在記憶體儲存基於雜湊表的索引資料結構:key和value的索引資訊(定位資訊,如果 檔案號,value在檔案中的偏移位置,value長度),先在記憶體中通過key找到定位資訊,然後讀取資料。

b樹儲存引擎是b樹(關於b樹的由來,資料結構以及應用場景可以看之前一篇博文)的持久化實現,不僅支援單條記錄的增、刪、讀、改操作,還支援順序掃瞄(b+樹的葉子節點之間的指標),對應的儲存系統就是關聯式資料庫(mysql等)。

mysql的myisam和innodb兩個儲存引擎的索引實現方式:

從原理來說,b+樹在查詢過程中應該是不會慢的,但如果資料插入比較無序的時候,比如先插入5 然後10000然後3然後800 這樣跨度很大的資料的時候,就需要先「找到這個資料應該被插入的位置」,然後插入資料。這個查詢到位置的過程,如果非常離散,那麼就意味著每次查詢的時候,他的子葉節點都不在記憶體中,這時候就必須使用磁碟尋道時間來進行查詢了。更新基本與插入是相同的,隨機io較多,

和b樹儲存引擎一樣,同樣支援增、刪、讀、改、順序掃瞄操作。而且通過批量儲存技術規避磁碟隨機寫入問題。

當然凡事有利有弊,lsm樹和b+樹相比,lsm樹犧牲了部分讀效能,用來大幅提高寫效能

大資料分布式系統涉及的基本概念

分割方法 水平分割水平分割 horizontal splitting 就是把全域性關係的元組分割成一些子集,這些子集被稱為資料分片或段 fragment 資料分片中的資料可能是由於某種共同的性質 如地理 歸屬 而需要聚集一起的。通常,乙個關係中的資料分片是互不相交的,這些分片可以選擇地放在乙個站點上...

kafka分布式訊息佇列 基本概念介紹

這個應該算是之前比較火熱的詞了,一直沒時間抽出來看看。乙個新東西出來,肯定是為了解決某些問題,不然不會有它的市場。先簡單看下。官方介紹 分布式 分割槽 支援複製的日誌提交系統 適用場景 顧名思義,特別適合用於系統日誌的非同步記錄,對於資料穩定性 一致性 可靠性要求不高的場景,追求的是高吞吐量。非傳統...

儲存系統 基本概念

目錄效能指標 層次化結構 全部總覽 本節總覽 根據作用分類 高速緩衝儲存器 cache 主儲存器 主存 記憶體 輔助儲存器 輔存 外存 按照材料分類 磁表面儲存器 磁碟 直接訪問 磁帶 順序訪問 磁芯儲存器 半導體儲存器 隨機訪問 訪問時間與儲存單元位置無關。隨機儲存器ram 易失性 唯讀儲存器ro...