《租戶 What's New:租戶克隆技術解讀_陳森.pdf》由會員分享,可在線閱讀,更多相關《租戶 What's New:租戶克隆技術解讀_陳森.pdf(22頁珍藏版)》請在三個皮匠報告上搜索。
1、租戶克隆技術解讀陳森OceanBase 資深技術專家多租戶架構1.數據隔離2.資源隔離:CPU、內存、IOPS3.彈性伸縮4.動態調度多租戶特性P1P2RSP1ZONE_1OBServerTenant_1Tenant_SYSP3P4P1P2OBServerTenant_1Tenant_2P1P2RSP1ZONE_2OBServerTenant_1Tenant_SYSP3P4P1P2OBServerTenant_1Tenant_2P1P2RSP1ZONE_3OBServerTenant_1Tenant_SYSP3P4P1P2OBServerTenant_1Tenant_2OBProxyOBPro
2、xyOBProxyPaxos Group主副本從副本應用 1應用 2Whats new in version 4.3?租戶克隆多租戶架構1.數據隔離2.資源隔離:CPU、內存、IOPS3.彈性伸縮4.動態調度多租戶特性P1P2RSP1ZONE_1OBServerTenant_1Tenant_SYSP3P4P1P2OBServerTenant_1Tenant_2P1P2RSP1ZONE_2OBServerTenant_1Tenant_SYSP3P4P1P2OBServerTenant_1Tenant_2P1P2RSP1ZONE_3OBServerTenant_1Tenant_SYSP3P4P1P
3、2OBServerTenant_1Tenant_2OBProxyOBProxyOBProxyPaxos Group主副本從副本應用 1應用 2租戶克隆CREATE TENANT new_tenant_name FROM source_tenant_name WITH RESOURCE_POOL=resource_pool_name,UNIT=unit_config;新克隆租戶的初始數據為源租戶語句執行時間點的快照;新克隆租戶和源租戶之間 數據隔離和資源隔離;Macro Block63源租戶clone556Primary Storage Meta新克隆租戶Clone Storage Meta56
4、5555CPUMemoryIOPSCPUMemoryIOPS租戶克隆應用場景 報表任務業務正在大促;推廣效果非常好,大賣,數據庫運行平穩,但已處于滿載狀態;這時,老板聽說大賣,非常高興,問技術團隊要一個當前整體銷售情況的報表;這時候,是選擇冒著被“廣進”的風險跑個大查詢呢?還是選擇回復滿臉期待的老板說做不到呢?租戶克隆應用場景 報表任務業務正在大促;推廣效果非常好,大賣,數據庫運行平穩,但已處于滿載狀態;這時,老板聽說大賣,非常高興,問技術團隊要一個當前整體銷售情況的報表;這時候,是選擇冒著被“廣進”的風險跑個大查詢呢?還是選擇回復滿臉期待的老板說做不到呢?租戶克隆技術,可以讓你放心出報表,減
5、少焦慮內耗;生產租戶PAX 行列混合存儲ApplicationsClone報表租戶PAX 行列混合存儲TP workloadAP workloadODCSELECT/*+PARALLEL(hint)*/IDNAMESALARYIDNAMESALARY租戶克隆應用場景 只讀備租戶生產租戶壓力大,需要快速將不確定的非重要的復雜查詢負載隔離開新克隆租戶可以作為源生產租戶的備租戶,提供準實時讀服務;生產租戶PAX 行列混合存儲ApplicationsClone只讀備租戶PAX 行列混合存儲內部運營系統SELECT/*+PARALLEL(hint)*/IDNAMESALARYIDNAMESALARY16
6、c128g4c32g主備租戶之間,Redo 異步復制租戶克隆應用場景 應用版本升級版本發布前需要備份數據庫,若版本發布失敗,需要用這個備份來恢復數據庫;備份和恢復這兩個操作都非常耗時;為了業務生產經營影響最小,發版都在凌晨進行,需要全程值守;發版時間越長,對業務影響越大,同時讓研發運維人員越勞累;租戶克隆應用場景 應用版本升級預發測試租戶Clone臨時備份租戶Clone臨時備份租戶Clone4c32g2c16g2c16g版本發布執行前,從生產租戶克隆出預發驗證租戶;版本發布第一個步驟,從生產租戶克隆出臨時備份租戶;生產租戶32c256g生產租戶32c256g新生產租戶32c256g若非常不幸,
7、應用版本發布出問題;通過臨時備份租戶克隆出一個新生產租戶;從而實現數據庫的快速恢復;通過租戶克隆技術,可以大幅度減少版本發布執行時間,拯救你的睡眠;版本發布前需要備份數據庫,若版本發布失敗,需要用這個備份來恢復數據庫;備份和恢復這兩個操作都非常耗時;為了業務生產經營影響最小,發版都在凌晨進行,需要全程值守;發版時間越長,對業務影響越大,同時讓研發運維人員越勞累;若發布失敗租戶克隆應用場景 數據庫變更DBA 團隊時常收到業務側的數據庫變更需求,比如:調整下表索引 預發測試租戶Clone臨時備份租戶Clone臨時備份租戶Clone4c32g2c16g2c16gDDL 執行前,從生產租戶克隆出預發測
8、試租戶;DDL 執行前一個步驟,從生產租戶克隆出臨時備份租戶;生產租戶32c256g生產租戶32c256g新生產租戶32c256g若非常不幸,DDL 執行失??;通過臨時備份租戶克隆出一個新生產租戶;從而實現數據庫的快速恢復;執行異常若變更租戶克隆應用場景 快速構建開發測試環境當前基于 git 這類代碼分支管理工具,已經可以做到快速拉出代碼的開發分支;運行和測試程序需要的持久化數據往往保存在數據庫中;時常需要基于某個主干測試庫構建出該分支的測試庫;當測試庫容量大時,構建新的分支測試庫存在構建慢,存儲空間占用大的問題;MasterBugfixYFeatureXFeatureX-Task1Appli
9、cation Code租戶克隆應用場景 快速構建開發測試環境當前基于 git 這類代碼分支管理工具,已經可以做到快速拉出代碼的開發分支;運行和測試程序需要的持久化數據往往保存在數據庫中;時常需要基于某個主干測試庫構建出該分支的測試庫;當測試庫容量大時,構建新的分支測試庫存在構建慢,存儲空間占用大的問題;Application CodeMasterBugfixYFeatureXFeatureX-Task1OceanBase通過租戶克隆技術,讓整個開發過程更加順暢絲滑;Master 租戶FeatureX 租戶CloneCloneBugfixY 租戶CloneFeatureX-Task1 租戶租戶克
10、隆應用場景 數據導出需要將生產數據庫中的數據,按 csv 的格式,導出到對象存儲中,提供給下游的大數據分析系統使用;為了避免影響業務,不敢開太高的導出并發;同時對象存儲寫入延遲高,導致數據導出速度慢;租戶克隆應用場景 數據導出需要將生產數據庫中的數據,按 csv 的格式,導出到對象存儲中,提供給下游的大數據分析系統使用;為了避免影響業務,不敢開太高的導出并發;同時對象存儲寫入延遲高,導致數據導出速度慢;ApplicationsCloneSELECT.INTO OUTFILE源租戶導出租戶Object Storage克隆出一個導出租戶,高并行度的執行數據導出任務;CPUMemoryIOPSCPU
11、MemoryIOPS單個租戶可以克隆出多個不同規格的新租戶Shared Macro Block報表系統內部運營系統版本發布Dev/TestingRedo 異步復制ApplicationsObject Storage生產租戶報表租戶只讀備租戶臨時備份租戶開發測試租戶導出租戶1213141516175678910113412分布式數據庫快照模型data fileWALGlobal Consistent Snapshot TimestampvolatileNon-volatileDRAM data Process1data fileWALvolatileNon-volatileDRAM dataPr
12、ocess2data fileWALvolatileNon-volatileDRAM dataProcessn1.記錄當前各個節點的 checkpoint 位點;2.備份各個節點的 data file 數據;(通常是備份元數據,通過元數據引用數據;3.通過全局時間戳來確定 snapshot 點;快照的執行流程以上步驟保留下來的數據,再加上各個節點從 checkpoint 位點到 snapshot 位點的日志;即構成了一個 crash-consistent snapshot;可以基于其克隆出新的租戶;567567租戶克隆實現Global Timestamp ServiceArchiveLogAr
13、chiveLog日志流副本2日志流副本nArchive Log5673412checkpoint scnsnapshot scnTablets源租戶Macro BlockTablets新克隆租戶歸檔Meta copy回放日志流副本1租戶克隆 實戰演示obclient-urootsource_tenant-h127.0.0.1-P42101obclient SELECT*FROM clone_test.clone_testG*1.row*c:11 row in set(0.00 sec)obclient-urootclone_tenant-h127.0.0.1-P42101obclient SE
14、LECT*FROM clone_test.clone_testG*1.row*c:11 row in set(0.00 sec)obclient-urootsource_tenant-h127.0.0.1-P42101obclient UPDATE clone_test.clone_test SET c=2 WHERE c=1;Query OK,1 row affected(0.01 sec)Rows matched:1 Changed:1 Warnings:0obclient-urootclone_tenant-h127.0.0.1-P42101obclient SELECT*FROM clone_test.clone_testG*1.row*c:11 row in set(0.00 sec)執行克隆語句源租戶的數據改動,不影響新克隆租戶;obclient-uroot-h127.0.0.1-P42101obclient CREATE TENANT clone_tenant FROM source_tenant WITH RESOURCE_POOL=clone_tenant_pool,UNIT=2c4g;Query OK,0 rows affected(26.02 sec)租戶克隆易省穩快謝謝謝謝謝謝