Posted on 2012-04-15 16:37
zljpp 閱讀(110)
評(píng)論(0) 編輯 收藏

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