阿里OceanBase在關鍵領域不可能替代Oracle
某部委人士指出:“OceanBase測試指標雖高,但在關鍵領域仍不能使用”、“互聯網和銀行場景完全不同”、“不能支持跑批”。
OceanBase完全不兼容Oracle,分佈式數據庫性能尚待證明。結構上更像是一個數據庫存儲而非完整數據庫,替換Oracle缺乏理論支撐和實踐證明。
為什麼説OceanBase在關鍵領域不可能替代Oracle
2019年10月9日,某部委人士在公開會議上指出,“OceanBase測試指標雖高,但在關鍵領域仍不能使用”、“互聯網和銀行場景完全不同”、“不能支持跑批(批處理業務)”。問題本質是“什麼樣的分佈式數據庫在關鍵領域可用”?
從用户的角度,答案很明確,兼容Oracle功能且滿足性能要求。兼容Oracle,意味着“不改造應用系統無縫升級模式”,用户責任小,風險低。滿足性能要求,意味着業務可運行。
那OceanBase是不是這樣一個產品呢?
先説Oracle的兼容性:
數據庫核心功能,OceanBase在分佈式架構下,不兼容Oracle的存儲過程、觸發器、視圖、多表關聯、大表關聯等常用數據庫核心功能,需要通過大規模改造應用系統來彌補功能缺口,工程繁複,且不保證改造一定成功;
隔離等級,OceanBase不支持Oracle的隔離等級“可重複讀”,存在不可知數據錯誤風險及高失敗率;
鎖機制,和Oracle嚴苛鎖機制相比,OceanBase是鬆散鎖機制,在有數據衝突的金融場景,必然導致跑批(批處理業務)中斷,存在業務連續性風險;
結論:OceanBase完全不兼容Oracle,其缺口源於結構性差異,不可能通過適配解決。
再説性能,分佈式數據庫性能的關鍵是處理分佈式事務的效率:
兩次tpc-c測試,分佈式事務均不是由OceanBase數據庫完成的。按tpc-c規則,存在隨機15%和1%跨倉交易,如果完全隨機,總交易量的6.896%,即8小時共有520.017798億個交易,成為跨數據庫節點的分佈式事務。螞蟻金服披露“OceanBase1557節點集羣時,壓測tpmC/理論tpmC=0.987”,集羣與單機相比性能0損耗,即分佈式架構卻完全沒有分佈式開銷,顯然tpc-c測試裏的分佈式事務不是由OceanBase數據庫節點完成的。
小結:沒有直接證據證明OceanBase分佈式事務處理性能。
綜上所述,OceanBase完全不兼容Oracle,分佈式數據庫性能尚待證明。結構上更像是一個數據庫存儲而非完整數據庫,就像沒有發動機的裸底盤,替換高端整車Oracle缺乏理論支撐和實踐證明。
以上觀點均可快速驗證,當眾遷移一簡單Oracle系統即可,如某標準OA。