精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

微信基于時(shí)間序的海量存儲擴(kuò)展性與多機(jī)容災(zāi)能力提升

存儲 存儲軟件
作為以手機(jī)為主要平臺的移動社交應(yīng)用,微信內(nèi)大部分業(yè)務(wù)生成的數(shù)據(jù)是有共性可言的:數(shù)據(jù)鍵值帶有時(shí)間戳信息,并且單用戶數(shù)據(jù)隨著時(shí)間在不斷的生成,我們將這類數(shù)據(jù)稱為基于時(shí)間序的數(shù)據(jù)。

[[320618]]

 背景介紹

業(yè)務(wù)場景

作為以手機(jī)為主要平臺的移動社交應(yīng)用,微信內(nèi)大部分業(yè)務(wù)生成的數(shù)據(jù)是有共性可言的:數(shù)據(jù)鍵值帶有時(shí)間戳信息,并且單用戶數(shù)據(jù)隨著時(shí)間在不斷的生成,我們將這類數(shù)據(jù)稱為基于時(shí)間序的數(shù)據(jù)。例如朋友圈的發(fā)表,支付賬單流水,公眾號文章閱讀記錄等。這類基于時(shí)間序的數(shù)據(jù)通常不會刪除,而是會隨著時(shí)間流逝不斷積累,相應(yīng)需要的存儲空間也與日俱增:key 量在萬億級別,數(shù)據(jù)量達(dá)到 PB 級別,每天新增 key 十億級別。同時(shí)在十億用戶的加持下,每天的訪問量也高達(dá)萬億級別。

訪問模型

經(jīng)過數(shù)據(jù)分析,我們發(fā)現(xiàn)基于時(shí)間序的存儲一般有如下三個(gè)特點(diǎn):

  1. 讀多寫少,這類基于時(shí)間序的存儲,如果需要訪問一段時(shí)間內(nèi)的數(shù)據(jù)就需要對對應(yīng)時(shí)間段內(nèi)的所有鍵值對都進(jìn)行一次訪問。與全部寫入到一個(gè)鍵值對的場景相比可以視為讀擴(kuò)散的場景。部分業(yè)務(wù)場景下的讀寫比甚至高達(dá) 100:1。
  2. 冷熱分明,這類基于時(shí)間序的存儲,數(shù)據(jù)的時(shí)效性往往也決定了訪問頻率。比如對用戶進(jìn)行公眾號文章的推薦,用戶近期的閱讀記錄會更加具有參考意義。這就導(dǎo)致數(shù)據(jù)的訪問不是均勻的,而會更集中在最近一段時(shí)間所產(chǎn)生的數(shù)據(jù)。以某業(yè)務(wù)場景為例,70%以上的訪問來自最近一天內(nèi)的新增數(shù)據(jù),90%來自 3 個(gè)月內(nèi)的新增數(shù)據(jù)。一年外的數(shù)據(jù)訪問占比只有 5%。
  3. 數(shù)據(jù)安全性要求高,這類數(shù)據(jù)通常是由用戶主動產(chǎn)生,一旦丟失,非常容易被用戶感知,導(dǎo)致投訴。

 

現(xiàn)有架構(gòu)

此前,我們使用一致性緩存層+SSD 熱數(shù)據(jù)層+機(jī)械盤冷數(shù)據(jù)層的分層架構(gòu)方案來解決此類基于時(shí)間序的存儲。細(xì)節(jié)可以參考《微信后臺基于時(shí)間序的海量數(shù)據(jù)冷熱分級架構(gòu)設(shè)計(jì)實(shí)踐》。

對于冷數(shù)據(jù)集群,我們使用微信自研的 WFS(Wechat File System 微信分布式文件系統(tǒng))對其進(jìn)行了一次升級,極大的簡化了運(yùn)維成本。不過這部分不是本文重點(diǎn),在此不再詳述。

面臨挑戰(zhàn)

舊架構(gòu)在過去幾年微信后臺的發(fā)展過程中始終表現(xiàn)平穩(wěn),但是也依然面臨著一些挑戰(zhàn)。

首先是擴(kuò)展能力方面的挑戰(zhàn)。舊架構(gòu)中,考慮到讀多寫少的訪問模型,為了加快宕機(jī)后的數(shù)據(jù) catchup 速度,我們使用了細(xì)粒度的 paxos group,即每個(gè) key 有一個(gè)獨(dú)立的 paxos group。這樣在進(jìn)程重啟等宕機(jī)場景下,只有少量寫入的 key 需要進(jìn)行 catchup。理想很豐滿,現(xiàn)實(shí)很骨感。在 PaxosStore 架構(gòu)中,數(shù)據(jù)的擴(kuò)縮容是以 paxos group 為粒度的。也就是說,對于使用細(xì)粒度 paxos group 的存儲,進(jìn)行擴(kuò)縮容是逐 key 的,耗時(shí)可以看成與 key 量成正比;單機(jī)百億級別的 key 量放大了這一問題,即使我們采取一系列的工程優(yōu)化縮短耗時(shí),整體的遷移周期依然比較長,需要幾周時(shí)間。

