More  

小編的世界 優質文選 資料

Facebook將花費數年時間完成數據庫向MySQL 8.0的遷移


2021年7月28日 - 資料小編 魚侃侃侃科技 
   

魚侃侃侃科技

運營,科技領域創作者

MySQL作為一種開源數據庫,承載著Facebook的重要工作的運行和記錄,在新版本的更新方面,每一個新的主要版本都要通過大量時間的測試完成工作量的遷移,但是在相關數據遷移的同時也面臨著一系列的挑戰。例如遷移的時間過長、複制的版本與所需要遷移的版本是否兼容、現有應用程序在查詢時需要經過相關的更改等問題,都是在數據遷移的同時需要綜合考慮到的。

距離上一次faceboo實現MySQL 5.6主要版本的升級還是花費了一年多的時間,而這次在5.6版本基礎上的優化和升級也將通過較長一段時間才能夠完成。在構建新的存儲引擎的同時,還需要兼顧升級之後新的存儲引擎系統運行的速度,經過一系列綜合的分析與測評,最終決定使用哪一個版本的存儲引擎。

至今,8.0版本的遷移已經花費了Facebook幾年的時間,目前已經初步實現了很多的副本集中轉換到8.0版本上繼續運行,但是其中大多數副本由於遷移時間過長,還處在不同的前一階段,數據的遷移尚未能夠實現完全轉移。在自定義功能領域,很多版本都已經轉移到了8.0系統,更新到新存儲引擎上面的次要版本與實現數據完全遷移相比要更加容易,伴隨著最新版本的更新,數據的遷移也需要隨著版本的更新而更新。

為了完成數據的遷移,Facebook每天都在進行著用戶數據的實時存儲,通過將邏輯備份轉變為物理備份的方式,完成了備份速度的大幅度提升,此外,定制化的物理備份也能夠將數據庫中表的結構和數據完整地保存到文本文件當中,在原有地數據遷移速度較慢的基礎之上大幅度提升遷移的效率。

新的讀取語句的方式也減少了對於磁盤性能的影響,在時間方面,由於原先較長的數據遷移周期,Facebook打算通過多個實例並發的方式來完成數據備份,從而在一定程度上大幅度縮短備份的時間,減少對於主機性能的影響。數據的物理備份則是通過操作系統層面將SQL數據的讀取保持與事務一直,增強的Xtrabackkup也能夠支持快速的表級還原和混合增量備份,以及全量和增量的備份,從而減少備份的相關空間,避免了複雜空間的運用,相關應用也將持續優化。

  大家在看