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