另外一個(gè)方面則是來自容災(zāi)能力的挑戰(zhàn)。PaxosStore 使用 KV64+三園區(qū)的部署方式。同一個(gè) key 的三個(gè)副本分屬三個(gè)園區(qū),同一個(gè)園區(qū)的兩臺機(jī)器服務(wù)分片沒有重疊,因此可以容忍園區(qū)級別的故障。然而對于同組兩臺不同園區(qū)機(jī)器故障的情況,則有占比 1/6 的數(shù)據(jù)只剩余單個(gè)副本,無法提供讀寫服務(wù)。

可能有同學(xué)會認(rèn)為,同組兩臺不同園區(qū)機(jī)器故障,概率無異于中彩票。然而根據(jù)墨菲定律,"凡是可能出錯(cuò)的事情,最終一定會出錯(cuò)"。在過去幾年也曾出現(xiàn)過同 Set 兩臺不同園區(qū)機(jī)器先后發(fā)生故障的情況。

我們都知道,分布式系統(tǒng)的一個(gè)核心觀點(diǎn)就是基于海量的,不可靠的硬件,構(gòu)造可靠的系統(tǒng)。那么硬件究竟有多不可靠呢?Jeff Dean 在 2009 年的一次 Talk 中曾經(jīng)提到過:

PaxosStore 使用 no raid 的磁盤陣列,磁盤故障導(dǎo)致單盤數(shù)據(jù)丟失時(shí)有發(fā)生。在機(jī)器故障檢修以及數(shù)據(jù)恢復(fù)的過程中,有大量數(shù)據(jù)(占單組 50%,逐漸收斂為 0)是以 2 副本形式存在,這就進(jìn)一步削弱了系統(tǒng)的容災(zāi)能力。

總結(jié)一下,我們面臨如下幾個(gè)挑戰(zhàn):

  1. 單機(jī)百億級別 key 量,10TB 級別數(shù)據(jù),如何快速擴(kuò)容?
  2. 如何低成本的提升系統(tǒng)的容災(zāi)能力,使之容忍任意雙機(jī)故障?
  3. 磁盤故障,數(shù)據(jù)清空后如何快速恢復(fù)。
  4. 作為一款十億月活的國民 APP,對其進(jìn)行改造無異于給一架正在飛行的飛機(jī)更換發(fā)動機(jī),改造過程稍有不慎都可能招致用戶投訴,甚至上個(gè)熱搜。

接下來我會針對這幾個(gè)難點(diǎn)逐一展開,介紹我們的解決思路與方案。

百億級別 key 如何實(shí)現(xiàn)快速擴(kuò)容

對于細(xì)粒度的的 paxos group,遷移過程中,掃 key,遷移,校驗(yàn)等步驟都是逐 key 粒度的。這會產(chǎn)生大量的磁盤 IO 與 CPU 消耗,導(dǎo)致遷移速度上不去,需要幾周才可以完成遷移。

那么我們能否可以采取粗粒度 paxos group 以加快遷移呢?答案是肯定的。對比細(xì)粒度的 paxos group,單個(gè)粗粒度的 paxos group 可以同時(shí)保證多個(gè) key 的內(nèi)容強(qiáng)一致。因此遷移校驗(yàn)等過程中,可以減少大量的 paxos 交互。然而粗粒度 paxos group 的存儲,與細(xì)粒度 paxos group 的存儲相比,在遷移過程中對目標(biāo)集群的寫入不會減少,總體依然涉及了大量數(shù)據(jù)的騰挪。而由于 LSMTree 存儲引擎存在的寫放大問題,數(shù)據(jù)大量寫入目標(biāo)機(jī)這一過程會成為瓶頸。總體來看,擴(kuò)容時(shí)間可以縮短為原來的 1/2 甚至 1/3,達(dá)到天級別的水平。

看起來相比細(xì)粒度 paxos group 的遷移已經(jīng)有很大改進(jìn),我們能否更進(jìn)一步?首先我們分析一下在什么場景下需要擴(kuò)容,一般來說是以下兩個(gè)場景:

1.由于數(shù)據(jù)增加,磁盤容量達(dá)到瓶頸

2.由于請求增加,CPU 處理能力達(dá)到瓶頸

對于情況 1,如果我們使用分布式文件系統(tǒng)替代本地文件系統(tǒng),當(dāng)容量達(dá)到瓶頸時(shí)只需要增加分布式文件系統(tǒng)的機(jī)器就可以實(shí)現(xiàn)容量的快速擴(kuò)容,對上層應(yīng)用而言相當(dāng)于獲得了一塊容量可以無限增長的磁盤。對于情況 2,采用計(jì)算存儲分離結(jié)構(gòu)后。計(jì)算節(jié)點(diǎn)無狀態(tài),不涉及數(shù)據(jù)騰挪,自然可以實(shí)現(xiàn)快速擴(kuò)容;如果是存儲層節(jié)點(diǎn) CPU 瓶頸,也可以通過文件塊級別的騰挪來實(shí)現(xiàn)快速擴(kuò)容以及熱點(diǎn)打散。

應(yīng)用計(jì)算存儲分離的思路,我們基于 WFS(微信分布式文件系統(tǒng))以及微信 Chubby(分布式鎖),實(shí)現(xiàn)了一套計(jì)算存儲分離的存儲架構(gòu),代號 Infinity,寓意無限的擴(kuò)展能力。

"All problems in computer science can be solved by another level of indirection"

在 Infinity 中,我們引入了一個(gè)被稱為 Container 的中間層。Container 可以近似理解為一個(gè)數(shù)據(jù)分片。每臺機(jī)器可以裝載一個(gè)或多個(gè) Container,我們稱之為 ContainerServer。ContainerServer 會處理其上 Container 對應(yīng)數(shù)據(jù)的讀寫請求,Master 負(fù)責(zé) Container 在 ContainerServer 間的調(diào)度,Chubby 則提供了分布式鎖服務(wù)以及 Container 位置信息在內(nèi)的元信息存儲。

當(dāng) master 發(fā)現(xiàn)有新加入的機(jī)器時(shí),會主動觸發(fā)負(fù)載均衡,將其他 ContainerServer 上的 Container 調(diào)度到新機(jī)。整個(gè)調(diào)度過程中,不涉及數(shù)據(jù)的騰挪。在我們實(shí)際的測試中,Container 騰挪的平均耗時(shí)在百毫秒級別。

 

這是一個(gè)多園區(qū)部署的 Infinity 示意圖。每個(gè)園區(qū)內(nèi)都有獨(dú)立的 WFS 與 Chubby 存儲,每個(gè)園區(qū)都對應(yīng)全量的數(shù)據(jù)。對于同一個(gè)數(shù)據(jù)分片,分別位于 3 個(gè)園區(qū)的 3 個(gè) container 組成一個(gè) paxos group。

 

對于這樣一個(gè)方案,我們是可以對每個(gè)園區(qū)實(shí)現(xiàn)彈性伸縮的,系統(tǒng)整體的可用率由最上層的 paxos 提供保證。我們來計(jì)算下這一方案的存儲成本,園區(qū)內(nèi) 3 副本的 WFS 存儲 X 園區(qū)間的 3 副本 Replica,整體就是 9 副本。對于 PB 體量的存儲,這一方案所增加的存儲成本是我們難以承擔(dān)的。既然多 zone 部署的 Infinity 存在成本問題。我們自然想到,能否使用單 zone 部署的 Infinity 來負(fù)責(zé)存儲。

首先分析成本,單 zone 部署 Infinity 的存儲成本為 3 副本 WFS,與現(xiàn)有架構(gòu)的成本一致。其次分析擴(kuò)展能力,單 zone 部署的 Infinity 一樣具有出色的擴(kuò)展能力,優(yōu)于現(xiàn)有架構(gòu)。對于 Chubby 這一中心點(diǎn)依賴,我們可以實(shí)行 Set 化改造來盡量消除風(fēng)險(xiǎn)。

分 Set 改造后,我們不由得又想起那些年舊架構(gòu)經(jīng)常遇到的一種情況:單組請求突增。此處有必要簡單介紹一下 PaxosStore 的路由方案,組間一致性 Hash,單組內(nèi)是 KV64 結(jié)構(gòu)。一致性 Hash 消除訪問熱點(diǎn),一切看起來很美好。然而假設(shè)由于某些原因,大量請求集中訪問某組 KV 時(shí),如何應(yīng)急?

此時(shí)我們既無法快速增加該組內(nèi)的機(jī)器處理請求(KV64 限制),也無法快速分散請求到其他組(如果這組 KV 需要 3 倍容量,那就要把整個(gè)服務(wù)整體擴(kuò)容 3 倍才可以)。這就引發(fā)了一個(gè)尷尬的局面:一組 KV 水深火熱,其他組 KV 愛莫能助;只能反復(fù)調(diào)整前端請求的訪問比例,直到業(yè)務(wù)低峰期。

 

那么在 Infinity 中,我們?nèi)绾谓鉀Q這一問題呢?

首先,我們的 Set 化本質(zhì)上是對 Container 進(jìn)行分組,其中 Container 到組的映射關(guān)系是存儲于 Chubby 中的。如果我們想分散一組請求到其他組,只需要依次修改每一組 Chubby 中存儲的映射關(guān)系即可。在實(shí)際實(shí)現(xiàn)中還有一些工程細(xì)節(jié)需要考慮,比如對于要移入其他組的 Container,必須在原組進(jìn)行 Unload 并停止調(diào)度等。這里就不一一展開了。

 

 

我們在線上也進(jìn)行了一次大規(guī)模騰挪 Container 到其他組的實(shí)驗(yàn):結(jié)果顯示,單個(gè) container 騰挪到其他組,平均耗時(shí)不足 1 秒。

單 zone Infinity 架構(gòu)的一些問題

單 zone Infinity 架構(gòu)解決了多 zone Infinity 成本問題的同時(shí),也必然做出了取舍。對于某個(gè) container,任一時(shí)刻必須只在最多一個(gè) containersvr 上服務(wù)。否則就有導(dǎo)致數(shù)據(jù)錯(cuò)亂的風(fēng)險(xiǎn)。類比多線程中的 data race。我們通過引入分布式鎖服務(wù)來避免 double assign。同時(shí)為了減少分布式鎖開銷,我們將鎖的粒度由 Container 級別收斂到 ContainerSvr 級別。每臺 ContainerSvr 開始提供服務(wù)后會定期前往 chubby 續(xù)租。如果一臺 ContainerSvr 崩潰,master 也需要等到鎖租約過期后才可以認(rèn)為這臺 ContainerSvr 掛掉,并將其上的 container 分配出去。

