日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

數倍數據平滑擴容遷移方案

來源: 責編: 時間:2023-11-14 09:08:50 312觀看
導讀首先我們先來看下數據庫的高可用一般都是怎么實現的。我們還是借用圖來說明。真想手繪。圖片如上圖所示,兩個相互同步的主庫使用相同的虛擬IP,當主庫掛掉的時候,虛擬IP自動漂移到另外一臺主庫,整個過程用戶是無感知的。使

首先我們先來看下數據庫的高可用一般都是怎么實現的。我們還是借用圖來說明。真想手繪。oGg28資訊網——每日最新資訊28at.com

圖片圖片oGg28資訊網——每日最新資訊28at.com

如上圖所示,兩個相互同步的主庫使用相同的虛擬IP,當主庫掛掉的時候,虛擬IP自動漂移到另外一臺主庫,整個過程用戶是無感知的。使用雙主同步+keepalived+虛ip的方式進行。oGg28資訊網——每日最新資訊28at.com

oGg28資訊網——每日最新資訊28at.com

如果遇到數據暴增,我們怎么辦?oGg28資訊網——每日最新資訊28at.com

我們可以通過水平切分。oGg28資訊網——每日最新資訊28at.com

圖片圖片oGg28資訊網——每日最新資訊28at.com

上圖所示,用戶庫user分布在兩臺服務器上,ip0和ip1。通過用戶取模得方式,模2余0到ip0的機器上,反之到ip1的機器上,同時ip0和ip1并行做了雙主同步,這樣做到了水平切分和高可用。oGg28資訊網——每日最新資訊28at.com

oGg28資訊網——每日最新資訊28at.com

新的問題來了,分成n庫以后,隨著數據量的不斷增加,要增加到2*n庫的時候,數據如何擴容,數據如何平滑遷移,如何對外提供服務,保證數據的可用性?(一連串的靈魂拷問)oGg28資訊網——每日最新資訊28at.com

1.停服升級(暫時跳過)2.假設上面每個庫ip0和ip1每個庫都有1億數據,如何平滑擴容,增加實例數,降低單庫數據量呢?oGg28資訊網——每日最新資訊28at.com

第一步:oGg28資訊網——每日最新資訊28at.com

圖片圖片oGg28資訊網——每日最新資訊28at.com

這樣能保證原來的數據不變,還可以路由到原來的機器上。oGg28資訊網——每日最新資訊28at.com

oGg28資訊網——每日最新資訊28at.com

第二步:oGg28資訊網——每日最新資訊28at.com

圖片圖片oGg28資訊網——每日最新資訊28at.com

oGg28資訊網——每日最新資訊28at.com

這里需要服務層重新reload,高級一點可以通過配置中心向服務層發信息,重新讀取配置文件,重新初始化連接數據庫。完成之后,數據庫實例從2變成4個,過程在秒級完成。oGg28資訊網——每日最新資訊28at.com

整個過程可以逐步重啟,對服務的正確性和可用性完全沒有影響:oGg28資訊網——每日最新資訊28at.com

(a)即使%2尋庫和%4尋庫同時存在,也不影響數據的正確性,因為此時仍然是雙主數據同步的;oGg28資訊網——每日最新資訊28at.com

(b)即使%4=0與%4=2的尋庫落到同一個數據庫實例上,也不影響數據的正確性,因為此時仍然是雙主數據同步的;oGg28資訊網——每日最新資訊28at.com

oGg28資訊網——每日最新資訊28at.com

上面對數據庫實例進行了擴展,但是數據的數量并沒有降低,我們還需要再做一步。oGg28資訊網——每日最新資訊28at.com

圖片圖片oGg28資訊網——每日最新資訊28at.com

oGg28資訊網——每日最新資訊28at.com

oGg28資訊網——每日最新資訊28at.com

有這些一些收尾工作:oGg28資訊網——每日最新資訊28at.com

(a)把雙虛擬ip修改回單虛擬ip;oGg28資訊網——每日最新資訊28at.com

(b)解除舊的雙主同步,讓成對庫的數據不再同步增加;oGg28資訊網——每日最新資訊28at.com

(c)增加新的雙主同步,保證高可用;oGg28資訊網——每日最新資訊28at.com

(d)刪除掉冗余數據,例如:ip0里%4=2的數據全部刪除,只為%4=0的數據提供服務;oGg28資訊網——每日最新資訊28at.com

這一步,數據庫單實例數據量減半了。oGg28資訊網——每日最新資訊28at.com

