自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

后臺(tái)架構(gòu)設(shè)計(jì)—數(shù)據(jù)存儲(chǔ)層

存儲(chǔ) 存儲(chǔ)軟件
LSM樹存儲(chǔ)引擎:對(duì)數(shù)據(jù)的修改增量保存在內(nèi)存,達(dá)到一定條件再批量更新到磁盤;優(yōu)勢(shì)在于批量寫入;劣勢(shì)在于讀取需合并磁盤和內(nèi)存。

數(shù)據(jù)存儲(chǔ)重要性:

  • 數(shù)據(jù)是企業(yè)最重要的財(cái)產(chǎn);
  • 數(shù)據(jù)可靠性是企業(yè)的命根,一定要保證。

單機(jī)存儲(chǔ)原理:

存儲(chǔ)引擎:存儲(chǔ)系統(tǒng)的發(fā)動(dòng)機(jī),它決定存儲(chǔ)系統(tǒng)的功能和性能;

引擎類型:哈希存儲(chǔ)引擎、B樹存儲(chǔ)引擎、LSM存儲(chǔ)引擎

  1. 哈希存儲(chǔ)引擎:基于哈希表結(jié)構(gòu) :數(shù)組+鏈表;支持Create\Update\Delete\隨機(jī)Read
  2. B樹存儲(chǔ)引擎:基于B Tree實(shí)現(xiàn),支持單條記錄的CURD,支持順序查找。RDBMS使用較多。
  3. LSM樹存儲(chǔ)引擎:對(duì)數(shù)據(jù)的修改增量保存在內(nèi)存,達(dá)到一定條件再批量更新到磁盤;優(yōu)勢(shì)在于批量寫入;劣勢(shì)在于讀取需合并磁盤和內(nèi)存;

避免內(nèi)存數(shù)據(jù)丟失:修改操作寫入到CommitLog日志。

[[211085]]

數(shù)據(jù)模型:

  1. 文件:以目錄樹組織,如linux,mac,windows;
  2. 關(guān)系型:每個(gè)關(guān)系是一個(gè)表格,多行組成,每行多列;
  3. 鍵值(Key-Value):Memcached, Tokey, Redis;
  4. 列存儲(chǔ)型:Casadra, Hbase;
  5. 圖形數(shù)據(jù)庫(kù):Neo4J, InfoGrid, Infinite Graph
  6. 文檔型:MongoDB, CouchDB

事務(wù)與并發(fā)控制:

事務(wù)4個(gè)基本屬性:ACID 原子性、一致性、隔離性、持久性

并發(fā)控制:

鎖粒度:Process->DB->Table->Row

提供Read并發(fā),Read不加鎖:寫時(shí)復(fù)制、MVCC

    數(shù)據(jù)恢復(fù):通過(guò)操作日志

多機(jī)存儲(chǔ)原理:

單機(jī)存儲(chǔ)原理在多機(jī)存儲(chǔ)仍然可用;多級(jí)存儲(chǔ)基于單機(jī)存儲(chǔ);

數(shù)據(jù)分布:

分布在多個(gè)節(jié)點(diǎn),節(jié)點(diǎn)間負(fù)載均衡;

分布方式:

靜態(tài):取模、uid%32;

動(dòng)態(tài):一致性hash,數(shù)據(jù)飄移問(wèn)題(A節(jié)點(diǎn)更新前出現(xiàn)故障,更新遷移到B節(jié)點(diǎn)后A節(jié)點(diǎn)又恢復(fù));

復(fù)制:

分布式存儲(chǔ)多個(gè)副本;保證高可靠和高可用;Commit Log。

故障檢測(cè):

心跳機(jī)制、數(shù)據(jù)遷移、故障恢復(fù);

FLP定理與設(shè)計(jì):

FLP Impossiblity(FLP不可能性):

在異步消息通信場(chǎng)景,即使只有一個(gè)進(jìn)程失敗,沒(méi)有任何方法能保證非失敗進(jìn)程達(dá)到一致性。

CAP定理與設(shè)計(jì):

CAP:一致性(Consistency)、可用性(Availabilty)、分區(qū)容忍性(Tolerance of network Partition)。

一致性和可用性需要折中權(quán)衡

分布式存儲(chǔ)系統(tǒng)需要能夠自動(dòng)容錯(cuò),也就是說(shuō)分區(qū)容忍性需要保證。

2PC(Two Phase Commit)協(xié)議與設(shè)計(jì):

用于分布式事務(wù);

兩類節(jié)點(diǎn)組成:

協(xié)調(diào)者(1個(gè));

事務(wù)參與者(多個(gè));

分兩階段:

請(qǐng)求階段:協(xié)調(diào)者通知參與者準(zhǔn)備提交或取消事務(wù),所有參與者都需要表決同意或者不同意。

提交階段:

收到參與者所有決策后,協(xié)調(diào)者進(jìn)行決策(提交或取消);

通知參與者執(zhí)行操作,所有參與者都同意就提交,否則取消;

參與者收到協(xié)調(diào)者的通知后執(zhí)行操作。

2PC協(xié)議是阻塞式:

事務(wù)參與者可能發(fā)生故障

        --設(shè)置超時(shí)時(shí)間;

協(xié)議者可能發(fā)生故障

      --日志記錄、備用協(xié)調(diào)者

