www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號精選 > 架構(gòu)師社區(qū)
[導(dǎo)讀]堅(jiān)持思考,就會很酷存儲介質(zhì)的進(jìn)化很久以前,祖先把甲骨文寫在骨頭之上,骨頭保存持久,但是制作困難,后來把文字寫在竹簡、紙上。文字是信息,紙張、竹簡、石頭是介質(zhì),雖然它們比骨頭不易保存,但是制作簡單,更容易擴(kuò)散。存儲介質(zhì)在進(jìn)化,信息形式也在變化!世界萬物的信息在數(shù)字化,數(shù)字化的信息可...


堅(jiān)持思考,就會很酷

聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)



聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)存儲介質(zhì)的進(jìn)化

聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)

很久以前,祖先把甲骨文寫在骨頭之上,骨頭保存持久,但是制作困難,后來把文字寫在竹簡、紙上。

聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)


文字是信息,紙張、竹簡、石頭是介質(zhì),雖然它們比骨頭不易保存,但是制作簡單,更容易擴(kuò)散。

存儲介質(zhì)在進(jìn)化,信息形式也在變化!世界萬物的信息在數(shù)字化,數(shù)字化的信息可以存儲到磁學(xué)設(shè)備、光學(xué)設(shè)備、電子設(shè)備上。比如軟盤,光盤,硬盤,磁帶,固態(tài)硬盤,PCIE盤等介質(zhì)上。

聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)


物理的介質(zhì)在不斷的變化,有效信息容量越來越大,物理體積越來越小。


聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)世界太危險(xiǎn)

聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)

存儲的介質(zhì)在變化,體積越來越小,容量越來越大。唯一不變的是:無論多好的介質(zhì)總是會腐朽,只要他存在于現(xiàn)實(shí),東西變壞不以個(gè)人意志為轉(zhuǎn)移。

最關(guān)鍵的是:這是個(gè)危機(jī)四伏的世界!

奇伢見過

背鍋俠:哎呀,我運(yùn)維操作不當(dāng),vim 進(jìn)去,改了一個(gè)字節(jié)。沒事吧?

老板:沒事,你去財(cái)務(wù)結(jié)一下工資。

還見過

硬盤:哎呀,上年紀(jì)了,我比特反轉(zhuǎn)了,好像瓦特了。

夢見過(新聞見過):

天災(zāi),被雷劈了,被水淹。

更可怕的是:總有刁民想害朕。

黑客:我是黑客,為彰顯技術(shù)實(shí)力,我要搞壞他。

對于存在盤上的數(shù)據(jù)來說,這么危險(xiǎn),怎么辦?


聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)這么危險(xiǎn),可怎么辦?

聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)

它被有意修改,任何介質(zhì)都可能壞。既然改變不了,那么只能忍受它。

存進(jìn)去是 1 ,取出來是 2。這,你還要嗎?

當(dāng)然不能要!

那我還有底線嗎?

有!我可以忍受你變壞,但是不能忍受你的假。

就跟愛情一樣,不愛了,直說。著急趕著去找下一個(gè)備胎,不要假冒,拜拜就拜拜,下一個(gè)更乖。

數(shù)據(jù)壞了就說壞了,別耽誤事!


聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)怎么證明自己是自己

聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)

怎么才能證明數(shù)據(jù)好壞呢,要有第三方證人才行。怎么證明你是你?

誰來證明?別人

我們數(shù)據(jù)也是類似,數(shù)據(jù)存儲的時(shí)候,要多存一些見證的東西,能夠證明你好壞的東西。

這個(gè)證明叫做校驗(yàn)碼。然而沒有免費(fèi)的午餐,這些額外的東西是有代價(jià)的。需要更多的存儲空間,需要多余的計(jì)算時(shí)間。


聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)怎么解決?

聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)

自校驗(yàn)!

奇伢突然來了靈感,創(chuàng)造了一個(gè)“伢式算法”,每 8 字節(jié)數(shù)據(jù)對應(yīng)生成 1 個(gè)字節(jié)的校驗(yàn)。

聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)

這個(gè) nb 算法就是:p = x % 8 (嘿嘿,其實(shí)就是除余算法):

  • 用戶數(shù)據(jù) 1, 1 % 8 = 1,校驗(yàn)碼則是 1 。
  • 用戶數(shù)據(jù) 2, 2 % 8 = 2,校驗(yàn)碼則是 2 。
聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)

現(xiàn)在好了,取到數(shù)據(jù)之后,我會用計(jì)算一下校驗(yàn)碼,校驗(yàn)碼對不上的數(shù)據(jù)就是壞的。

聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)

但你可能發(fā)現(xiàn)了一個(gè)秘密,奇伢還是太年輕。不同的數(shù)據(jù)計(jì)算的校驗(yàn)碼太容易重復(fù)了。

1??%?8?=?1
9??%?8?=?1
17?%?8?=?1
這種叫做沖突,并且沖突率肉眼可見的大呀,每 8 個(gè)數(shù)字就有循環(huán)重復(fù)。

如果數(shù)據(jù)是 1 變成 9 呢?那你還知道數(shù)據(jù)是壞的嗎?

聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)

答案是:不能。

并且還有個(gè)問題:冗余數(shù)據(jù)太多了。每 8 個(gè)字節(jié),1個(gè)校驗(yàn)數(shù)據(jù)。那 8T 的數(shù)據(jù),就有 1T 的校驗(yàn)數(shù)據(jù),著實(shí)浪費(fèi)。

聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)

聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)更好的算法

聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)

怎么選一個(gè)好的算法來計(jì)算校驗(yàn)碼?一般決策者會從多個(gè)維度考慮

  1. 計(jì)算速率
  2. 資源消耗
  3. 結(jié)果沖突率
  4. 校驗(yàn)結(jié)果的冗余度
一個(gè)完美的校驗(yàn)算法應(yīng)該是:計(jì)算盡可能快,資源消耗盡可能少,沖突率僅可能小,冗余度要盡可能小。

想的美!

這是一個(gè)典型的既讓馬兒跑,又不想讓馬兒吃草的例子。

這些維度都是在相互拉鋸的,想要更快,消耗可能就會多,想要沖突率少,計(jì)算出來的校驗(yàn)值可能冗余占用就大。

奇伢給不了標(biāo)準(zhǔn)答案,具體情況具體分析!不過有些最常見的 crc32 ,md5 等算法可以滿足大部分場景需求。

還記得開源項(xiàng)目下載文件的時(shí)候,有個(gè)對應(yīng) md5 值嗎?

那就是防串改,校驗(yàn)文件是否損壞用的。


聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)冗余是唯一的出路

聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)

數(shù)據(jù)可以壞,但不可以假,這是和單機(jī)存儲引擎的約定。但是數(shù)據(jù)可靠性怎么保證?這個(gè)問題依然要解決。

冗余分身是唯一奧秘。

數(shù)據(jù)可靠性是一個(gè)系統(tǒng)工程,單點(diǎn)引擎無法徹底解決,單點(diǎn)存儲引擎能保證只給真數(shù)據(jù)不給假數(shù)據(jù),然后通過分布式的冗余,來保證整個(gè)系統(tǒng)數(shù)據(jù)對外的高可靠。

聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)


聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)總結(jié)

聊聊底線?|?壞數(shù)據(jù)與假數(shù)據(jù)

最后奇伢總結(jié)幾個(gè)基本要點(diǎn):

  1. 對于單機(jī)引擎來講,數(shù)據(jù)可以壞,但不可給假的數(shù)據(jù)出去,這是底線;
  2. 系統(tǒng)的可靠性是系統(tǒng)多組件配合打造的,核心方法是數(shù)據(jù)冗余;
  3. 校驗(yàn)數(shù)據(jù)也要考慮成本和效率;

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
關(guān)閉
關(guān)閉