推ter 將其使用的 MySQL 開源
新聞來源:推ter官方博客
MySQL 是被廣泛使用的一個數據庫,但是 Web 開發人員會在大規模訪問時的數據庫擴展以及性能方面遇到問題。這也是近年來 NoSQL 數據庫開始出現并逐漸繁榮的一個原因。對于關注 MySQL 可擴展性的 DBA 人員來說,當然非常希望看到像 推ter 這樣的網站是怎樣運用和優化 MySQL 的。
Jeremy Cole 和 Davi Arnaut 是 推ter DBA 和 DB 開發組的成員,他們表示, 大部分 推ter 數據都采用了 MySQL 作為持久化存儲,包括發表的 Tweets、興趣圖、時間線,以及用戶數據。由于 推ter 的數據規模和訪問規模, 他們不得不對 MySQL 源碼進行修改優化以適應這種級別的應用。為了回饋社區,他們決定在 BSD 許可證下開源他們對 MySQL 所做的貢獻。項目托管在 GitHub,主要的修改包括:
- 增加狀態變量,特別是在 InnoDB 引擎內。這樣能更有效地監控系統負載和運行狀態。
- 在非一致性內存訪問系統中優化內存分配。在初始化時就分配 InnoDB 的緩存池,如果內存不足則可迅速獲得錯誤報告,這樣在服務器面臨內存壓力時也能保證性能穩定。
- 減少查詢超時中一些不必要的操作。這樣服務器可以在毫秒級別主動取消耗時過長的查詢。
- 以一種輕量的方式導入導出 InnoDB 的緩存池。這樣可以讓我們以最小的代價執行回滾。
- 針對 SSD 固態硬盤進行優化,包括 page-flushing 以及減少寫操作以改善 SSD 硬盤壽命。
另外在4月12日,推ter 還將對 Gizzard, 一個 MySQL 的分片復制框架進行詳細介紹。如果有任何問題,都可以在 GitHub 上向他們提 issue。
本文轉載自: cnbeta
本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!