初識OceanBase

OceanBase 是一款由阿里巴巴公司自主研發的高性能、分佈式的關係型數據庫,支持完整的 ACID 特性,高度兼容 MySQL 協議與語法,能夠以最小的遷移成本使用高性能、可擴張、持續可用的分佈式數據服務。

OceanBase 實現了數千億條記錄、數百 TB 數據的跨行跨表業務,支持了天貓大部分的 OLTP 和 OLAP 在線業務。

OceanBase 特性

OceanBase 最初是爲了處理淘寶網的大規模數據而產生的。傳統的 Oracle 單機數據庫無法支撐數百 TB 的數據存儲、數十萬的 QPS,通過硬件擴展的方式成本又太高。

淘寶網曾使用 MySQL 取代 Oracle,但是需要進行分庫分表來存儲,也有很多弊端。通過分庫分表添加節點比較複雜,查詢時有可能需要訪問所有的分區數據庫,性能很差。

淘寶網甚至考慮過 HBase,但是 HBase 只能支持單行事務查詢,且不支持 ACID 特性,只支持最終一致性。而淘寶網的業務必須支持跨行跨表業務,且一些訂單信息需要支持強一致性。

基於以上原因,這就需要開發一個新的數據庫,既要有良好的可擴展性,又能支持跨行跨表事務,OceanBase 就應運而生了。

OceanBase 具有以下特性:

1) 高擴展性

雖然傳統關係型數據庫(如 Oracle 或 MySQL)的功能已經很完善,但是數據庫可擴展性比較差,隨着數據量增大,需要進行分庫分表存儲,在查詢時需要將相應的 SQL 解析到指定的數據庫中,數據庫管理員需要花費大量時間來做數據庫擴容,且對維護人員的技術要求比較高,要掌握分佈式處理中數據的讀寫分離、垂直拆分和水平拆分等技術。

而 OceanBase 使用分佈式技術和無共享架構,數據自動分散到多臺數據庫主機上,採用廉價的 PC 服務器作爲數據庫主機,可以自由地對整個分佈式數據庫系統進行擴展,既降低了成本,同時也保證了無限的水平擴展。

OceanBase 也被稱爲雲數據庫,具有云存儲的隨意擴展的特性。

2) 高可靠性

OceanBase 數據庫系統使用的廉價的 PC 服務器,這些服務器是不可靠的,很容易出現故障。但是,OceanBase 又必須保證任何時刻出現的硬件故障不影響業務。

因此,OceanBase 引入 Paxos 協議,保證分佈式事務的一致性,即數據庫系統中數據以備份的方式存儲於多臺機器中,當其中一臺出現故障時,其他備份仍可以使用,並根據系統日誌來恢復故障前的數據。

3) 數據準確性

OceanBase 是新型的關係型數據庫,支持事務的 ACID 特性。這在電子商務、金融等領域是非常重要的,這些領域對數據的準確性要求非常高,如電子商務中的支付數據,這些數據要保持一致性,不能有任何數據的丟失。

OceanBase 在設計時,讀事務基本是分佈式併發執行的,而寫事務則是集中式串行執行的,且任何一個寫事務在最終提交前對其他讀事務都是不可見的,因此 OceanbBase 是具有強一致性的,能保證數據的正確性。

4) 高性能

數據庫的總量是很大的,每天增、刪、改的數據只是其中的小部分,這部分數據爲增量數據。

OceanBase 將數據分成基準數據和增量數據,基準數據是保持不變的歷史數據,用磁盤進行存儲,可保證數據的穩定性;而增量數據是最近一段時間的修改數據,存儲在內存中,這種針對增、刪、 改記錄的存儲方式極大地提高了系統寫事務的性能,並且增量數據在凍結後會轉存到 SSD 上,仍然會提供較高性能的讀服務。

OceanBase 會在系統的低負載時段對數據進行合併操作,避免對業務產生不良影響。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章