這就會導(dǎo)致存在一部分 container 在租約切換期間(秒級別)不能服務(wù)。

我們引入兩個(gè)可靠性工程的常見指標(biāo)來進(jìn)行說明。MTTR——全稱是 Mean Time To Repair,即平均修復(fù)時(shí)間。是指可修復(fù)系統(tǒng)的平均修復(fù)時(shí)間,就是從出現(xiàn)故障到修復(fù)中間的這段時(shí)間。MTTR 越短表示易恢復(fù)性越好。MTBF——全稱是 Mean Time Between Failure,是指可修復(fù)系統(tǒng)中相鄰兩次故障間的平均間隔。MTBF 越高說明越不容易出現(xiàn)故障。

可以說,單 zone Infinity 架構(gòu)縮短了 MTTR,但是也縮短了 MTBF,導(dǎo)致整體的可用性依然不高。

不可能三角?

在很多領(lǐng)域中,都有類似“不可能三角”的理論。比如分布式理論中經(jīng)典的 CAP 定理,經(jīng)濟(jì)學(xué)理論中的蒙代爾不可能三角等。在我們上面的討論中,其實(shí)也蘊(yùn)含了這樣的一個(gè)“不可能三角”:成本,擴(kuò)展性,可用性。

 

 

PaxosStore 兼顧了成本與可用性,但擴(kuò)展能力稍遜;多 zone Infinity 可用性與擴(kuò)展性都為上乘,但成本是個(gè)問題;單 zone Infinity 犧牲了一點(diǎn)可用性,換來了成本和擴(kuò)展性的優(yōu)勢;三者不可得兼,我們該如何取舍?

首先是成本,是我們必須考慮的因素,這關(guān)系到我們架構(gòu)實(shí)際落地還是成為巴貝奇的分析機(jī);其次是可用性,這關(guān)系到用戶的使用體驗(yàn)。在我們的新架構(gòu)中,可用性不僅不能下降,甚至還應(yīng)該有所提升。比如:容忍任意雙機(jī)故障。結(jié)合上面的討論,一個(gè)核心的目標(biāo)逐漸浮出水面:低成本雙機(jī)容災(zāi)改造。

低成本雙機(jī)容災(zāi)改造

我們首先來分析一下如何實(shí)現(xiàn)雙機(jī)容災(zāi)改造。一個(gè)簡單的思路是提升我們的副本數(shù),由 3 副本提升為 5 副本。5 副本自然可以容忍小于多數(shù)派(<=2)的機(jī)器故障,實(shí)現(xiàn)雙機(jī)容災(zāi)。然而考慮到成本問題,3 副本改造為 5 副本,成本增加 66%,這是我們無法接受的。此時(shí)我們想到了函數(shù)式編程中的常見思想:Immutable! 對于靜態(tài)不可變的數(shù)據(jù)而言,只要有 3 個(gè)副本,那么我們也可以在丟失 2 個(gè)副本的情況下,信任唯一的副本。然而對于一個(gè)存儲系統(tǒng)而言,我們沒辦法控制用戶不修改 Key 對應(yīng)的 Value 值,那么我們該如何實(shí)現(xiàn)靜態(tài)化 3 副本呢?

LSMTree Revisited

關(guān)于 LSMTree 這一存儲引擎的介紹,資料有很多。這里就不再詳述了。這里引用一張 LSMTree 的架構(gòu)圖:

 

https://www.jianshu.com/p/6e49aa5182f0

我們分析一下圖中每個(gè)類型的文件:對于 SSTable 文件,寫入完成后即不可變,而且是 LSMTree 中主要的數(shù)據(jù)存儲(占比超過 99%),對于這一部分文件我們只需要存儲 3 副本即可;對于其他的文件如 WAL log,以及 Manifest,我們使用 5 副本存儲,總體的存儲成本增長可以忽略不計(jì)。這樣,我們就可以使用單 zone Infinity,在保持存儲成本不變的情況下,獲得雙機(jī)容災(zāi)的能力。

分而治之

單 zone Infinity 可以以 3 副本的存儲成本實(shí)現(xiàn)雙機(jī)容災(zāi),然而存在租約切換期間的不可用問題;5 副本 KV 實(shí)現(xiàn)了無租約的雙機(jī)容災(zāi),然后存儲成本相比原來增加了 2/3。兩種架構(gòu)各有不足,看似我們陷入了死局。然而回顧基于時(shí)間序數(shù)據(jù)的訪問模型,我們發(fā)現(xiàn)對于熱數(shù)據(jù)與溫?cái)?shù)據(jù),他們表現(xiàn)出了截然不同甚至相反的一些有趣性質(zhì)。

訪問模型 訪問量 數(shù)據(jù)量(單副本)
熱數(shù)據(jù) 千億級別 數(shù)十 TB
溫?cái)?shù)據(jù) 百億級別 PB 級別
 

