Pivotal 發(fā)表于:13年12月31日 09:53 [來稿] DOIT.com.cn
2013年12月31日存儲(chǔ)在線報(bào)道:“通過技術(shù)改造解決了困擾我們多時(shí)的尖峰高流量并發(fā)問題,讓全國人民不再因?yàn)榧夹g(shù)原因而抱怨,我們終于舒了一口氣。Pivotal GemFire分布式集群內(nèi)存數(shù)據(jù)技術(shù)對(duì)整個(gè)技術(shù)改造發(fā)揮了關(guān)鍵的作用。同時(shí),感謝Pivotal公司及其實(shí)施方項(xiàng)目團(tuán)隊(duì)的努力,在技術(shù)開改造過程中確保舊系統(tǒng)順暢運(yùn)行、舊系統(tǒng)到新系統(tǒng)平滑遷移,快速實(shí)現(xiàn)新系統(tǒng)的上線。”
--中國鐵道科學(xué)研究院電子計(jì)算技術(shù)研究所副所長朱建生
背景和需求
中國鐵路客戶服務(wù)中心網(wǎng)站(www.12306.cn)是世界規(guī)模最大的實(shí)時(shí)交易系統(tǒng)之一,媲美Amazon.com,節(jié)假日尤其是春節(jié)的訪問高峰,網(wǎng)站壓力巨大。據(jù)統(tǒng)計(jì), 在2012年初的春運(yùn)高峰期間,每天有2000萬人訪問該網(wǎng)站,日點(diǎn)擊量最高達(dá)到14億。大量同時(shí)涌入的網(wǎng)絡(luò)訪問造成12306幾近癱瘓。 中國鐵道科學(xué)院電子計(jì)算技術(shù)研究所作為12306互聯(lián)網(wǎng)購票系統(tǒng)的承建單位,急需尋求辦法解決問題。
成功解決:速度提高75倍以上
2012年3月開始,鐵路總公司(原鐵道部)開始調(diào)研、改造12306。2012年6月選擇了Pivotal GemFire分布式內(nèi)存計(jì)算平臺(tái)(Distributed In-memory computing)改造12306,由鐵科院項(xiàng)目小組負(fù)責(zé)人王明哲主任和資拓宏宇(IISI)信息科技有限公司在鐵科院主管朱建生所長領(lǐng)導(dǎo)下提供技術(shù)實(shí)施。一期先改造12306的主要瓶頸--余票查詢系統(tǒng)。9月份完成代碼改造,系統(tǒng)上線。2012年國慶,又是網(wǎng)上訂票高峰期間,大家可以顯著發(fā)現(xiàn),可以登錄12306,雖然還是很難訂票,但是查詢余票很快。2012年10月份,二期用GemFire改造訂單查詢系統(tǒng)(客戶查詢自己的訂單記錄)。2013年春節(jié),又是網(wǎng)上訂票高峰期間,大家可以顯著發(fā)現(xiàn),可以登錄12306,雖然還是很難訂票,但是查詢余票很快,而且查詢自己的訂票和下訂單也很快。
根據(jù)系統(tǒng)運(yùn)行數(shù)據(jù)記錄,技術(shù)改造之后,在只采用10幾臺(tái)X86服務(wù)器實(shí)現(xiàn)了以前數(shù)十臺(tái)小型機(jī)的余票計(jì)算和查詢能力,單次查詢的最長時(shí)間從之前的15秒左右下降到0.2秒以下,縮短了75倍以上。2012年春運(yùn)的極端高流量并發(fā)情況下,系統(tǒng)幾近癱瘓。而在改造之后,支持每秒上萬次的并發(fā)查詢,高峰期間達(dá)到2.6萬個(gè)查詢/秒吞吐量,整個(gè)系統(tǒng)效率顯著提高。如上圖所示。
訂單查詢系統(tǒng)改造,在改造之前的系統(tǒng)運(yùn)行模式下,每秒只能支持300-400個(gè)查詢/秒的吞吐量,高流量的并發(fā)查詢只能通過分庫來實(shí)現(xiàn)。改造之后,可以實(shí)現(xiàn)高達(dá)上萬個(gè)查詢/秒的吞吐量,而且查詢速度可以保障在20毫秒左右。
新的技術(shù)架構(gòu)可以按需彈性動(dòng)態(tài)擴(kuò)展,并發(fā)量增加時(shí),還可以通過動(dòng)態(tài)增加X86服務(wù)器來應(yīng)對(duì),保持毫秒級(jí)的響應(yīng)時(shí)間。
夢里尋它:技術(shù)革命一步跨越三代
12306能夠取得這樣翻天覆地的效果,靠技術(shù)上的小修小補(bǔ)是不可能的,必須有全新的思路,能夠給性能提升帶來杠桿式的作用。12306發(fā)現(xiàn)GemFire分布式內(nèi)存數(shù)據(jù)平臺(tái)就是這樣一種技術(shù)。
GemFire分布式內(nèi)存數(shù)據(jù)平臺(tái)的技術(shù)原理如上圖所示:通過云計(jì)算平臺(tái)虛擬化技術(shù),將若干X86服務(wù)器的內(nèi)存集中起來,組成最高可達(dá)數(shù)十TB的內(nèi)存資源池,將全部數(shù)據(jù)加載到內(nèi)存中,進(jìn)行內(nèi)存計(jì)算。計(jì)算過程本身不需要讀寫磁盤,只是定期將數(shù)據(jù)同步或異步方式寫到磁盤。GemFire在分布式集群中保存了多份數(shù)據(jù),任何一臺(tái)機(jī)器故障,其它機(jī)器上還有備份數(shù)據(jù),因此通常不用擔(dān)心數(shù)據(jù)丟失,而且有磁盤數(shù)據(jù)作為備份。GemFire支持把內(nèi)存數(shù)據(jù)持久化到各種傳統(tǒng)的關(guān)系數(shù)據(jù)庫、Hadoop庫和其它文件系統(tǒng)中。
大家知道,當(dāng)前計(jì)算架構(gòu)的瓶頸在存儲(chǔ),處理器的速度按照摩爾定律翻番增長,而磁盤存儲(chǔ)的速度增長很緩慢,由此造成巨大高達(dá)10萬倍的差距(如上圖)。這樣就很好理解GemFire為什么能夠大幅提高系統(tǒng)性能了。
按照計(jì)算與存儲(chǔ)的關(guān)系,我們可以將計(jì)算架構(gòu)分為四代:
第一代,基于磁盤的單一系統(tǒng):計(jì)算過程中需要從磁盤讀取數(shù)據(jù)。小型機(jī)、大型機(jī)是其中的佼佼者,將單一系統(tǒng)的性能做到極致。
第二代,基于磁盤的分布式集群系統(tǒng):計(jì)算過程中需要從磁盤讀取數(shù)據(jù),但通過分布系統(tǒng)將數(shù)據(jù)分散到不同的服務(wù)器磁盤上,提高整個(gè)系統(tǒng)的處理能力。目前很多大型互聯(lián)網(wǎng)和電子商務(wù)公司采用基于X86服務(wù)器的分布式集群系統(tǒng),依靠海量的X86服務(wù)器部署解決高流量并發(fā)的問題。
第三代,基于內(nèi)存的單一系統(tǒng):將整個(gè)數(shù)據(jù)庫放在內(nèi)存中,計(jì)算過程不需要從磁盤讀取數(shù)據(jù)。整個(gè)系統(tǒng)的性能取決于單一系統(tǒng)的性能。傳統(tǒng)的內(nèi)存數(shù)據(jù)庫就是這樣的系統(tǒng),對(duì)于企業(yè)級(jí)的應(yīng)用可以很好地解決訪問速度的問題,但面對(duì)海量數(shù)據(jù)或是海量并發(fā)訪問的擴(kuò)展性問題就無能為力。
第四代,基于內(nèi)存的分布式集群系統(tǒng):GemFire就是這樣的系統(tǒng),并行計(jì)算是其關(guān)鍵技術(shù)之一,因而可以通過增加服務(wù)器部署規(guī)模,在內(nèi)存計(jì)算的基礎(chǔ)上,線性擴(kuò)展性能。
12306之前采用Unix小型機(jī)架構(gòu),采用GemFire技術(shù)改造成Linux/X86服務(wù)器集群架構(gòu),就意味著一下跨越三代。從小型機(jī)到大內(nèi)存X86服務(wù)器集群,不僅讓性能提升了一個(gè)數(shù)量級(jí),而且成本也要低得多。
GemFire是Pivotal企業(yè)級(jí)大數(shù)據(jù)PaaS平臺(tái)的一部分。Pivotal公司的企業(yè)級(jí)大數(shù)據(jù)PaaS平臺(tái)主要有三個(gè)層次:云基礎(chǔ)架構(gòu)層Cloud Fabric、大數(shù)據(jù)基礎(chǔ)架構(gòu)層Data Fabric、應(yīng)用開發(fā)基礎(chǔ)架構(gòu)層Application Fabric。GemFire屬于大數(shù)據(jù)基礎(chǔ)架構(gòu)層,此外,Greenplum數(shù)據(jù)庫也屬于這一層;云基礎(chǔ)架構(gòu)層的技術(shù)是Cloud Foundry;應(yīng)用開發(fā)基礎(chǔ)架構(gòu)層的技術(shù)是Spring Framework和RabbitMQ等。
公司簡介 | 媒體優(yōu)勢 | 廣告服務(wù) | 客戶寄語 | DOIT歷程 | 誠聘英才 | 聯(lián)系我們 | 會(huì)員注冊(cè) | 訂閱中心
Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技術(shù)有限公司 版權(quán)所有.