應(yīng)用:交易訂單 等;

Paxos協(xié)議與設(shè)計(jì):

作用:

解決節(jié)點(diǎn)間的一致性問(wèn)題;

主節(jié)點(diǎn)宕掉,則選擇新節(jié)點(diǎn);

主節(jié)點(diǎn)常以操作日志的形式同步備節(jié)點(diǎn)。

分兩種角色:提議者(Prpposer)、接受者(Acceptor);

執(zhí)行步驟:

批準(zhǔn):Proposer發(fā)送accept消息給Accepter要求接受某個(gè)提議者;

確認(rèn):超一半的Accepter接受,則提議值生效,Proposer發(fā)送acknowledge消息通知所有的Accepter提議生效。

與2PC比較::

2PC協(xié)議保證多個(gè)數(shù)據(jù)分片上操作的原子性;

Paxos協(xié)議保證一個(gè)數(shù)據(jù)分片多個(gè)副本之間的數(shù)據(jù)一致性;

Paxos協(xié)議用法:

實(shí)現(xiàn)全局的鎖服務(wù)或者命名和配置服務(wù);

---Apache Zookeeper

將用戶數(shù)據(jù)復(fù)制到多個(gè)數(shù)據(jù)中心;

---Google Megastore

數(shù)據(jù)存儲(chǔ)層冗余:

多個(gè)副本,實(shí)現(xiàn)訪問(wèn)的高可用性。

如何實(shí)現(xiàn): 

數(shù)據(jù)復(fù)制:

基于日志;

Master-Slave:mysql\MongoDB

Replic Set:MongoDB

雙寫:

存儲(chǔ)層多主對(duì)等結(jié)構(gòu);比較靈活,但數(shù)據(jù)模塊層成本較高;

數(shù)據(jù)備份:

冷備份:

定期將數(shù)據(jù)復(fù)制到某個(gè)存儲(chǔ)介質(zhì),是傳統(tǒng)的數(shù)據(jù)保護(hù)手段;

優(yōu)點(diǎn):簡(jiǎn)單、廉價(jià),技術(shù)難度低;

缺點(diǎn):定期存在數(shù)據(jù)不一致;恢復(fù)數(shù)據(jù)時(shí)間長(zhǎng);

熱備份:

online備份;提供更好的高可用性;

異步熱備份:

從主存儲(chǔ)寫入即返回給應(yīng)用端,由存儲(chǔ)系統(tǒng)異步寫入其他副本;

同步熱備份:

多份數(shù)據(jù)副本寫入同步完成,無(wú)主從之分;

為提高性能,應(yīng)用程序并發(fā)寫入;

響應(yīng)延遲是最慢的那臺(tái)服務(wù)器;

數(shù)據(jù)存儲(chǔ)層失效轉(zhuǎn)移機(jī)制:

失效確認(rèn):是否宕機(jī)、心跳;

訪問(wèn)轉(zhuǎn)移:訪問(wèn)路由到非宕機(jī)機(jī)器;存儲(chǔ)數(shù)據(jù)完全一致;

數(shù)據(jù)恢復(fù):主從、日志;

責(zé)任編輯:武曉燕 來(lái)源: 訂閱號(hào)智能服務(wù)
相關(guān)推薦

2012-06-07 10:53:08

架構(gòu)設(shè)計(jì)數(shù)據(jù)訪問(wèn)層設(shè)計(jì)原則

2017-10-10 15:20:10

架構(gòu)數(shù)據(jù)存儲(chǔ)PB級(jí)數(shù)據(jù)

2012-06-07 10:22:48

架構(gòu)設(shè)計(jì)邏輯層物理層

2012-05-30 09:43:45

業(yè)務(wù)邏輯層

2012-06-07 10:35:40

架構(gòu)設(shè)計(jì)業(yè)務(wù)邏輯Java

2012-09-19 13:46:37

存儲(chǔ)存儲(chǔ)設(shè)計(jì)快速表態(tài)

2016-05-09 09:26:06

架構(gòu)ios網(wǎng)絡(luò)層

2017-11-27 08:50:29

架構(gòu)數(shù)據(jù)存儲(chǔ)

2022-05-18 10:07:29

EMQ車聯(lián)網(wǎng)MQTT

2024-11-27 13:01:22

應(yīng)用層領(lǐng)域?qū)?/a>對(duì)接層

2012-06-07 10:25:35

架構(gòu)設(shè)計(jì)服務(wù)層軟件設(shè)計(jì)

2010-09-17 08:50:30

Visual Stud

2019-06-13 18:50:47

支付平臺(tái)架構(gòu)設(shè)計(jì)

2023-03-27 08:05:27

數(shù)字化轉(zhuǎn)型MLOps

2021-01-11 10:19:51

安全架構(gòu)

2023-03-01 18:12:16

平臺(tái)架構(gòu)設(shè)計(jì)

2019-12-24 08:11:39

大數(shù)據(jù)架構(gòu)數(shù)據(jù)開發(fā)

2022-12-13 09:54:52

數(shù)據(jù)倉(cāng)庫(kù)

2013-05-27 10:58:28

Tumblr架構(gòu)設(shè)計(jì)雅虎收購(gòu)

2024-10-15 11:04:18

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)