日韩精品成人无码专区免费-国产99久久久久久免费看-国产精品丝袜久久久久久不卡-国产精品无码一区二区三区

后臺架構設計—數(shù)據(jù)存儲層

發(fā)布時間:2024-05-30 點擊:133
數(shù)據(jù)存儲重要性:
數(shù)據(jù)是企業(yè)最重要的財產;
數(shù)據(jù)可靠性是企業(yè)的命根,一定要保證。
單機存儲原理:
存儲引擎:存儲系統(tǒng)的發(fā)動機,它決定存儲系統(tǒng)的功能和性能;
引擎類型:哈希存儲引擎、b樹存儲引擎、lsm存儲引擎
哈希存儲引擎:基于哈希表結構 :數(shù)組 鏈表;支持createupdatedelete隨機read
b樹存儲引擎:基于b tree實現(xiàn),支持單條記錄的curd,支持順序查找。rdbms使用較多。
lsm樹存儲引擎:對數(shù)據(jù)的修改增量保存在內存,達到一定條件再批量更新到磁盤;優(yōu)勢在于批量寫入;劣勢在于讀取需合并磁盤和內存;
避免內存數(shù)據(jù)丟失:修改操作寫入到commitlog日志。
數(shù)據(jù)模型:
文件:以目錄樹組織,如linux,mac,windows;
關系型:每個關系是一個表格,多行組成,每行多列;
鍵值(key-value):memcached, tokey, redis;
列存儲型:casadra, hbase;
圖形數(shù)據(jù)庫:neo4j, infogrid, infinite graph
文檔型:mongodb, couchdb
事務與并發(fā)控制:
事務4個基本屬性:acid 原子性、一致性、隔離性、持久性
并發(fā)控制:
鎖粒度:process->db->table->row
提供read并發(fā),read不加鎖:寫時復制、mvcc
數(shù)據(jù)恢復:通過操作日志
多機存儲原理:
單機存儲原理在多機存儲仍然可用;多級存儲基于單機存儲;
數(shù)據(jù)分布:
分布在多個節(jié)點,節(jié)點間負載均衡;
分布方式:
靜態(tài):取模、uid2;
動態(tài):一致性hash,數(shù)據(jù)飄移問題(a節(jié)點更新前出現(xiàn)故障,更新遷移到b節(jié)點后a節(jié)點又恢復);
復制:
分布式存儲多個副本;保證高可靠和高可用;commit log。
故障檢測:
心跳機制、數(shù)據(jù)遷移、故障恢復;
flp定理與設計:
flp impossiblity(flp不可能性):
在異步消息通信場景,即使只有一個進程失敗,沒有任何方法能保證非失敗進程達到一致性。
cap定理與設計:
cap:一致性(consistency)、可用性(availabilty)、分區(qū)容忍性(tolerance of network partition)。
一致性和可用性需要折中權衡
分布式存儲系統(tǒng)需要能夠自動容錯,也就是說分區(qū)容忍性需要保證。
2pc(two phase commit)協(xié)議與設計:
用于分布式事務;
兩類節(jié)點組成:
協(xié)調者(1個);
事務參與者(多個);
分兩階段:
請求階段:協(xié)調者通知參與者準備提交或取消事務,所有參與者都需要表決同意或者不同意。
提交階段:
收到參與者所有決策后,協(xié)調者進行決策(提交或取消);
通知參與者執(zhí)行操作,所有參與者都同意就提交,否則取消;
參與者收到協(xié)調者的通知后執(zhí)行操作。
2pc協(xié)議是阻塞式:
事務參與者可能發(fā)生故障
–設置超時時間;
協(xié)議者可能發(fā)生故障
–日志記錄、備用協(xié)調者
應用:交易訂單 等;
paxos協(xié)議與設計:
作用:
解決節(jié)點間的一致性問題;
主節(jié)點宕掉,則選擇新節(jié)點;
主節(jié)點常以操作日志的形式同步備節(jié)點。
分兩種角色:提議者(prpposer)、接受者(acceptor);
執(zhí)行步驟:
批準:proposer發(fā)送accept消息給accepter要求接受某個提議者;
確認:超一半的accepter接受,則提議值生效,proposer發(fā)送acknowledge消息通知所有的accepter提議生效。
與2pc比較::
2pc協(xié)議保證多個數(shù)據(jù)分片上操作的原子性;
paxos協(xié)議保證一個數(shù)據(jù)分片多個副本之間的數(shù)據(jù)一致性;
paxos協(xié)議用法:
實現(xiàn)全局的鎖服務或者命名和配置服務;
—apache zookeeper
將用戶數(shù)據(jù)復制到多個數(shù)據(jù)中心;
—google megastore
數(shù)據(jù)存儲層冗余:
多個副本,實現(xiàn)訪問的高可用性。
如何實現(xiàn):
數(shù)據(jù)復制:
基于日志;
master-slave:mysqlmongodb
replic set:mongodb
雙寫:
存儲層多主對等結構;比較靈活,但數(shù)據(jù)模塊層成本較高;
數(shù)據(jù)備份:
冷備份:
定期將數(shù)據(jù)復制到某個存儲介質,是傳統(tǒng)的數(shù)據(jù)保護手段;
優(yōu)點:簡單、廉價,技術難度低;
缺點:定期存在數(shù)據(jù)不一致;恢復數(shù)據(jù)時間長;
熱備份:
online備份;提供更好的高可用性;
異步熱備份:
從主存儲寫入即返回給應用端,由存儲系統(tǒng)異步寫入其他副本;
同步熱備份:
多份數(shù)據(jù)副本寫入同步完成,無主從之分;
為提高性能,應用程序并發(fā)寫入;
響應延遲是最慢的那臺服務器;
數(shù)據(jù)存儲層失效轉移機制:
失效確認:是否宕機、心跳;
訪問轉移:訪問路由到非宕機機器;存儲數(shù)據(jù)完全一致;
數(shù)據(jù)恢復:主從、日志;

租用網(wǎng)絡服務器費用
阿里云回復如下售后工程師后臺解析您的域名
云服務器租用優(yōu)點分析怎么寫
linux下如何停止nginx服務
我想把粵備號這個備案號給注銷掉
在哪里查詢商標能不能注冊
我們的云服務器怎么了是什么
騰訊云服務器還可以掛千牛嗎