我們可以采取計(jì)算機(jī)科學(xué)中的重要思想——分治來解決。對于熱數(shù)據(jù),訪問量較大,我們希望他有最高的可用性,同時(shí)它的數(shù)據(jù)占比又不大,適于采用 5 副本 KV 的方案進(jìn)行雙機(jī)容災(zāi)改造。

對于溫?cái)?shù)據(jù),數(shù)據(jù)量較大,不能采取 5 副本方案改造,而使用單 zone Infinity 的方案,則可以完美解決成本問題。雖然會有偶爾短暫的不可用時(shí)長,但是由于整體的訪問占比不多,系統(tǒng)整體的可用率依然可以保持在很高的水準(zhǔn)。

對新架構(gòu)的成本分析:

方案 成本 雙機(jī)容災(zāi)
熱數(shù)據(jù) 5 副本 KV 數(shù)據(jù)占比約 5% 5 倍成本 支持
溫?cái)?shù)據(jù) Infinity 數(shù)據(jù)占比約 95% 3 倍成本 支持
整體 3.1 倍 支持
 

這樣我們就在不顯著增加存儲成本,不犧牲可用性的前提下,實(shí)現(xiàn)了雙機(jī)容災(zāi)的目標(biāo)。

為了提升熱數(shù)據(jù)部分的擴(kuò)展性,我們可以使用粗粒度 paxos group 的交互方案。對于熱數(shù)據(jù),在數(shù)據(jù)量減少+粗粒度 paxos group 雙重改進(jìn)下,擴(kuò)容時(shí)間可以提升到小時(shí)級別。同時(shí),我們實(shí)現(xiàn)了熱數(shù)據(jù)由 5 副本 KV 到單 zone Infinity 的自動下沉。一方面可以保持總體的存儲成本不膨脹,另一方面也減少了熱數(shù)據(jù)的總量,熱數(shù)據(jù)集群的擴(kuò)容需求也就沒有那么強(qiáng)烈。

磁盤清空后的數(shù)據(jù)快速恢復(fù)

對于 Infinity 部分的數(shù)據(jù),可以依靠 WFS 自動檢測,補(bǔ)全副本數(shù)。在機(jī)器檢修期間就可以完成大部分?jǐn)?shù)據(jù)的補(bǔ)全。對于熱數(shù)據(jù)部分的數(shù)據(jù),雖然數(shù)據(jù)減少,但是恢復(fù)過程中還是會受限于 lsmtree 的寫入過程中 Compact 產(chǎn)生的寫放大問題。經(jīng)過一些業(yè)界的調(diào)研,對于 lsmtree 批量導(dǎo)入的場景,一種常見的做法是 BulkLoad,也即先將所有 key 進(jìn)行排序,生成有序的 SSTable 文件,直接提交到 lsmtree 的最后一層,這樣可以完全繞過寫放大實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入。

我們經(jīng)過分析,發(fā)現(xiàn)這種做法還不是最優(yōu)的。首先,我們對于 SSTable 中的數(shù)據(jù)會進(jìn)行 block 級別的壓縮,在遍歷數(shù)據(jù)的過程中需要進(jìn)行解壓;而在生成 SSTable 的過程中,為了減少存儲成本,又需要進(jìn)行壓縮。經(jīng)過研究,發(fā)現(xiàn)我們這種場景下有更優(yōu)的恢復(fù)方案:基于目錄級別的快速恢復(fù)。

目錄級別的快速恢復(fù)

要想實(shí)現(xiàn)目錄級別的快速恢復(fù),首要條件就是:需要數(shù)據(jù)的路由規(guī)則與目錄分布是完全對齊的。這樣才可以保證恢復(fù)目錄后,不會獲得不屬于本機(jī)的數(shù)據(jù),也不會遺漏數(shù)據(jù)。在此前的 kv 中都忽略了這一設(shè)計(jì),導(dǎo)致無法通過拷貝文件實(shí)現(xiàn)快速恢復(fù)。結(jié)合 5 副本的路由方案,我們獲得了一個(gè)可以實(shí)現(xiàn)對齊的目錄分布方案。推導(dǎo)后的方案非常簡潔,用一張圖片即可說明。

 

 

我們進(jìn)行的測試也印證了這一改造的效果,基于目錄拷貝的恢復(fù)方案相比原來逐 paxos group 恢復(fù)方案取得了近 50 倍的速度提升,從小時(shí)級進(jìn)入到分鐘級。

新架構(gòu)

 

 

對幾個(gè)架構(gòu)方案的對比:

 

 

平穩(wěn)升級

至此我們的改造方案有了,然而改造過程同樣值得注意。我們必須在保證系統(tǒng)穩(wěn)定的前提下,平穩(wěn)的完成數(shù)據(jù)與訪問的切換。

首先是灰度能力,我們做了兩個(gè)粒度的灰度控制:一是訪問時(shí)間級別,按照 key 上面的時(shí)間,分批將數(shù)據(jù)從原架構(gòu)中騰挪出來;二是命令字級別,數(shù)據(jù)騰挪完成后,我們會先保持雙寫狀態(tài)觀察,先逐步切換讀請求到新架構(gòu)中,觀察正常后才會去掉雙寫,完成切換。其次是改造的正確性,我們采取了全量的數(shù)據(jù)校驗(yàn)方案,保證改造過程中不會丟失數(shù)據(jù)。最后是在騰挪過程中,我們開發(fā)了一套基于機(jī)器資源以及監(jiān)控上報(bào)的自動反饋機(jī)制,當(dāng)業(yè)務(wù)高峰期或者出現(xiàn)失敗時(shí)自動降速,低峰期自動加速,減少了人為介入。