oGg28資訊網——每日最新資訊28at.com

oGg28資訊網——每日最新資訊28at.com

InnoDB引擎為什么高效?

技術上怎么控制并發操作?

-鎖oGg28資訊網——每日最新資訊28at.com

-數據多版本oGg28資訊網——每日最新資訊28at.com

oGg28資訊網——每日最新資訊28at.com

-簡單暴力,任務執行過程的本質是串行的oGg28資訊網——每日最新資訊28at.com

-出現了共享鎖和排它鎖oGg28資訊網——每日最新資訊28at.com

 --共享鎖(S鎖),讀取數據加S鎖oGg28資訊網——每日最新資訊28at.com

 --排他鎖(X鎖) 修改時加X鎖oGg28資訊網——每日最新資訊28at.com

共享鎖和排他鎖的區別?

-共享鎖,讀可以并行oGg28資訊網——每日最新資訊28at.com

-排他鎖跟任何鎖互斥,讀和寫都不可以并行oGg28資訊網——每日最新資訊28at.com

總結下:一但寫數據沒有完成,數據是不能被其他任務讀取的,這對并發有著比較大的影響。oGg28資訊網——每日最新資訊28at.com

有沒有可能,進一步提高并發呢?oGg28資訊網——每日最新資訊28at.com

oGg28資訊網——每日最新資訊28at.com

數據多版本oGg28資訊網——每日最新資訊28at.com

圖片圖片oGg28資訊網——每日最新資訊28at.com

-核心原理oGg28資訊網——每日最新資訊28at.com

 (1)寫任務發生的時候,將數據克隆一份,以版本號區分oGg28資訊網——每日最新資訊28at.com

 (2)寫任務操作克隆的數據,直至提交oGg28資訊網——每日最新資訊28at.com

 (3)讀取數據還是舊版本上,不阻塞oGg28資訊網——每日最新資訊28at.com

所以并發提高演進的思路oGg28資訊網——每日最新資訊28at.com

1.普通鎖,串行執行oGg28資訊網——每日最新資訊28at.com

2.讀寫鎖,讀讀可以并發oGg28資訊網——每日最新資訊28at.com

3.數據多版本,讀寫都可以并發oGg28資訊網——每日最新資訊28at.com

oGg28資訊網——每日最新資訊28at.com

對應到innodb,是怎么處理的呢?

先了解三個概念:redo、undo、回滾段oGg28資訊網——每日最新資訊28at.com

redo:數據庫事務提交之后,必須將更新后的數據刷新到硬盤上,保證ACID原則。這里是隨機讀寫的,如果來個事務就寫一次,相當影響吞吐量。oGg28資訊網——每日最新資訊28at.com

優化:將修改的行寫到redo日志中,再定期刷新到硬盤中。這里的寫日志是順序寫,可以提高性能。如果有一刻數據奔潰,可以讀取redo日志恢復數據。oGg28資訊網——每日最新資訊28at.com

undo:事務未提交時,可以將修改前的數據存在undo日志里,當崩潰或者事務回滾時,利用undo日志撤銷修改。oGg28資訊網——每日最新資訊28at.com

oGg28資訊網——每日最新資訊28at.com

舉例說明:oGg28資訊網——每日最新資訊28at.com

-insert操作,undo日志存儲的是PK(rowid),回滾時直接刪除oGg28資訊網——每日最新資訊28at.com

-update/delete操作,undo日志記錄舊數據的row,回滾時直接恢復。oGg28資訊網——每日最新資訊28at.com

回滾段:存儲undo日志的地方,就是回滾段。oGg28資訊網——每日最新資訊28at.com

oGg28資訊網——每日最新資訊28at.com

Innodb是基于版本并發控制的存儲引擎。oGg28資訊網——每日最新資訊28at.com

MVCC就是通過“讀取舊版本數據”來降低并發事務的鎖沖突,提高任務的并發度。oGg28資訊網——每日最新資訊28at.com

innodb為何能做到這么高的并發?oGg28資訊網——每日最新資訊28at.com

回滾段的數據,也就是歷史數據的快照,這些數不會被改變,select操作可以為所欲為的并發讀取oGg28資訊網——每日最新資訊28at.com

oGg28資訊網——每日最新資訊28at.com

總結

(1)常見并發控制保證數據一致性的方法有鎖,數據多版本;oGg28資訊網——每日最新資訊28at.com

(2)普通鎖串行,讀寫鎖讀讀并行,數據多版本讀寫并行;oGg28資訊網——每日最新資訊28at.com

