![]()
作者 | Renato Losio
譯者 | 田橙
Dropbox 近日介紹了其如何通過(guò)重新設(shè)計(jì)壓縮策略,提高 Magic Pocket 的存儲(chǔ)效率。Magic Pocket 是公司用于大規(guī)模存儲(chǔ)用戶文件的內(nèi)部不可變對(duì)象存儲(chǔ)系統(tǒng)。新的方案會(huì)定期將有效數(shù)據(jù)重新組織到新的存儲(chǔ)卷中,從而釋放并復(fù)用那些部分占用的舊卷空間。
正如在《Increasing Magic Pocket write throughput by removing our SSD cache disks》一文中所述,Dropbox 去年引入了一項(xiàng)新服務(wù),改變了數(shù)據(jù)在該不可變對(duì)象存儲(chǔ)中的分布方式,從而降低了后臺(tái)寫(xiě)入的寫(xiě)放大。但這一變化也帶來(lái)了一個(gè)非預(yù)期結(jié)果:數(shù)據(jù)碎片化增加。
Dropbox 的后端將文件拆分為小對(duì)象,分布存儲(chǔ)在不同服務(wù)器上,并將數(shù)據(jù)視為不可變。雖然這種設(shè)計(jì)提升了可靠性,但在文件更新或刪除時(shí),舊數(shù)據(jù)無(wú)法立即移除。Dropbox 的資深軟件工程師 Facundo Agriel 解釋道:
由于數(shù)據(jù)是不可變的,刪除操作不會(huì)立即釋放磁盤(pán)空間。舊數(shù)據(jù)仍然保留在存儲(chǔ)卷中。一旦一個(gè)卷被關(guān)閉,就不會(huì)再被重新打開(kāi)。這種權(quán)衡帶來(lái)的結(jié)果是,刪除會(huì)留下未使用空間,如果不主動(dòng)回收,這些浪費(fèi)會(huì)隨著時(shí)間不斷累積。若缺乏回收機(jī)制,存儲(chǔ)卷會(huì)逐漸變?yōu)椴糠痔畛錉顟B(tài),使有效數(shù)據(jù)分散在更多磁盤(pán)上。由此產(chǎn)生的碎片化會(huì)顯著增加存儲(chǔ)開(kāi)銷(xiāo)。
今年早些時(shí)候,Dropbox 發(fā)現(xiàn)一個(gè)名為“Live Coder”的新服務(wù)生成了大量嚴(yán)重未填滿的存儲(chǔ)卷,有些卷的使用率甚至低于 5%。這使得數(shù)據(jù)分散在大量幾乎空置的卷中,進(jìn)一步加劇了碎片化和存儲(chǔ)開(kāi)銷(xiāo),同時(shí)也暴露了現(xiàn)有壓縮系統(tǒng)的局限。
Dropbox 早期的壓縮策略在大多數(shù)存儲(chǔ)卷接近滿載時(shí)運(yùn)行良好,但當(dāng)大量卷嚴(yán)重未填滿時(shí),其效率顯著下降。為了解決這一問(wèn)題,Dropbox 重新設(shè)計(jì)了負(fù)責(zé)空間回收的系統(tǒng)。更新后的方案優(yōu)先處理效率最低的存儲(chǔ)卷,并更加精細(xì)地管理清理任務(wù),以避免對(duì)系統(tǒng)資源造成壓力。Agriel 補(bǔ)充道:
壓縮過(guò)程負(fù)責(zé)執(zhí)行物理層面的空間回收。由于卷在關(guān)閉后無(wú)法修改,我們會(huì)從這些卷中收集仍然有效的數(shù)據(jù)塊(blob),將其寫(xiě)入新的卷,并淘汰舊卷。這就是刪除最終轉(zhuǎn)化為可復(fù)用空間的方式。
新的壓縮策略被稱為 L2,當(dāng)大量存儲(chǔ)卷處于低填充狀態(tài)時(shí),它可以更快地回收空間。與之前逐步填滿已有高密度卷的方法不同,L2 會(huì)將多個(gè)稀疏卷合并為一個(gè)接近滿載的卷,從而加快空間回收速度。
![]()
Dropbox Magic Pocket
Dropbox 還引入了第三種壓縮策略 L3,用于處理那些極度未填滿、此前方法難以高效回收的存儲(chǔ)卷。該策略通過(guò) Live Coder 服務(wù),將這些稀疏卷中剩余的有效數(shù)據(jù)流式遷移,并逐步重寫(xiě)到新的糾刪碼(erasure-coded)卷中。
在 Dropbox 的不可變存儲(chǔ)系統(tǒng)中,壓縮通過(guò)將有效數(shù)據(jù)重寫(xiě)到新卷并淘汰舊卷來(lái)回收磁盤(pán)空間,而糾刪碼則通過(guò)將數(shù)據(jù)拆分為多個(gè)片段并附加校驗(yàn)塊來(lái)防止硬件故障,在部分?jǐn)?shù)據(jù)丟失時(shí)仍可恢復(fù)。
在 Hacker News 的討論中,一些用戶質(zhì)疑該產(chǎn)品的可用性(“如此出色的工程工作卻被一個(gè)問(wèn)題重重的產(chǎn)品所掩蓋”)以及其定價(jià),也有人對(duì)大型公司中所謂“非預(yù)期后果”的說(shuō)法提出疑問(wèn)。用戶 nopurpose 寫(xiě)道:
我原以為這種體量的公司,在動(dòng)這種會(huì)影響巨額基礎(chǔ)設(shè)施成本的改動(dòng)前,都會(huì)拿生產(chǎn)數(shù)據(jù)反復(fù)建模推演……結(jié)果發(fā)現(xiàn)也差不多:先發(fā)了再說(shuō),看看哪兒先炸。
Agriel 在討論中回應(yīng)稱,大規(guī)模系統(tǒng)的運(yùn)行往往是緩慢且不均勻的,這使得基礎(chǔ)設(shè)施變更帶來(lái)的影響難以及時(shí)察覺(jué)。
正如 InfoQ 此前報(bào)道,Magic Pocket 是 Dropbox 自研的對(duì)象存儲(chǔ)系統(tǒng),具備橫向擴(kuò)展能力,可支持 EB 級(jí)規(guī)模,已替代 Amazon S3,提供 99.99% 的可用性和極高的數(shù)據(jù)持久性。Agriel 曾在 QCon Plus 2023 上介紹過(guò) Magic Pocket 的實(shí)現(xiàn)。
https://www.infoq.com/news/2026/04/dropbox-tiered-compaction/
聲明:本文由 InfoQ 翻譯,未經(jīng)許可禁止轉(zhuǎn)載。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.