OceanBase详解(详解OceanBase特性)
OceanBase是阿里開發的分布式關系型(SQL)數據庫,其目標是支持數百TB的數據量以及數十萬TPS、數百萬QPS的訪問量,無論是數據量還是訪問量,即使采用非常昂貴的小型機甚至是大型機,單臺關系數據庫系統都無法承受。
OceanBase案例:OceanBase分布式關系數據庫渡過了一個成功的雙十一:支持了支付寶核心的交易、支付、會員和賬務等,并且創造了新的紀錄:交易創建17.5萬筆/秒、交易支付12萬筆/秒、全天累計支付11.5億筆
1、OceanBase特性
1.1、OceanBase高擴展性
傳統關系型數據庫,比如Oracle或者MySQL功能已經很完善,但數據庫本身不可擴展,隨著數據量的增大和業務內容的豐富,需要拆庫拆表,然后再進行訪問路由,將相應的SQL解析路由到指定的數據庫中。數據庫的運維人員需要花費大量的時間來做數據庫擴容,包括讀寫分離、垂直拆分、水平拆分等等。
OceanBase使用了分布式技術和無共享架構,來自業務的訪問會自動分散到多臺數據庫主機上。在相關技術的支持下,OceanBase還能夠采用廉價的PC服務器作為其數據庫主機。通過這兩個方面的變革,運維人員可以愉快地通過增加服務器數量來增加系統的容量和性能。
1.2、低成本
傳統商業企業采用的“IOE”體系,實際上代表了一種高成本、高維護費、非高并發的商用數據庫系統。特別是隨著數據越來越大,所需要付出的升級硬件和維護的代價也會越來越驚人,阿里巴巴采用數據切分的策略,將部分海量數據應用從集中式Oracle切換到分布式集群,從縱向擴展到水平擴展,解決了數據庫擴展性的問題,并用PC服務器替換了小型機。
由此帶來的一個重要變革,就是成本的極大降低。與傳統數據庫公司的產品相比,OceanBase的升級維護不需要昂貴的共享存儲、高可靠的服務器、數據庫軟件的許可費,可以將商業數據庫成本降到一半以下。
1.3、高可靠性
數據庫系統通常由數據庫軟件、運行數據庫軟件的數據庫服務器硬件以及保存數據庫數據的數據庫存儲硬件(即共享存儲)組成。數據庫系統的穩定可靠,也取決于這三個部分。使用PC服務器能夠帶來高擴展性、降低成本的同時,其硬件的可靠性卻對應有些下降。
如何保證系統的可靠性?OceanBase的一個基本假設就是硬件(服務器、存儲、網絡等)是不可靠的,因此,OceanBase必須保證任何時刻出現的少量硬件(服務器、存儲、網絡等)異常不影響業務。
為此,OceanBase引入了Paxos協議,每一筆事務,主庫執行完成后,要同步到半數以上庫(包括主庫自身),例如3個庫中的2個庫,或者5個庫中的3個庫,事務才成功。這樣,少數庫(例如3個庫中的1個庫,或者5個庫中的2個庫)異常后業務并不受影響。
分布式事務一致性協議paxos主要用于保證一個數據在分布式系統里是可靠的。當在機器里多數派都成功了之后,只要壞的機器是少數派,三個里少數派是一個,多數派是兩個。三個機器里面有兩個成功了,那就可以告訴用戶這個數據保證不會丟了。這個時候機可能會損壞,但是損壞任何一臺機器,至少還有另外一臺機器恢復過來,這是在系統內部自動去做容災。任何一臺機器壞了,或者有一臺機器落后,比如三個及其是一主拖著另外兩個成功了之后,就會把數據補上,肯定會保證另外兩份是OK的,最終三份是OK了,壞一臺機器都不會有問題。
軟件層面,OceanBase區別于傳統數據庫的一個關鍵特征是軟件版本的灰度升級。
主備方式的傳統數據庫是“單活”的,只有主庫可執行寫事務,盡管維護升級時可以先操作備庫,操作完成后備庫變成主庫并且接受用戶訪問是一步到位的,如果新版本有問題,則業務受到影響:
?
傳統數據庫:升級前
傳統數據庫:升級中
?
?
傳統數據庫:升級后只能一次性地引入全部讀寫流量
OceanBase則是“多活”設計,即多個庫(3個,5個等)每個都可以有部分讀寫流量,升級時先把要升級的庫的讀寫流量切走,升級后先進行數據對比,正常后逐步引入讀寫流量,一切正常并運行一段時間后再升級其他的庫
OceanBase許可證
OceanBase 數據庫社區版完全開源,使用?MulanPubL v2?許可證,您可以免費復制和使用源代碼。當您修改或分發源代碼時,請遵守木蘭協議。
總結
以上是生活随笔為你收集整理的OceanBase详解(详解OceanBase特性)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TSV文件、CSV文件
- 下一篇: vue-cli打包后,找不到css、js