- 據(jù)外媒CNBC獲得的內(nèi)部文件顯示,亞馬遜遷離Oracle的數(shù)據(jù)庫(kù)使用Aurora PostgreSQL是Prime Day促銷(xiāo)日陷入癱瘓的主要原因。
- 這次故障突顯了亞馬遜希望在2020年之前完全擺脫Oracle數(shù)據(jù)庫(kù)的過(guò)程中可能面臨的挑戰(zhàn)。
- 近年來(lái)亞馬遜和Oracle在打口水仗,聲稱(chēng)自家數(shù)據(jù)庫(kù)軟件和云工具的性能更勝一籌。
亞馬遜現(xiàn)在算是領(lǐng)教了遷離Oracle數(shù)據(jù)庫(kù)軟件有多困難。
據(jù)CNBC獲得的一份內(nèi)部報(bào)告顯示,在Prime?Day促銷(xiāo)日,這個(gè)頭號(hào)電子零售商一邊忙著處理導(dǎo)致銷(xiāo)售流程減慢的重大網(wǎng)站故障,一邊忙著應(yīng)對(duì)其在俄亥俄州最大的一個(gè)倉(cāng)庫(kù)遇到的技術(shù)問(wèn)題,該技術(shù)問(wèn)題導(dǎo)致成千上萬(wàn)件包裹發(fā)貨延遲。
文件顯示,這個(gè)問(wèn)題很大程度上歸咎于亞馬遜從Oracle數(shù)據(jù)庫(kù)遷移到自家的數(shù)據(jù)庫(kù)技術(shù)。這次故障突顯了亞馬遜希望在2020年之前完全擺脫Oracle數(shù)據(jù)庫(kù)的過(guò)程中可能面臨的挑戰(zhàn),以及重新獲得這種級(jí)別的可靠性有多難。這還表明Oracle的數(shù)據(jù)庫(kù)在一些方面確實(shí)比亞馬遜的同類(lèi)軟件更高效,Oracle可能會(huì)在本周于舊金山舉行的年度OpenWorld大會(huì)上強(qiáng)調(diào)這一點(diǎn)。
Prime Day故障發(fā)生后,亞馬遜的工程師撰寫(xiě)了一份長(zhǎng)達(dá)25頁(yè)的報(bào)告,亞馬遜稱(chēng)這是糾正錯(cuò)誤。亞馬遜采用這套標(biāo)準(zhǔn)流程,試圖了解重大事故為何發(fā)生、如何防止將來(lái)重蹈覆轍。
報(bào)告顯示,亞馬遜努力查明Prime?Day問(wèn)題的根本原因,原因是數(shù)據(jù)庫(kù)遷移之后丟失了一項(xiàng)功能。文件顯示,萬(wàn)一剛安裝的數(shù)據(jù)庫(kù)(名為Aurora PostgreSQL)出現(xiàn)錯(cuò)誤,亞馬遜也未給出應(yīng)急方案。
在一個(gè)問(wèn)題中,工程師被問(wèn)及為什么亞馬遜的倉(cāng)庫(kù)數(shù)據(jù)庫(kù)沒(méi)有遇到“上一次流量高峰期間(那時(shí)使用Oracle數(shù)據(jù)庫(kù))的同一個(gè)問(wèn)題”。他們回答,“Oracle和Aurora PostgreSQL是兩種不同的[數(shù)據(jù)庫(kù)]技術(shù)”,處理“保存點(diǎn)”(savepoint)的方式不一樣。
保存點(diǎn)是一種重要的數(shù)據(jù)庫(kù)工具,用于跟蹤和恢復(fù)單個(gè)事務(wù)。報(bào)告稱(chēng),在Prime Day當(dāng)天,創(chuàng)建了數(shù)量過(guò)多的保存點(diǎn),亞馬遜的Aurora軟件不堪重負(fù),因而拖累了數(shù)據(jù)庫(kù)的整體性能。
無(wú)論如何都有可能發(fā)生
CNBC透露了文件的細(xì)節(jié)后,伊利諾伊大學(xué)厄巴納-尚佩恩分校的計(jì)算機(jī)科學(xué)教授馬特?西澤(Matt Caesar)說(shuō):“如果亞馬遜堅(jiān)持使用Oracle數(shù)據(jù)庫(kù),很可能不會(huì)發(fā)生這次故障。此外,如果亞馬遜使用Oracle的數(shù)據(jù)庫(kù),似乎能夠更早地診斷問(wèn)題,從而有望縮短故障的持續(xù)時(shí)間?!?/p>
亞馬遜的發(fā)言人在通過(guò)電子郵件發(fā)表的聲明中對(duì)這個(gè)問(wèn)題輕描淡寫(xiě),稱(chēng)沒(méi)有什么故障,盡管內(nèi)部文件聲稱(chēng)數(shù)據(jù)庫(kù)“性能降級(jí)導(dǎo)致了滯后和嚴(yán)重故障?!?/p>
發(fā)言人說(shuō):“有必要指出這一點(diǎn),那就是該倉(cāng)庫(kù)從未發(fā)生過(guò)什么故障,問(wèn)題只是導(dǎo)致了約1%的包裹出現(xiàn)短時(shí)間的發(fā)貨延遲。這個(gè)問(wèn)題很快查明并得到了解決?!?/p>
俄亥俄州的這個(gè)倉(cāng)庫(kù)是在Prime Day之前遷離Oracle數(shù)據(jù)庫(kù)的13個(gè)倉(cāng)庫(kù)中最大的一個(gè)。文件稱(chēng),在Prime Day促銷(xiāo)活動(dòng)期間,該倉(cāng)庫(kù)每天處理的包裹超過(guò)110萬(wàn)件。處理庫(kù)存和發(fā)貨數(shù)據(jù)的所有服務(wù)和軟件已統(tǒng)統(tǒng)遷移到了那些倉(cāng)庫(kù)中的Aurora數(shù)據(jù)庫(kù)上。
據(jù)報(bào)告聲稱(chēng),這次故障在Prime?Day持續(xù)了數(shù)小時(shí),導(dǎo)致15000多件包裹發(fā)貨延遲,還浪費(fèi)了約90000美元的勞動(dòng)力成本。損失不包括工程師們排除和修復(fù)錯(cuò)誤所耗費(fèi)的所有時(shí)間或任何可能錯(cuò)失的銷(xiāo)售訂單。
在報(bào)告里頭名為“汲取教訓(xùn)”的部分,亞馬遜的工程師寫(xiě)道:“保存點(diǎn)在Aurora PostgreSQL中的行為與其在Oracle中的行為不一樣”,言外之意是Oracle的軟件處理問(wèn)題更有效。報(bào)告還稱(chēng),沒(méi)有用于PostgreSQL中分析的SQL語(yǔ)句數(shù)據(jù),而要是有該數(shù)據(jù),“原本有助于查明”問(wèn)題的根本原因。
要是亞馬遜做好更充分的準(zhǔn)備,這次故障也許不那么嚴(yán)重。在文件的一個(gè)部分,該公司稱(chēng),由于“底層PostgreSQL數(shù)據(jù)庫(kù)遇到性能問(wèn)題時(shí)缺少應(yīng)對(duì)方案”,“結(jié)果花了很長(zhǎng)的時(shí)間才解決”問(wèn)題。文件還聲稱(chēng),一份“完備的應(yīng)對(duì)方案或操作手冊(cè)”原本有助于“更快地消除影響”。
哥倫比亞大學(xué)的計(jì)算機(jī)科學(xué)教授亨寧?舒爾茨萊寧(Henning Schulzrinne)看了文件后說(shuō):“我猜想,亞馬遜剛更換了數(shù)據(jù)庫(kù),并沒(méi)有測(cè)試在亞馬遜Prime?Day那天出現(xiàn)的具體的負(fù)載模式,結(jié)果大吃一驚?”。
近年來(lái),亞馬遜和Oracle一直在打口水仗,原因是亞馬遜擴(kuò)大了軟件品種,與Oracle更加正面較量了。CNBC在8月份曾報(bào)道,亞馬遜正努力在2020年初之前將整套數(shù)據(jù)庫(kù)從Oracle遷移出去。
“真的很難”
Oracle董事長(zhǎng)兼聯(lián)合創(chuàng)始人拉里?埃里森才不信亞馬遜的說(shuō)法。在該公司去年12月份的財(cái)報(bào)電話(huà)會(huì)議上,埃里森稱(chēng)亞馬遜“沒(méi)有遷離Oracle”。他在今年8月份的一次活動(dòng)中重申了觀(guān)點(diǎn),他說(shuō):“我認(rèn)為亞馬遜做不到這一點(diǎn)?!?/p>
他說(shuō):“亞馬遜有10年的時(shí)間來(lái)遷移Oracle,但現(xiàn)在仍使用Oracle。而使用自己的技術(shù)對(duì)它們來(lái)說(shuō)并不容易。那么做不具有成本效益。我的意思是,真的很難。”
市場(chǎng)研究公司Moor Insights & Strategy的首席分析師帕特里克?穆?tīng)柡诘拢≒atrick Moorhead)表示,這一事件表明,舊的應(yīng)用軟件(就像亞馬遜倉(cāng)庫(kù)中使用的那些應(yīng)用軟件)遷離Oracle有多難;幾十年來(lái),Oracle一直在與世界上最大的企業(yè)合作。
他說(shuō):“AWS Aurora是為前瞻性應(yīng)用軟件設(shè)計(jì)的,而Oracle是為較傳統(tǒng)的應(yīng)用軟件設(shè)計(jì)的?!?/p>