拒绝安卓“卡卡卡”:华为团队详谈打造手机超级文件系统全过程( 六 )

最典型的一类导致文件破损的原因是DDR跳变。这就好比是一个突变基因,一旦碰撞到原始数据,就会“感染”导致这个文件破损,而如果恰好遇到系统性文件,就会开不了机了……真的就像定时炸弹一样,难以预测。这种不确定性,使我们没有办法穷举所有的可靠性问题。

怎么办?我们干脆反其道而行之——研究所有的故障模型,基于故障模型打免疫针,在故障还没有发生之前主动预防,阻断异常。

第三个难题有关寿命。文件系统频繁地整理,必然损耗闪存寿命。我们不贪心,不要求手机“长生不老”,只希望至少做到大家普遍能接受的三五年不坏。

影响寿命的原因有很多,核心原因之一是“过劳”——写放大。简单说就是,要在手机上“写”1兆字节的数据,为了避免掉电等异常造成的文件破损,操作系统就必须“写”进去5兆甚至是10兆的数据。我们想了很多给它减负的办法,比如通过文件系统和数据库的联合优化,让数据库和文件系统在写之前先通个气,这样它俩就不必再做重复的工作了,也就自然延长了寿命。

同时,为了准确地预估出手机的存储芯片寿命,我们还做了一个寿命预测模型。最早做出来的模型受限于采集数据渠道的影响,不够准确。有领导曾挑战过我们:“这个XX系数怎么算出来的?怎么能说这个产品发货后一年半就要出现问题呢?而且又没给出解决方案!” 但是随着更多的大数据介入后,寿命预测模型也具备了参考价值。在这个基础上,我们还有额外的一招拯救措施,比如,如果在大数据上看到这批机器的寿命确实老化得比较快,就可以推动升级,避免继续恶化。

推荐阅读