儲存2N倍擴容原理
首先分享一個58同城非常帥氣的秒級資料擴容的方案。這個方案解決什麼問題呢?原來資料庫水平切分成N個庫,現在要擴容成2N個庫,解決的就是這個問題。
假設原來分成兩個庫,假設按照hash的方式分片。如上圖,分為奇數庫和偶數庫。
第一個步驟提升從庫,底下一個從庫放到上面來(其實什麼動作都沒有做);
第二個步驟修改配置,此時擴容完成,原來是2個分片,修改配置後變成4個分片,這個過程沒有資料的遷移。原來偶數的那一部分現在變成了兩個部分,一部分是0,一部分是2,奇數的部分現在變成1和3。0庫和2庫沒有資料衝突,只是擴容之後在短時間內雙主的可用性這個特性丟失掉了。
第三個步驟還要做一些收尾操作:把舊的雙主給解除掉,為了保證可用性增加新的雙主同步,原來擁有全部的資料,現在只為一半的資料提供服務了,我們把多餘的資料刪除掉,結尾這三個步驟可以事後慢慢操作。整個擴容在過程在第二步提升從庫,修改配置其實就秒級完成了,非常的帥氣。
相關文章
- 超詳盡!Linux雲伺服器儲存擴容實操Linux伺服器
- Synology群暉NAS儲存擴容電腦空間的教程
- 教你利用鐵威馬NAS為電腦儲存空間擴容
- 手機擴容不再難!OV NM Card高速儲存卡評測
- 容災儲存隨想
- Prometheus TSDB儲存原理Prometheus
- HashMap原理(二) 擴容機制及存取原理HashMap
- MySql 擴充套件儲存引擎MySql套件儲存引擎
- SRAM資料儲存原理
- 固態硬碟儲存原理硬碟
- MySQL的varchar儲存原理:InnoDB記錄儲存結構MySql
- oracle 11g資料庫ASM磁碟組儲存空間擴容實施Oracle資料庫ASM
- 雲端儲存的技術原理
- redis 儲存結構原理 2Redis
- 冰河,能不能講講如何實現MySQL資料儲存的無限擴容?MySql
- Web儲存(Web Storage)擴充套件EStorageWeb套件
- 亞馬遜雲科技提升Serverless計算功能,擴充Amazon Lambda臨時儲存20倍至10GB亞馬遜Server
- Git儲存內容的位置與方式Git
- LSM儲存引擎基本原理儲存引擎
- InnoDB儲存引擎MVCC實現原理儲存引擎MVC
- MongoDB 儲存引擎與內部原理MongoDB儲存引擎
- FastDFS分散式儲存原理簡介AST分散式
- HashMap的底層結構、原理、擴容機制HashMap
- SQL Server 禁用擴充套件儲存過程SQLServer套件儲存過程
- 軟連結儲存內容的驗證
- HP EVA系列儲存結構原理研究
- HACCP原理——記錄的儲存(轉載)
- 博通將收購博科擴充套件儲存業務套件
- 怎麼重新儲存ie中表單的內容!
- 重新學習Mysql資料庫3:Mysql儲存引擎與資料儲存原理MySql資料庫儲存引擎
- 誰能說說java記憶體的永久儲存區域中儲存的內容嗎?Java記憶體
- ASM 擴容ASM
- 不同類別儲存器基本原理
- Android 儲存優化 —— MMKV 整合與原理Android優化
- docker檔案系統分層儲存原理Docker
- Java HashMap原理及內部儲存結構JavaHashMap
- 【技術解密】SequoiaDB分散式儲存原理解密分散式
- js浮點數儲存精度丟失原理JS