目前,我們已經(jīng)完成部分核心存儲集群的架構(gòu)改造,實(shí)現(xiàn)了全程無故障切換。

總結(jié)

2019 年,微信后臺通過如上持續(xù)不斷的改造,在不增加成本的前提下,極大提升了基于時(shí)間序存儲的擴(kuò)展能力,從周級別的擴(kuò)容速度升級到整體小時(shí)級的擴(kuò)容速度,并且溫?cái)?shù)據(jù)部分的計(jì)算節(jié)點(diǎn)做到了分鐘級的擴(kuò)容速度。同時(shí),利用數(shù)據(jù)的特性進(jìn)行集群劃分,將 5 副本 PaxosStore 存儲與計(jì)算存儲分離架構(gòu)進(jìn)行有機(jī)結(jié)合,在極大提升了擴(kuò)展能力的同時(shí),將可用性提升到容忍雙機(jī)故障的水平。

 

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2023-10-11 13:46:26

緩存Web應(yīng)用程序

2021-12-03 14:41:00

云存儲可擴(kuò)展性存儲

2011-09-20 09:34:09

Windows Ser微軟虛擬化

2021-12-09 05:36:16

云存儲可擴(kuò)展性數(shù)據(jù)存儲云存儲

2016-09-12 11:16:36

存儲數(shù)據(jù)中心SQl

2017-01-05 19:29:10

公共云云存儲微軟

2011-08-03 09:22:25

MySQL可擴(kuò)展性

2021-09-02 09:42:11

測試軟件可擴(kuò)展性開發(fā)

2009-04-20 11:33:47

光網(wǎng)絡(luò)動態(tài)擴(kuò)展

2012-07-24 10:26:31

復(fù)合機(jī)

2010-06-30 17:15:39

向外擴(kuò)展SQL Ser

2012-02-15 10:15:32

虛擬化RHEV 3.1紅帽

2010-07-21 11:21:05

SQL Server

2013-12-31 09:13:18

數(shù)據(jù)中心可擴(kuò)展性技術(shù)

2022-09-05 15:17:34

區(qū)塊鏈比特幣可擴(kuò)展性

2010-07-01 11:38:13

向外擴(kuò)展 SQL Se

2018-04-10 14:38:10

區(qū)塊鏈

2009-09-03 17:18:40

C#擴(kuò)展性對象模型

2015-05-13 17:15:01

Elasticsear分布式搜索插件

2009-09-03 17:33:08

C#常規(guī)擴(kuò)展性模型
點(diǎn)贊
收藏

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

