Oracle12c R2:利用分片技術(shù)提升分布式性能
Oracle 12c R2最近發(fā)布的版本支持?jǐn)?shù)據(jù)庫分片功能,該功能意在提升Oracle旗艦數(shù)據(jù)庫在云架構(gòu)環(huán)境中的性能,從數(shù)據(jù)庫水平擴(kuò)展框架中獲益。
在云環(huán)境中提升數(shù)據(jù)擴(kuò)展性對Oracle來說非常重要,因?yàn)镺racle在從內(nèi)部構(gòu)建環(huán)境遷移到云環(huán)境的過程中會(huì)承擔(dān)更多負(fù)載,同時(shí)會(huì)要求成本更低。
Oracle分片功能吸取了Cassandra、MongoDB和Amazon DynamoDB這些NoSQL數(shù)據(jù)庫的長處。這些數(shù)據(jù)庫以及其它一些NoSQL數(shù)據(jù)庫都支持分片技術(shù),使得數(shù)據(jù)庫可以水平跨多個(gè)服務(wù)器部署。
該技術(shù)不僅局限在NoSQL,在許多主流關(guān)系數(shù)據(jù)庫中也是支持的,例如PostgreSQL和MySQL數(shù)據(jù)庫。
在Oracle 2016年全球大會(huì)上的Oracle數(shù)據(jù)庫路線地圖討論會(huì)上,Oracle公司負(fù)責(zé)數(shù)據(jù)庫服務(wù)器技術(shù)的執(zhí)行副總裁Andrew Mendelsohn表示:“Amazon采用分片技術(shù)已經(jīng)許多年了”。不過,他指責(zé)Amazon的實(shí)現(xiàn)需要太多人工干預(yù)。
有許多分片方案需要應(yīng)用程序代碼控制很多活動(dòng)。Mendlesohn說,Oracle使用的是本地?cái)?shù)據(jù)庫分片架構(gòu),減少了數(shù)據(jù)庫管理系統(tǒng)的控制工作,節(jié)省了開發(fā)時(shí)間。
他補(bǔ)充說,Oracle最初策略是支持跨一千臺服務(wù)器分片,但是預(yù)計(jì)支持能力還要擴(kuò)展。
服務(wù)器場環(huán)境分片應(yīng)用
Facebook運(yùn)行開源關(guān)系型數(shù)據(jù)庫MySQL數(shù)據(jù)庫數(shù)據(jù)場中大量使用了分片技術(shù)?;蛟S這很令人驚訝,不過這家社交媒體巨頭也使用Oracle數(shù)據(jù)庫,用于財(cái)務(wù)和運(yùn)營應(yīng)用系統(tǒng)。Sudhi Vijayakumar是Facebook公司數(shù)據(jù)庫系統(tǒng)架構(gòu)師,他在Oracle全球大會(huì)分片技術(shù)分會(huì)上交流時(shí)提到了以上信息。
Vijayakumar曾與Oracle公司工程師一起工作過,一直在準(zhǔn)備數(shù)據(jù)集市的概念驗(yàn)證實(shí)施,將實(shí)現(xiàn)準(zhǔn)實(shí)時(shí)報(bào)表生成。他說:“我們期待Oracle實(shí)現(xiàn)分片技術(shù)。”
他建議Oracle分片能支持應(yīng)用增長需求,無需額外人員來管理。通常傳統(tǒng)企業(yè)比較關(guān)注這個(gè)目標(biāo),像Facebook這種使用云環(huán)境的標(biāo)桿企業(yè)關(guān)注這方面還是比較少見的。
Oracle創(chuàng)新進(jìn)退維谷
Oracle分片可以使用公司的RAC(實(shí)時(shí)應(yīng)用集群),也可以不用。這些集群使用了共享磁盤的方式提供了我們熟悉的關(guān)系型數(shù)據(jù)一致性,Oracle用這種方式擴(kuò)展數(shù)據(jù)庫已經(jīng)有好多年了。
很多人認(rèn)為RAC方式關(guān)聯(lián)成本過于昂貴,在許多情況下,軟件架構(gòu)師會(huì)構(gòu)建超大規(guī)模云。而且,大部分工作可以通過“最終一致性”得以滿足。這樣公司就可以在打造許多分布式數(shù)據(jù)技術(shù)的同時(shí),比較廣泛的使用分片技術(shù)。
Guy Harrison是澳大利亞墨爾本的位獨(dú)立咨詢顧問和作家。他認(rèn)為,對于大規(guī)模擴(kuò)展分片技術(shù)是比RAC更好的架構(gòu)。RAC更多依賴于縱向擴(kuò)展,而不是橫向擴(kuò)展;RAC需要使用獨(dú)立于數(shù)據(jù)庫節(jié)點(diǎn)的共享磁盤系統(tǒng)。
他說:“使用分片技術(shù),每個(gè)節(jié)點(diǎn)都有自己的磁盤,磁盤可能直接在商用服務(wù)器上。如果你需要添加節(jié)點(diǎn),可以一并添加磁盤、CPU和內(nèi)存,使用更廉價(jià)的商用‘pizza box’服務(wù)器。”(pizza box 服務(wù)器這里表示普通廉價(jià)的服務(wù)器。)
他說,節(jié)點(diǎn)之間需要的協(xié)作較少,當(dāng)然也取決于應(yīng)用程序。這種架構(gòu)缺點(diǎn)是集群范圍內(nèi)的查詢效率會(huì)較低,一致性稍差,跨集群實(shí)現(xiàn)真正的ACID一致性是很難維護(hù)的。
Harrison對于現(xiàn)在從內(nèi)部部署應(yīng)用和數(shù)據(jù)庫遷移向云環(huán)境的整體趨勢幾乎沒有什么疑問。他表示,數(shù)據(jù)庫是***遷移到云端的部分,通常數(shù)據(jù)庫會(huì)根據(jù)應(yīng)用的情況進(jìn)行考慮。
他說:“在許多情況下,人們要構(gòu)建新東西時(shí),會(huì)在內(nèi)部花大價(jià)錢購置大量硬件和從云端獲取方便的服務(wù)之間做比較。這不是一個(gè)太艱難的決定。與你可以在云環(huán)境中租用到的環(huán)境相比,構(gòu)建這些基礎(chǔ)設(shè)施是非常昂貴的。”
Harrison說,他對Oracle數(shù)據(jù)庫向云遷移很感興趣。不過,與其他人一樣,他也期望向云遷移能帶來相應(yīng)的經(jīng)濟(jì)效益。
“在某種程度上,他們要獲得比內(nèi)部部署更好的收益。如果沒有一點(diǎn)利益,想讓他們的用戶遷移到云環(huán)境是很困難的。所以,這是個(gè)棘手的問題。”