Facebook 針對 MySQL 開源 Online Schema Change 程式碼

edwardking888發表於2010-11-01

有過 MySQL 使用經驗的人應該知道,MySQL 要想線上修改個 Schema 結構是個麻煩事,規模不大的表增加個索引造成的鎖也可能導致整個 Web 應用當機。這一點沒辦法和 Oracle RDBMS 、DB2 等商業資料庫相比,甚至 PostgreSQL 也具備聯機 DML DDL 的能力。有些公司想遷移到 MySQL ,也因此而只能採取保守的做法。

不過現在這個缺陷臨近被徹底修復。Facebook 的資料庫技術團隊將 Online Schema Change (OSC) 的程式碼開源,並且撰文進行了詳盡的闡述。這是個很大的技術革新,Facebook 數千臺 MySQL 伺服器在過去增加個索引需要幾個月的滾動升級,現在只需要幾天即可。

MySQL 5.1 的 InnoDB 引擎具備 Fast Index Creation 的功能,在建立索引的時候無需複製整個表的內容,但是對於一定規模的大表增加索引,仍然需要花費大量時間,對於線上應用來說,仍然不可忍受。而 Facebook 的 OSC 則進一步進行了改進。對於 MySQL DBA 來說,這是個福音。感謝 Facebook 的員工 Vamsi Ponnekanti 的工作。如果要我說,年度 MySQL DBA 應該授予給他。當然,Online Schema Change 的部分程式碼從 Shlomi Noach 的 Openark Kit 中派生,建議 Shlomi Noach 一同獲獎...

對於 MySQL 來說,我認為這是個里程碑式的時刻,無論 Oracle 將給與 MySQL 多大的投入,其它公司已經主動拿過接力棒。Facebook 技術團隊再次立功了!

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8183550/viewspace-677138/,如需轉載,請註明出處,否則將追究法律責任。

相關文章