国内精品视频在线播放| 日本精品黄色| 日韩极品在线观看| 日韩一区二区不卡| 亚洲黄色成人久久久| 国产精品99精品无码视亚| 国产一二三区在线| 国产女人18毛片水真多18精品| 国产精品美女久久久久久久| 欧美亚洲国产成人精品| 亚洲一级Av无码毛片久久精品| 午夜免费福利在线观看| 日本午夜一本久久久综合| 精品一区电影国产| 日本成年人网址| 熟妇人妻中文av无码| 欧美精品麻豆| 日韩欧美综合在线| 男人舔女人下面高潮视频| 视频一区二区三区在线看免费看| 亚洲麻豆一区| 亚洲精品乱码久久久久久金桔影视 | 欧美日韩你懂得| 欧美大陆一区二区| 日本老熟俱乐部h0930| 成人精品在线| 亚洲免费av高清| 亚洲999一在线观看www| 国产麻豆视频在线观看| 激情五月综合婷婷| 一区二区三区中文字幕电影 | 一级黄色片视频| 成人三级视频| 日韩精品久久久久久久玫瑰园| 奇米777在线视频| www视频在线看| 国产大片一区二区| 久久久久九九九九| 国产美女视频免费观看下载软件| 成入视频在线观看| 2022国产精品视频| 国产精品视频免费在线观看| 国产美女久久久久久| 欧美日韩国产在线观看网站| 欧美精品久久久久久久久老牛影院 | 成人一区二区三| av资源网站在线观看| 精东粉嫩av免费一区二区三区| www.欧美三级电影.com| 逼特逼视频在线观看| sis001欧美| 中文字幕综合网| 国产一区二区在线网站| 精品国产无码AV| 亚洲综合另类| 久久久999精品| 亚洲麻豆一区二区三区| 999久久精品| 欧美曰成人黄网| 激情视频小说图片| 青梅竹马是消防员在线| 激情欧美日韩一区二区| 国产综合香蕉五月婷在线| 99免费在线观看| 日韩精品永久网址| 亚洲成**性毛茸茸| www黄色av| 成人福利av| 欧美中文一区二区三区| 丰满的少妇愉情hd高清果冻传媒 | 波多野结衣中文字幕一区二区三区| 欧美性受xxxx白人性爽| 日本熟女毛茸茸| 亚洲乱码精品| 亚洲欧洲免费视频| 日本一级大毛片a一| 国产精品网站在线看| 国产视频欧美视频| 四季av中文字幕| 欧美日韩一区二区三区不卡视频| 欧美久久久一区| 在线观看免费看片| www.一区| 色婷婷综合久久久久中文| av一区二区三区免费观看| 国际av在线| 国产精品国产三级国产aⅴ原创| 久久综合给合久久狠狠色| 成人av电影观看| 亚洲日本护士毛茸茸| 视频一区二区三区在线观看| 午夜小视频免费| 成人综合婷婷国产精品久久| 国产美女扒开尿口久久久| 黄色片网站在线免费观看| 国内久久视频| 久久69精品久久久久久久电影好| 日韩不卡av在线| 欧美日韩一区二区三区四区在线观看| 午夜精品久久久久久久99热| 久草网站在线观看| 先锋影音久久| 91在线视频一区| 中文字幕一区2区3区| 日韩二区三区四区| 99三级在线| 亚洲国产日韩在线观看| 国产高清不卡一区二区| 免费精品视频一区| 中国av在线播放| 亚洲品质自拍视频| aaa毛片在线观看| 一区二区三区四区视频免费观看 | 成人欧美一区二区三区视频网页| 91免费黄视频| 成全电影大全在线观看| 亚洲成av人片观看| 波多野结衣家庭教师在线| yellow在线观看网址| 欧美日韩一区在线观看| 国产一二三四在线视频| 成人国产精品| 日韩电影在线观看中文字幕 | 亚洲制服丝袜在线播放| 99成人在线视频| y97精品国产97久久久久久| www.毛片.com| 成人午夜在线免费| 福利网在线观看| 污视频在线看网站| 香蕉久久一区二区不卡无毒影院| 九九热精品国产| youjizz欧美| 久久精品小视频| 国模私拍一区二区| 九色|91porny| 粉嫩av一区二区三区免费观看 | 亚洲丝袜av一区| 日本一级片免费看| 日韩av高清在线观看| 久久人人97超碰人人澡爱香蕉| 久久手机免费观看| 亚洲欧美一区二区三区国产精品 | 国产精品老女人| 久久久一二三| 成人自拍性视频| 91社区在线高清| 樱花影视一区二区| 伊人精品视频在线观看| 久久免费视频66| 伊人青青综合网站| 久久久久久激情| 丝袜美腿亚洲一区| 欧美精品亚洲| 欧美最新精品| 精品少妇一区二区三区日产乱码| 中文字幕狠狠干| 亚洲精品国产首次亮相| 欧美一区二区大胆人体摄影专业网站| 日日夜夜精品免费| 欧美日韩国产区| 超碰在线免费av| 欧美在线首页| 国产精品久久精品| 黑人操亚洲女人| 中文字幕视频一区二区三区久| 91精品无人成人www| 麻豆成人入口| 97视频免费在线看| 免费在线超碰| 欧美三级在线看| 欧美 日韩 国产 一区二区三区| 国产精品一区毛片| 99热在线播放| 国产免费拔擦拔擦8x高清在线人| 日韩精品免费在线观看| 探花国产精品一区二区| 亚洲欧美日韩国产综合在线| 中文字幕第10页| 亚洲免费观看| av在线不卡一区| 欧美aa免费在线| 欧美大肚乱孕交hd孕妇| 亚洲欧美卡通动漫| 首页欧美精品中文字幕| 尤物国产精品| 成人亚洲综合| 欧美日本在线视频中文字字幕| 天堂中文在线观看视频| 欧美色国产精品| 国产亚洲欧美精品久久久www| 91婷婷韩国欧美一区二区| 日韩xxxx视频| 欧美精品系列| 国产精品 日韩| 成人mm视频在线观看| 亚洲色图美腿丝袜| 99久久免费国产精精品| 国产精品短视频| 无码国产精品一区二区免费式直播| 久久精品30| 品久久久久久久久久96高清| 午夜不卡影院| 亚洲新声在线观看| 免费黄色片视频| 欧美国产97人人爽人人喊| 国产精品天天av精麻传媒| 综合精品久久| 日韩免费电影一区二区三区| 欧美精品高清| 欧美精品aaa| 欧美精品电影| 欧美一区永久视频免费观看| 麻豆明星ai换脸视频| 久久午夜国产精品| 国产人妖在线观看| 激情欧美一区二区三区在线观看| 女性隐私黄www网站视频| 激情欧美日韩一区| 蜜桃传媒一区二区| 中文字幕久久精品一区二区| 国产欧美日韩高清| 香蕉视频亚洲一级| 色777狠狠综合秋免鲁丝| 国产精品色综合| 亚洲一区二区3| 国产精品探花一区二区在线观看| 久久亚洲风情| 国产毛片视频网站| 国产精品一区高清| 国产在线播放不卡| 国产一区二区精品调教| 91极品视频在线| 99精品老司机免费视频| 亚洲精品一区二区在线| 少妇精品高潮欲妇又嫩中文字幕| 欧美一区二区三区喷汁尤物| 国产一区二区视频免费观看| 欧美日韩一级片在线观看| 神马久久久久久久| 日韩美女视频一区二区| 免费一级suv好看的国产网站| 国产夜色精品一区二区av| 天堂av8在线| 亚洲美女黄网| 免费拍拍拍网站| 亚洲国产电影| 日韩五码在线观看| 99av国产精品欲麻豆| 婷婷五月综合缴情在线视频| 亚洲国产精品一区| 欧美 日韩 国产在线观看| 99精品99| 欧美日韩中文在线视频| 久久都是精品| 鲁一鲁一鲁一鲁一av| 黑丝一区二区三区| 美女扒开大腿让男人桶| 一本色道久久综合| 国产成人无码一二三区视频| 日韩专区一卡二卡| 99国产精品久久久久久| 国产一区二区精品久久| 成人精品小视频| 免费人成网站在线观看欧美高清| 天堂8在线天堂资源bt| 在线免费观看欧美| 国内外成人激情视频| 综合久久一区| av在线播放天堂| 国产模特精品视频久久久久| 成年人在线看片| 久久www免费人成看片高清| 国产亚洲色婷婷久久| 99久久免费国产| 日本wwww色| 91在线观看污| 亚洲欧美高清在线| 国产日韩欧美在线一区| 欧美激情图片小说| 亚洲成人精品一区| 麻豆亚洲av熟女国产一区二| 国产精品入口麻豆原神| 加勒比婷婷色综合久久| 天天色综合成人网| 日本亚洲欧美在线| 色婷婷久久久久swag精品| 91theporn国产在线观看| 欧美精品一区二区三区四区| 爱爱爱免费视频在线观看| 欧美激情日韩图片| 亚洲91av| 国产精品96久久久久久| 亚洲校园激情春色| 成人看片人aa| 99久热在线精品视频观看| 国产精品视频一区国模私拍| 视频一区中文字幕精品| 亚洲一区二区三区四区视频| 精品国产午夜肉伦伦影院| 亚洲国产日韩美| 亚洲激情网址| 在线免费观看av网| 久久人人97超碰com| 亚洲熟女www一区二区三区| 色女孩综合影院| 久久影视中文字幕| 精品捆绑美女sm三区| 91涩漫在线观看| 欧美性受xxxx黑人猛交| 一区二区三区四区高清视频| 一区二区不卡在线视频 午夜欧美不卡'| 欧美综合一区| 成人中文字幕在线播放| 国产麻豆视频一区| 亚洲少妇中文字幕| 国产精品久久久久久久久免费丝袜| 亚洲一区欧美在线| 日韩女优电影在线观看| 麻豆视频在线观看免费网站| 欧美最猛性xxxx| 国产成人免费9x9x人网站视频| 成人区精品一区二区| 天天综合久久| jizzzz日本| 久久精品亚洲精品国产欧美 | 亚洲免费av在线| 在线视频播放大全| 91精品国产综合久久小美女| 亚洲成人久久精品| 日韩在线播放av| 99精品国自产在线| 日韩久久不卡| 日日夜夜一区二区| 欧美做受xxxxxⅹ性视频| 国产精品嫩草99a| 精品久久久久久久久久久久久久久久久久 | 色综合老司机第九色激情| 亚洲网站免费| 中文字幕日韩精品一区二区| 蜜桃久久久久久久| 东京热无码av男人的天堂| 国产精品精品国产色婷婷| 免费黄色一级大片| 国产亚洲精品久久久优势| 午夜日韩成人影院| 视频二区一区| 免费成人在线视频观看| 日本欧美一区二区三区不卡视频| 欧美性猛交xxxx乱大交蜜桃 | 日韩精品一区二区三区蜜臀 | 伦伦影院午夜理论片| 亚洲人精品午夜| a视频免费在线观看| 亚洲精品成人网| 日本视频在线免费观看| 国产色综合天天综合网 | 久久亚洲欧美日韩精品专区| av今日在线| 成人精品一区二区三区电影黑人 | 久久色在线视频| 国产成人无码一区二区在线播放| 伊人激情综合网| 国产成年精品| 日韩精品在线中文字幕| 91一区二区三区在线观看| 亚洲不卡在线视频| 中文字幕国产亚洲| 捆绑调教日本一区二区三区| 久草精品电影| 欧美精品黑人性xxxx| 亚洲欧美自拍视频| 三级精品视频久久久久| 欧州一区二区三区| 9久久9毛片又大又硬又粗| 久久久久国产精品免费免费搜索| 丰满熟女人妻一区二区三| 久久综合久久美利坚合众国| 澳门成人av| 亚洲成人av免费看| 一区二区在线免费观看| 亚洲色图欧美视频| 国产欧美一区二区三区视频 | 91在线免费播放| 姑娘第5集在线观看免费好剧| 日韩在线观看成人| 林ゆな中文字幕一区二区| 一道本在线免费视频| 亚洲第一激情av| av中文字幕一区二区三区| 国产精品日韩欧美一区二区三区| 日韩啪啪网站| 国产九九九九九| 国产精品亲子伦对白| 黄色美女一级片| 国产精品大陆在线观看| 欧美日韩蜜桃| 永久免费观看片现看| 亚洲精品www久久久| 国产精品国产三级在线观看|