向永清:沒有了ORACLE,亞馬遜的數據倉庫宕機了!

據CNBC獲取內部文件顯示,因為拋棄ORACLE,導致亞馬遜最大的數據倉庫之一在會員日的黃金時刻宕機。亞馬遜計劃在2020年之前完全替換ORACLE,目前來看挑戰不少。今年來,隨著亞馬遜的雲計算戰略升級,亞馬遜和ORACLE的競爭形勢和火藥味也在升級。

向永清:沒有了ORACLE,亞馬遜的數據倉庫宕機了!

亞馬遜正在全面實施他的去ORACLE戰略。CNBC獲得的一份內部報告顯示,在超級會員日,由於亞馬遜內部一個重要的數據倉庫宕機,導致數千件包裹傳遞延遲。文件顯示,主要問題出在亞馬遜將數據倉庫從ORACLE體系切換至自己的技術體系。這件事情凸顯了亞馬遜要在2020年之前完全擺脫ORACLE所面臨的巨大挑戰,同時,對於亞馬遜自己的產品,要重建高可用和高可靠性也是非常艱難的。這件事情也表名,ORACLE的數據庫產品相比亞馬遜自己的數據庫產品具有更加可靠的特性,ORACLE將會舊金山就行的本年度OpenWorld大會上強調這一點。

發生數據庫宕機事故後,亞馬遜的工程師們迅速組織對事情進行了總結分析,並總結了一份長達25頁的報告,對出現宕機的原因進行了分析,提出了應對宕機的措施。通過對宕機事件的分析,亞馬遜的工程師對事故發生的原因有了更深刻的認識,並避免在未來繼續發生。

向永清:沒有了ORACLE,亞馬遜的數據倉庫宕機了!

報告顯示,亞馬遜之所有很難找到發生宕機的根本原因,是因為數據庫在遷移後,丟失了一個重要的功能。當前,亞馬遜還沒有制定相應的應急計劃,以防安裝Aurora PostgreSQL出現錯誤。

亞馬遜的工程師們被問到,為什麼在上一個超級會員日,數據倉庫使用的是ORACLE的方案,沒有遇到問題,而這次採用Aurora PostgreSQL方案後,出現了宕機故障。亞馬遜的工程師回應稱,ORACLE和Aurora PostgreSQL是兩種不同的數據庫技術,他們對保存點的處理方法不同。

保存點是跟蹤和恢復單個事物的最佳工具,在超級會員日當前,由於創建過多的保存點,導致了Aurora PostgreSQL軟件無法承受巨大的壓力,從而導致數據庫的整體性能降低。

據伊利諾伊大學香檳分校大學的教授馬特分析,如果使用ORACLE的數據庫產品,或許不會出現宕機事故,即使出了問題,ORACLE數據庫也能快速整段問題所佔,從而縮短宕機時間。

亞馬遜的一位發言人想在郵件中淡化此件事件的影響,他表示數據倉庫並沒有宕機,儘管內部文件已經明確數據庫“退化導致了延遲和完全中斷”。這位發言人還表示,亞馬遜工程一切運行正常,這次事故僅僅導致約1%的包裹傳遞延遲,並且這個問題很快得到了確認和解決。

向永清:沒有了ORACLE,亞馬遜的數據倉庫宕機了!

俄亥俄州的倉庫是亞馬遜13個倉庫中最大的一個,文件稱,在黃金時段,該公司每天處理超過110萬個包裹。所有處理庫存和運輸數據的服務和軟件都遷移到這些倉庫中的Aurora PostgreSQL。該報告稱,宕機在黃金時段持續了數小時,導致逾1.5萬份包裹延誤,約9萬美元的人工成本被浪費。這些成本不包括工程師在故障排除和修復錯誤或任何潛在的銷售損失所花費的時間。

經過分析,亞馬遜的工程認為ORACLE和PostgrteSQL處理保存點的機制不一樣,ORACLE的方法可能更有效。他補充說,用於PostgreSQL分析的SQL語句數據並不存在,對這些數據的訪問“將有助於查明”問題的根源。

如果亞馬遜有更充分的準備,這次宕機事件可能不會那麼嚴重。在文件的一部分中,該公司表示“花了很長時間來緩解”這個問題,因為“當底層PostgreSQL數據庫遇到性能問題時,缺乏應對計劃”。該文件還表示,一個“完善的應對計劃或運行手冊”可能有助於“更快地減輕影響”。

“我的猜測是,他們不久前改變了數據庫,沒有測試亞馬遜(Amazon)黃金時段的準確負載模型,結果非常意外,”哥倫比亞大學(Columbia University)計算機科學教授海寧如是說。

亞馬遜(Amazon)和甲骨文(Oracle)近年來一直在進行激烈的口水戰,因為亞馬遜已經擴大了其軟件產品,以與甲骨文(Oracle)更直接地競爭。美國全國廣播公司財經頻道(CNBC)今年8月報道稱,亞馬遜正致力於在2020年初之前將整個數據庫從甲骨文移出。

甲骨文董事長兼聯合創始人拉里•埃裡森並不買賬。在去年12月的財報電話會議上,埃裡森表示,亞馬遜“不會離開甲骨文”。他在8月份的一次活動中重申了自己的觀點,說:“我認為他們做不到。”“他們有10年的時間擺脫甲骨文,但他們仍然在甲骨文。”他說。“對他們來說,使用自己的技術並不容易。這是不划算的。我的意思是,這真的,真的很難。

諮詢公司Moor Insights & Strategy的首席分析師穆爾黑德(Patrick Moorhead)說,這一事件顯示出,對於亞馬遜倉庫中使用的那些舊應用程序來說,要擺脫甲骨文是多麼困難。“AWS Aurora是為前瞻性應用程序設計的,而Oracle是為更多遺留應用程序設計的,”他說。


分享到:


相關文章: