OcceanBase介紹

1、OcceanBase是什麼redis

如下是oschina的介紹:sql

OceanBase是一個支持海量數據的高性能分佈式數據庫系統,實現了數千億條記錄、數百TB數據上的跨行跨表事務,由淘寶核心系統研發部、運維、DBA、廣告、應用研發等部門共同完成。在設計和實現OceanBase的時候暫時摒棄了不緊急的DBMS的功能,例如臨時表,視圖(view),研發團隊把有限的資源集中到關鍵點上,當前 OceanBase主要解決數據更新一致性、高性能的跨表讀事務、範圍查詢、join、數據全量及增量dump、批量數據導入。

https://www.oschina.net/p/oce...數據庫

OcceanBase是淘寶開源的一個分佈式關係數據庫,如下是其官方地址:https://oceanbase.alipay.com/緩存

2、OcceanBase的開發背景服務器

咱們來大概瞭解下淘寶爲何要開發這個數據庫,在去IOE以後,淘寶核心場景都使用了Mysql,Mysql的好處是免費,而且能夠運行在普通PC機上,但Mysql的擴展性是個大問題,雖然能夠經過分庫分表等中間件來作,但這些中間件多多少少有以下問題:架構

一、運維複雜
由於引入新的中間件,因此係統鏈路會延長,而且運維的工做量增長,須要對Mysql中間件作好監控,配置等操做。 運維

二、擴容麻煩分佈式

     現有Mysql中間件擴容都比較複雜,即若是某個表原來分紅8張子表,如今業務量增大,須要再增長即擴充成16張表,總體過程操做比較複雜,須要運維、開發一塊兒配合,而且可能有很多手工操做,整個過程工做量大而且容易出錯,對於淘寶前幾年業務量增加迅猛的狀況下確定就不適合了。性能

固然還有其餘緣由,但主要是以上2點。 優化

3、OcceanBase功能介紹

咱們看下Occeanbase有哪些功能:

一、兼容MySQL 協議

兼容MySQL 5.6 版本大部分功能;

由於現有業務大量使用Mysql,若是業務升級還要改代碼,則升級就會有很多阻力,因此設計的時候就採起兼容的方案,這樣業務方只改改配置就能夠快速上線了。

二、分佈式,可水平擴展

  • 水平擴展,在線擴容縮容,服務不停;單集羣規模超 100 臺,數據量超 2PB;單表最多記錄數超 3200 億條。

注意:擴容時不停機這個功能,這個主要就是解決上面說的問題2的。

三、高可用

基於 Paxos 協議,少數派故障,數據不丟,服務不停;

這個是趨勢,Mysql官方8.0也有這個功能了。

四、強一致

  • 分佈式事務,ACID 強一致。

五、高性能

  • 準內存數據庫性能,4200 萬次/秒處理峯值的記錄。

4、總體架構分析

       接下來咱們分析Occeanbase的架構設計,是如何作到這麼高性能,又強一致的。

先看下總體架構

RootServer:管理集羣中全部服務器,及數據分佈和副本管理,即元數據服務器;

UpdateServer:存儲OcceanBase增量更新數據;

ChunkSerrver:存儲基線數據,即不會變的數據;

MergeServer:接入用戶請求,作完詞法分析、查詢優化等工做後轉發給ChunkServer或UpdateServer;

能夠看到,整個OcceanBase的計算和存儲是分離的,MergeServer負責計算,ChunkServer和UpdateServer負責存儲。

另外元數據是中心化的,這個也是目前分佈式系統設計的趨勢,只要元數據不要參與每一次請求,經過客戶端緩存、增量更新等措施能夠大大減小元數據服務器的壓力。

OcceanBase獨特的設計在於將增量更新數據全放到UpdateServer上 。

這個設計也決定了OcceanBase使用場景爲一段時間更新不是特別多,像電商主要是寫少讀多,特別適合這樣的場景。

這個設計有好有壞,好處有:

一、完美地支持分佈式事務

      由於修改只在一次,就不存在數據同步和一致性的問題,事務就能夠很好地支持,這樣的設計也是爲了淘寶這樣的場景:一段時間內寫入很少,但又要求強一致性

二、大大簡化系統設計

    由於淘寶的場景是讀多寫少,在總體OcceanBase架構裏寫是單點,但讀是可充的,即一段時間內沒有修改,直接從ChunkServer返回,根本不用走到UpdateServer,而ChunkServer是能夠水平擴充的,這樣就能夠在支持業務的條件下簡化系統的設計,不用作數據同步,面對分佈式鎖等複雜問題。

固然這麼設計的弊端也很明顯,最大的問題就是單點,即總體系統寫入都必須通過UpdateServer,但UpdateServer又沒法水平擴容,固然OcceanBase作了不少設計來減小UpdateServer的負擔,像讀寫分離,按期整理基線數據,這個後面慢慢分析。

BoneCP鏈接池重連機制分析

從一次線上故障來看redis刪除機制

一次線上Mysql死鎖分析

相關文章
相關標籤/搜索