淺談在MySQL應用上的挑戰(zhàn)
大?。?/span>0.05 MB 人氣: 2017-10-11 需要積分:1
標簽:MySQL(25720)
2016年4月22日-23日,由CSDN重磅打造的數(shù)據(jù)庫核心技術與實戰(zhàn)應用峰會、互聯(lián)網(wǎng)應用架構實戰(zhàn)峰會將在深圳舉行。這是繼3月中旬,SDCC之架構&數(shù)據(jù)庫峰會在上海圓滿收官后的再一次相聚。上海站上,18位技術講師給超過500名的現(xiàn)場參會者帶來了精彩分享,火爆程度超出主辦方想象。
即將到來的SDCC深圳技術峰會講師陣容強大,主辦方邀請了來自于百度、阿里、騰訊、滴滴出行、攜程、平安科技、AdMaster、華為、京東、唯品會、一號店、中國電信、閱文集團等公司的技術骨干、首席架構師來為與會者分享演講和交流,必定是一場技術人的饕餮盛宴?!灸壳跋迺r6折,點擊這里搶票】
在即將到來的SDCC深圳技術峰會召開之際,由CSDN負責數(shù)據(jù)庫技術領域的小編采訪了一些參會講師,談談他們將在本次活動所分享的內容。
騰訊高級軟件工程師 雷海林
本期采訪的講師是來自騰訊高級軟件工程師 雷海林,他有著10年以上的Linux后臺Server開發(fā)經(jīng)驗,目前主要從事分布式Cache、實時大數(shù)據(jù)處理引擎,分布式MySQL(TDSQL)設計和開發(fā)工作。
他將在SDCC 2016 深圳站之數(shù)據(jù)庫峰會上分享的主題是《 騰訊金融云數(shù)據(jù)庫備份恢復原理與實踐 》,全部數(shù)據(jù)庫技術峰會講師情況和議題等可參見:SDCC深圳站數(shù)據(jù)庫/大數(shù)據(jù)專場講師議題全公布。
以下是專訪內容:
CSDN:首先請簡單介紹下您和您所在的公司,以及目前所負責的領域。
雷海林:我叫雷海林,現(xiàn)任職于騰訊公司TEG計費平臺部,目前是騰訊金融級高一致性分布式數(shù)據(jù)庫TDSQL的技術負責人。
CSDN:騰訊作為業(yè)內知名企業(yè),您在騰訊擔任高級軟件工程師以來,有沒有給您留下印象深刻的人或事呢?
雷海林:加入騰訊公司以來,從最初的很簡單的后臺Server開發(fā)開始,中途經(jīng)歷了各種跨IDC,跨城容災技術方案的挑戰(zhàn),然后再到高一致性分布式Cache,實時大數(shù)據(jù)引擎的開發(fā),最后又因為SSD技術的大量普及和團隊對分布式數(shù)據(jù)庫的要求,很幸運與小伙伴們一起實現(xiàn)了TDSQL,感覺技術是需要持續(xù)積累和堅持,要時刻擁抱變化,這樣機會來的時候才能及時抓住。
CSDN:在開發(fā)過程中,您和您的團隊遇到哪些技術難點,并且每個階段又是如何克服的呢?
雷海林:我目前印象比較深的有如下幾個方面:
我們團隊雖然使用MySQL有上10年的歷史了,但是真正在做TDSQL的時候發(fā)現(xiàn)大家在MySQL源碼的積累上還是不多的,所以在做的過程是充滿了不確定性和忐忑,比如需要某個功能,那么不確定業(yè)界是否已經(jīng)有相關的討論或者補丁,自己做修改是否能融入MySQL等等,出現(xiàn)這些問題都是源于我們對MySQL缺乏足夠的了解,同時MySQL又已經(jīng)非常龐大了,因此我們需要補足這塊的知識。最終我們是采用7*12的工作制連續(xù)封閉了3個多月,仔細閱讀MySQL手冊,閱讀各種關于MySQL內核,高可用技術,MySQL運營優(yōu)化相關的書籍和博客,分模塊熟悉MySQL代碼等等,再逐漸引入對MySQL,Pg,Oracle等數(shù)據(jù)庫熟悉和感興趣的同事,最后才感覺入門了,可以動MySQL了,當然現(xiàn)在還需要不斷地學習。
高一致性的改造:其實在做TDSQL之前,為了避免數(shù)據(jù)丟失,業(yè)界大部分采用的方案是半同步和Galera集群技術,但是我們在經(jīng)歷大量測試過程中,發(fā)現(xiàn)在數(shù)據(jù)一致性,跨IDC性能方面還是存在不少問題,而我們團隊以前積累的高一致性切換技術又沒法直接套用,同時發(fā)現(xiàn)MySQL在金融領域也沒有太多的成功案例可以參考,所以是很糾結和苦惱的,但是大家都意識到NoSQL是很有局限性的,基于MySQL的高一致性改造方案是必須搞的,最終我們靜下心來,仔細研究CAP理論并結合我們多年的后臺開發(fā)經(jīng)驗,最終找到的解決方案是在MySQL開啟線程池的情況下,通過異步化改造是可以實現(xiàn)性能的提升,同時結合我們以前在高一致性的技術積累引入容災調度,選舉,閃回等技術最終實現(xiàn)了目前的強同步架構,一方面保證了跨IDC的高性能,同時保證了單IDC故障能自動切換,并且能保證事務零丟失。
分布式方案:MySQL采用的share nothing架構,在互聯(lián)網(wǎng)大數(shù)據(jù)量的場景下主要靠業(yè)務層來做水平和垂直拆分,犧牲了很多關系數(shù)據(jù)庫的精髓。為了讓業(yè)務層能得到解放,必須將這個工作放到數(shù)據(jù)庫層來實現(xiàn),目前解決方案都是通過引入中間件來解決這個問題,當然TDSQL也是采用這個思路;在做TDSQL之前我們已經(jīng)有不少在NoSQL下自動Shard的方案,所以我們當時也是直接采用這個思路,讓TDSQL的分表完全不需要業(yè)務干預,集群根據(jù)表的大小,CPU/IO利用率等情況來做自動Shard,讓開發(fā)人員完全放棄事務和Join,發(fā)現(xiàn)推廣起來非常不順利,同時DBA運營起來發(fā)現(xiàn)數(shù)據(jù)分布特別靈活,在做備份恢復等操作都很不方便,總體而言這個方案過于理想化,實踐中是失敗的。既然意識到問題所在,我們立即調整思路,多聽下客戶(如Webank,部門的業(yè)務團隊)的意見,再仔細分析分布式與數(shù)據(jù)庫傳統(tǒng)特性如事務,Join等結合的難點,所以我們得出結論這塊是需要找一個平衡點的,最終提出的解決方案是放棄靈活的自動shard方案,支持將具有同樣shard key的庫表做成一個group,在數(shù)據(jù)擴容,縮容的過程當成一個整體來搬遷,在一個group內盡量完整支持數(shù)據(jù)庫的事務和Join等特性,對于這套方案,客戶都很容易理解和使用,目前推廣起來就順利多了。
CSDN:能否結合您多年的實戰(zhàn)經(jīng)驗,談談對MySQL未來發(fā)展的前景,分享下您對未來數(shù)據(jù)庫相關領域的一些看法?
雷海林:目前MySQL的使用量非常龐大,國內外BAT,網(wǎng)易,Google,F(xiàn)acebook等大型互聯(lián)網(wǎng)公司都有基于MySQL進行定制化改造,并且將改造的原理和代碼基本上都反饋到了社區(qū)或者以博客,技術大會等形式進行了介紹,所以在這個領域大家都能提升的非???。而Oracle的官方MySQL,Percona,Mariadb作為主流的MySQL分支在商業(yè)利益的競爭驅動下也會竭盡全力地開發(fā)新功能和做性能優(yōu)化,適配新的硬件等等,所以我對MySQL的發(fā)展非??春?,相信每年都會有亮點出現(xiàn)。接下來重點應該會在SQL執(zhí)行計劃的優(yōu)化,引擎層的性能優(yōu)化,在線DDL,可運營型和分布式中間件方面持續(xù)發(fā)力。
CSDN:作為前輩,您覺得如何才能更好的掌握數(shù)據(jù)庫這門技術?
雷海林:數(shù)據(jù)庫作為與操作系統(tǒng),編譯器并列的系統(tǒng)軟件,涉及到的理論知識,代碼實現(xiàn)和運營管理都是需要大量時間的學習才能掌握的好的,我想初期應該是重點研究數(shù)據(jù)庫的用戶手冊和Innodb引擎的手冊,重點要先對基本功能有個清晰的了解和驗證,對各個參數(shù)和狀態(tài)字段盡量了解含義,然后再根據(jù)興趣可以找一些數(shù)據(jù)庫內核分析的書籍和文章來學習并驗證,同時因為MySQL是個開源軟件,所以根據(jù)興趣也可以找代碼來分析了,當然前期通過3.x版本的代碼入手可能更好一點;總而言之,數(shù)據(jù)庫技術是一門實踐性很強的技術,需要能靜下心來投入大量時間來琢磨,只要努力,隨時都能讓你提高。
CSDN:除了這些以外,您最近還會關注哪些技術?
雷海林:我最近比較關注高性能的后臺開發(fā),分布式技術的理論和分布式消息隊列,也對go語言非常感興趣。
CSDN:在本次SDCC 2016(深圳站)數(shù)據(jù)庫峰會上,您分享的話題是?
雷海林:我是一個開發(fā)人員,對于常用的東西都喜歡搞懂它的原理,所以我這次的分享主要是關于各種備份技術的底層原理和優(yōu)缺點介紹,最后再介紹下TDSQL目前采用的方案和后期可能的優(yōu)化方向,也希望借此機會,跟業(yè)內其他數(shù)據(jù)庫團隊交流交流。
CSDN:您最期待在SDCC 2016(深圳站)峰會上看到哪些內容?
雷海林:希望不要提太高大上的東西,所有話題能站在聽眾的角度分享的內容是可以容易被復制和學習的。
?
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
下載地址
淺談在MySQL應用上的挑戰(zhàn)下載
相關電子資料下載
- 常用于緩存處理的機制總結 如何避免緩存雪崩問題? 24
- SpringBoot物理線程、虛擬線程、Webflux性能比較 37
- mysql經(jīng)典面試題及答案 63
- 聊聊即將到來的MySQL5.7停服事件 179
- 基于Prometheus開源的完整監(jiān)控解決方案 25
- 基于控制臺的通訊錄管理系統(tǒng)功能介紹 59
- 什么是數(shù)據(jù)庫?除了MySQL還有哪些數(shù)據(jù)庫? 36
- 超好用的開源IP地址管理系統(tǒng),告別傳統(tǒng)Excel統(tǒng)計方式! 146
- Innodb中的Btree實現(xiàn)(一)·引言&insert篇 65
- 怎么查看MySQL語句有沒有用到索引 190