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

MySQL

作為一種開源

資料庫

,承載著

Facebook

的重要工作的執行和記錄,在新版本的更新方面,每一個新的主要版本都要透過大量時間的測試完成工作量的遷移,但是在相關資料遷移的同時也面臨著一系列的挑戰。例如遷移的時間過長、複製的版本與所需要遷移的版本是否相容、現有應用程式在查詢時需要經過相關的更改等問題,都是在資料遷移的同時需要綜合考慮到的。

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

點選載入圖片

距離上一次faceboo實現MySQL 5。6主要版本的升級還是花費了一年多的時間,而這次在5。6版本基礎上的最佳化和升級也將透過較長一段時間才能夠完成。在構建新的儲存引擎的同時,還需要兼顧升級之後新的儲存引擎系統執行的速度,經過一系列綜合的分析與測評,最終決定使用哪一個版本的儲存引擎。至今,8。0版本的遷移已經花費了Facebook幾年的時間,目前已經初步實現了很多的副本集中轉換到8。0版本上繼續執行,但是其中大多數副本由於遷移時間過長,還處在不同的前一階段,資料的遷移尚未能夠實現完全轉移。在自定義功能領域,很多版本都已經轉移到了8。0系統,更新到新儲存引擎上面的次要版本與實現資料完全遷移相比要更加容易,伴隨著最新版本的更新,資料的遷移也需要隨著版本的更新而更新。

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

點選載入圖片

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

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

點選載入圖片

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

相關文章