(3)redo日志保證已提交事務的ACID特性,設計思路是,通過順序寫替代隨機寫,提高并發;oGg28資訊網——每日最新資訊28at.com

(4)undo日志用來回滾未提交的事務,它存儲在回滾段里;oGg28資訊網——每日最新資訊28at.com

(5)InnoDB是基于MVCC的存儲引擎,它利用了存儲在回滾段里的undo日志,即數據的舊版本,提高并發;oGg28資訊網——每日最新資訊28at.com

(6)InnoDB之所以并發高,快照讀不加鎖;oGg28資訊網——每日最新資訊28at.com

(7)InnoDB所有普通select都是快照讀;oGg28資訊網——每日最新資訊28at.com

oGg28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-24294-0.html數倍數據平滑擴容遷移方案

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 不要在按鈕、鏈接或任何其他文本容器上使用固定的 CSS 高度或寬度

下一篇: 提升應用程序性能的利器:學習如何使用Celery進行分布式任務管理

標簽:
  • 熱門焦點
  • 鴻蒙OS 4.0公測機型公布:甚至連nova6都支持

    華為全新的HarmonyOS 4.0操作系統將于今天下午正式登場,官方在發布會之前也已經正式給出了可升級的機型產品,這意味著這些機型會率先支持升級享用。這次的HarmonyOS 4.0支持
  • 6月安卓手機性能榜:vivo/iQOO霸占旗艦排行榜前三

    2023年上半年已經正式過去了,我們也迎來了安兔兔V10版本,在新的驍龍8Gen3和天璣9300發布之前,性能榜的榜單大體會以驍龍8Gen2和天璣9200+為主,至于那顆3.36GHz的驍龍8Gen2領先
  • Flowable工作流引擎的科普與實踐

    一.引言當我們在日常工作和業務中需要進行各種審批流程時,可能會面臨一系列技術和業務上的挑戰。手動處理這些審批流程可能會導致開發成本的增加以及業務復雜度的上升。在這
  • 如何通過Python線程池實現異步編程?

    線程池的概念和基本原理線程池是一種并發處理機制,它可以在程序啟動時創建一組線程,并將它們置于等待任務的狀態。當任務到達時,線程池中的某個線程會被喚醒并執行任務,執行完任
  • 零售大模型“干中學”,攀爬數字化珠峰

    文/侯煜編輯/cc來源/華爾街科技眼對于絕大多數登山愛好者而言,攀爬珠穆朗瑪峰可謂終極目標。攀登珠峰的商業路線有兩條,一是尼泊爾境內的南坡路線,一是中國境內的北坡路線。相
  • 認真聊聊東方甄選:如何告別低垂的果實

    來源:山核桃作者:財經無忌爆火一年后,俞敏洪和他的東方甄選依舊是頗受外界關心的“網紅”。7月5日至9日,為期5天的東方甄選“甘肅行”首次在自有App內直播,
  • 朋友圈可以修改可見范圍了 蘋果用戶可率先體驗

    近日,iOS用戶迎來微信8.0.27正式版更新,除了可更換二維碼背景外,還新增了多項實用功能。在新版微信中,朋友圈終于可以修改可見范圍,簡單來說就是已發布的朋友圈
  • 三翼鳥智能家居亮相電博會,讓用戶體驗更真實

    2021電博會在青島國際會展中心開幕中,三翼鳥直接把“家”搬到了現場,成為了展會的一大看點。這也是三翼鳥繼9月9日發布了行業首個一站式定制智慧家平臺后的
  • 中關村論壇11月25日開幕,15位諾獎級大咖將發表演講

    11月18日,記者從2022中關村論壇新聞發布會上獲悉,中關村論壇將于11月25至30日在京舉行。本屆中關村論壇由科學技術部、國家發展改革委、工業和信息化部、國務
Top 主站蜘蛛池模板: 策勒县| 吉水县| 萨迦县| 澄迈县| 肥东县| 涞源县| 泾源县| 浦县| 启东市| 仲巴县| 崇礼县| 龙海市| 锦州市| 新蔡县| 耿马| 乐清市| 祥云县| 涞源县| 普兰县| 黔南| 偏关县| 霍州市| 辛集市| 竹北市| 朔州市| 盐山县| 鄯善县| 遂溪县| 瑞安市| 琼中| 台东市| 浦县| 宁武县| 韶山市| 鄂州市| 翁牛特旗| 巴南区| 明光市| 都江堰市| 芜湖县| 湘乡市|