消息稱,Twitter決定開放其MySQL數據庫源代碼。Twitter DBA和DB開發組的成員Jeremy Cole和Davi Arnaut表示,大部分Twitter數據都采用了MySQL作為持久化存儲,包括興趣圖、時間線、Tweets以及用戶數據。
由于Twitter的數據規模和訪問規模,他們不得不對MySQL源碼進行修改優化以適應這種級別的應用。為了回饋社區,他們決定在基于BSD許可證下開源MySQL。項目托管在GitHub上。
在該博客中,還列出了Twitter在MySQL上的主要改進工作,包括:
- 增加狀態變量,特別是在InnoDB引擎內。這樣能更有效地監控系統負載和運行狀態。
- 在非一致性內存訪問系統中優化內存分配。在初始化時就分配InnoDB的緩存池,如果內存不足則可迅速獲得錯誤報告,這樣在服務器面臨內存壓力時也能保證性能穩定。
- 減少查詢超時中一些不必要的操作,這樣服務器可以在毫秒級別主動取消耗時過長的查詢。
- 以一種輕量的方式導入導出InnoDB的緩存池。這樣可以讓我們以最小的代價執行回滾。
- 針對SSD固態硬盤進行優化,包括page-flushing以及減少寫操作以改善SSD硬盤壽命。
英文鏈接:engineering.twitter.com(無法正常訪問)