OceanBase如何解決支付寶資料庫的高一致性

2021-09-24 00:25:30 字數 1087 閱讀 6916

傳統資料庫通過共享儲存保障主備庫的資料一致性,去除共享儲存後,由於網路、伺服器、磁碟等的不可靠,資料庫的主庫與備庫的資料一致性成為很大的挑戰(更多資訊參見下文「共享儲存能否解決網際網路資料庫的一致性」)。oceanbase立足於網際網路,必須解決網際網路資料庫的資料一致性問題,不僅要為**、天貓等商業系統提供資料庫,而且要為支付寶等金融系統提供資料庫。

資料庫資料一致性問題的根源是軟體(作業系統軟體、網路軟體、應用軟體等)和硬體(網路硬體、伺服器硬體、磁碟等)的不可靠,因此解決這個問題的根本方法是冗餘。傳統raid技術(例如raid10,raid5)等提供了較高的可靠性,但如果所在的伺服器故障,則資料還是無法訪問,因此也無法保證資料的高一致性。為了解決這個問題,oceanbase引入了雲計算思路和paxos協議,通過3個(或者更多節點)的投票來保證資料的高度一致,並兼顧服務的高可用,如下圖:

上述三個機群構成乙個資料庫,其中乙個是主機群,所有事務都由主機群的updateserver(稱為主updateserver,其他updateserver稱為備updateserver)執行,事務的redo log同步到3個updateserver中的超過半數(即至少2個,包括主updateserver自己),則事務成功並應答客戶。如果3個updateserver中有乙個故障:

*主updateserver故障:剩餘的兩個updateserver會自動選舉出乙個新的主updateserver(參見後文「oceanbase分布式選舉的實現」),由於舊的主updateserver資料至少在乙個活著的updateserver中存在,因此資料不會有任何丟失,兩個活著的updateserver經過很短時間(通常是毫秒級)的相互同步後就可以繼續對外服務,保證了資料的一致性和服務的高可用。

*單個備updateserver故障:主updateserver有全部資料,剩餘兩個updateserver仍然超過半數,資料一致性和服務都不受任何影響。

如果把上述三個機群部署出於三個不同的機房,那麼即使乙個機房出現電源、網路或者空調等故障,剩餘兩個機群仍然能夠繼續工作,資料一致性和服務可用性都不受影響。如果採用5機群部署,則系統甚至可以抵禦2個機群的故障。

如何解決併發

雖然從巨集觀上,處理器是並行處理多項任務,但本質上乙個處理器在某個時間點只能處理乙個任務,屬於序列執行。在單處理器的情況下,併發問題源於多道程式設計系統的乙個基本特性 程序的相對執行速度不可 它取決於其他程序的活動 作業系統處理中斷的方式以及作業系統的排程策略。在分布式環境下,併發產生的可能性就更大...

支付寶背後的故事OceanBase

據悉,17年的4月份,螞蟻金服已經宣布,螞蟻金服及阿里巴巴自研的關係型資料庫oceanbase已經支撐起tmall和 的日常業務需求,成功替換了之前所採用的單機資料庫如oracle或者開源的mysql。oceanbase作為乙個金融級應用,已經做到了可以容納數百tb以及數千億條資料的跨表事物,其最大...

如何解決藍屏問題

第一步 公升級筆記本bios 一般說來筆記本在出廠的時候很可能設計上存在某些的瑕疵,而廠商通常會採用公升級bios的方法來解決這些bug。如果我們在使用筆記本腦的過程中遇到了藍屏的情況,那麼我們可以採取公升級bios的辦法來解決藍屏的故障。第二步 正確安裝硬體驅動 在重新整理了bios以後,部分筆記...