筆者最近在學習,了解當前流行的若干分布式儲存系統。為什麼這麼做呢?因為筆者比較了解hdfs,但是對其它同等型別的儲存系統知道的不多,想藉此學習比較一番,希望能夠做到觸類旁通吧。本文可能不會闡述的很具體,想到哪就說到哪吧。
資料儲存必然涉及到其元資料的儲存管理,以什麼樣的方式來管理這些元資料就成為了劃分的區別。按照這個劃分,能夠劃分出以下3類:
所以其實沒用絕對的好壞,只有適不適合我們使用的儲存系統。
這裡提到的資料定位方式其實是乙個比較大的概念,它主要包含兩層含義:
其實從根本上來說,儲存系統的拓撲邏輯結構的設計決定了檔案資料的定位問題。筆者以hdfs為例.。稍微了解過hdfs的人,基本都知道它有經典的「三副本」策略嘛,這3個副本橫跨了不同的節點,機架,以此保證資料的高可用。所以我們看,hdfs在這裡定義出了3個邏輯層的概念:
然後根據管理區傳入的集群拓撲結構,進行資料的位置選擇。之後,資料的定位也是按照這種方式。當然了,還可以加上更多別的權重因素,比如ceph的crush演算法規則。
還有乙個問題,無元資料管理的儲存系統用的雜湊方式是如何進行定位的呢?簡單來說,這是乙個雜湊值的區間範圍管理問題。感興趣的同學可以學習glusterfs的彈性雜湊演算法。
這裡的儲存形式指的主要有3方面:
前面2個很好理解,第3個條帶式是什麼意思呢?它指的是資料被橫切到多個節點上,而不是連續的儲存在乙個節點上。條帶式的好處是可以提高檔案讀寫效率,因為我們能夠在多個節點上並行讀寫檔案的目的。
儲存對外的服務形式,依據不同的使用場景,使用者可自行選擇。主要有以下3類:
以上是筆者最近一周所看所想,當然了,在分布式儲存系統中,還有其它很多值得**的點,比如說資料恢復。筆者會在後續的文章中繼續進行分享。
聊聊分布式系統
一提起 分布式系統 大家的第一感覺就是好高大上啊,深不可測,看各類大牛關於分布式系統的演講或者書籍,也大多是一臉懵逼。本文期望用淺顯易懂的大白話來就什麼是分布式系統 分布式系統有哪些優勢 分布式系統會面臨 挑戰 如何來設計分布式等方面的話題來展開討論。關於這個定義,我們直觀的感受就是 從程序角度看,...
聊聊主流的分布式資料庫
單體資料庫時代,隨著系統交易量的不斷上公升,資料庫讀寫效能出現了嚴重下降。我們可以借助分庫分表中介軟體,比如mycat shardingjdbc來實現分庫分表,緩解單庫的讀寫效能。但是分庫分表中介軟體並不支援事務,如果要保證資料一致性,就需要借助於分布式事務中介軟體,比如阿里巴巴的seata。後來分...
從構建分布式秒殺系統聊聊分布式鎖
摘要 前言 最近懶成一坨屎,學不動系列一波接一波,大多還都是底層原理相關的。上周末抽時間重讀了周志明大濕的 jvm 高效併發部分,每讀一遍都有不同的感悟。路漫漫,藉此,把前段時間搞著玩的秒殺案例中的分布式鎖深入了解一下。最近懶成一坨屎,學不動系列一波接一波,大多還都是底層原理相關的。上周末抽時間重讀...