《竇賢明-TDSQL-C PostgreSQL的發展思路(25頁).pdf》由會員分享,可在線閱讀,更多相關《竇賢明-TDSQL-C PostgreSQL的發展思路(25頁).pdf(25頁珍藏版)》請在三個皮匠報告上搜索。
1、TDSQL-C PostgreSQL?竇賢明騰訊云 PostgreSQL/TDSQL-C PostgreSQL 產品研發負責從零到研發多款云上數據庫產品TDSQL-C?PostgreSQL?010203云原緣起云原緣起ServerlessDBServerlessDB分級存儲分級存儲TDSQL-C?PostgreSQL?01云原緣起云原緣起云原數據庫緣起云原數據庫緣起Hardware、Storage、NetworkingVirtualizationOperating SystemResource ManagementEnvironment ManagementDeployment&Schedul
2、ingHigh Availability/Backup/RestoreMonitor/Alarm/LoggingEndpoint/Proxy/Load BalanceData TransferringData ManagementSecurity/Param Setting(Up/Out)ScalingException Auto-HealingSQL(Auto)TuningIaaSPaaSSaaSDBaaS傳統主備云數據庫云原生數據庫云原數據庫緣起云原數據庫緣起VM 0Load BalanceMasterDataWAL云數據庫:云形態的第一階段虛擬化、托管主備方式、內核架構未變收益:資源空間
3、粒度,1vCore、1GB資源時間烞度,小時成本核算的模式 從CAPEX轉化為OPEX運維成本低、用戶體驗提升CloudStorageVM 1ReplicaDataWALCloudStorageVM 2ReplicaDataWALCloudStorageReplication云原數據庫緣起云原數據庫緣起云數據庫未解決的問題:資源粒度較粗時間上以小時計、空間上計實例規格計存儲成本線性增長網絡存在浪費(WAL+Data,數據寫兩次)調度不夠靈活Replica建設成本高,調度成本高HA切換問題,可用性、可靠性的取舍可用性可靠性云原數據庫緣起云原數據庫緣起VM 0Load BalanceMasterD
4、ataWALCloudStorageVM 1ReplicaDataWALCloudStorageVM 2ReplicaDataWALCloudStorageReplicationVM NReplicaDataWALCloudStorage云原數據庫緣起云原數據庫緣起計算VM-0RWReplication分布式存儲計算VM-0RO計算VM-0RO計算VM-0ROLoad BalanceWALDataDataDataData云原數據庫緣起云原數據庫緣起計算節點SQL LayerBuffer LayerTransactionLayerStorage Layer分布式存儲WALBufferLocal
5、StorageStorage Page BufferWALReplayWAL WriteData Page ReadReplicationSQL LayerBuffer LayerTransactionLayerStorage LayerData Page ReadWAL WriteData Page WriteData Page Read云原數據庫緣起云原數據庫緣起云原生數據庫的優勢:更優彈性:存儲計算分離,各自動態擴縮容、分別計費更優調度:計算節點秒級拉起,保證可用性更優調度:狀態持久化于分布式存儲中,保證數據可靠性更低成本存儲:全局一份(三副本),RO越多存儲成本相對越低TDSQL-C
6、PostgreSQL:Master 和 RO 基于一份數據,放在共享存儲Master 僅將WAL寫入共享存儲、不寫 數據頁RO 從共享存儲中讀取所需 數據頁,無須寫存儲RO 從主庫接收 WAL、緩存中重放,保持緩存最新共享存儲接收并重放 WAL,實現存儲節點上數據頁的修改存儲層以 Page 為單位維護數據計算VM-0RWReplication分布式存儲計算VM-0ROLoad BalanceWALDataData云原數據庫緣起云原數據庫緣起傳統主備云數據庫云原生數據庫運維:全棧運維、復雜度高人工或腳本化運維基本無 SaaS能力、或人工或自研體系、成本高成本:機器為固定資產方式采購、維護成本高C
7、APEX方式核算成本運維:運維工作極大減少充分利用SaaS能力眾多場景打磨,可靠性更高成本:計算費用粒度為小時級根據業務需要隨時升降標準化、采購成本低可以按OPEX方式核算成本運維:運維工作極大減少充分利用SaaS能力可用性、可靠性更優成本:計算費用粒度為小時級存儲按實際用量計費標準化、采購成本低可以按OPEX方式核算成本TDSQL-C?PostgreSQL?02ServerlessDBServerlessDBServerlessDBServerlessDB計算與存儲分離,計算更輕、存儲更重ServerlessDBServerlessDB云的本質:彈性自動化演進思考:計算更輕,輕至不存在計費更
8、細,更細時間粒度用戶只關心:地址計費運維ServerlessDB:不再有實例,只是一個 Endpoint計算資源時間粒度為秒級無運維、全自動ServerlessDBServerlessDB產品形態:存儲、計算分別計費,且粒度更細計算節點,不用不計費、用多長計多少計算節點,依據負載自動擴縮容存儲空間,用多少計多少全程自動化、無需“人工”(或腳本)干預用戶只需關心:訪問地址計費業務周期TDSQL-C PostgreSQLAPP?0APP?1APP?NServerlessDBServerlessDBVM 0MasterVM 1ReplicaWALDataReplicationShared Stora
9、geDataEndpointSQL初始狀態:存儲存在、地址存在計算節點不存在沒有業務SQL 運行時:存儲存在計算節點被拉起業務被執行SQL 運行結束后一段時間(數秒):存儲存在計算節點被關閉,不再計費ServerlessDBServerlessDB云原生數據庫運維:運維工作極大減少充分利用SaaS能力可用性、可靠性更優成本:計算費用粒度為小時級存儲按實際用量計費標準化、采購成本低可以按OPEX方式核算成本ServerlessDB運維:無運維充分利用SaaS能力可用性、可靠性更優成本:自動擴縮容計算費用粒度為秒級存儲按實際用量計費標準化、采購成本低可以按OPEX方式核算成本TDSQL-C?Pos
10、tgreSQL?03分級存儲分級存儲分級存儲分級存儲計算與存儲分離,計算更輕、存儲更重分級存儲分級存儲VM 0MasterVM 1ReplicaWALDataReplicationDataEndpointShared Storage最高 128TB,還能再高么?COS分級存儲分級存儲計算節點SQL LayerBuffer LayerTransactionLayerStorage LayerWAL WritefdwData Page ReadCOSShared Storage分級存儲分級存儲CREATE?SERVER?CREATE?SERVER?cos_servercos_server FORE
11、IGN?DATA?WRAPPER?FOREIGN?DATA?WRAPPER?cos_fdwcos_fdw OPTIONS(?OPTIONS(?host?host?xxxxxx.cos.apxxxxxx.cos.ap-,?,?bucket?bucket?xxxxxxxxxxxxxxxx,id?id?xxxxxxxxxxxxxxxx,?,?key?key?xxxxxxxxxxxxxxxxxxxx?););CREATE?FOREIGN?TABLE?CREATE?FOREIGN?TABLE?multi_csvmulti_csv(?(?word1?text?OPTIONS?(word1?text?OPT
12、IONS?(force_not_nullforce_not_null true),?true),?word2?text?OPTIONS?(word2?text?OPTIONS?(force_not_nullforce_not_null off)?off)?)?SERVER?)?SERVER?cos_servercos_server OPTIONS?(?OPTIONS?(?filepathfilepath/a.csva.csv,/,/b.csvb.csv,/c.csv.2,?,/c.csv.2,?format?csv,?format?csv,?null?NULL?null?NULL?););po
13、stgrespostgres=#?EXPLAIN?SELECT?*?FROM?=#?EXPLAIN?SELECT?*?FROM?multi_csvmulti_csv;?;?QUERY?PLAN?QUERY?PLAN?-Foreign?Scan?on?Foreign?Scan?on?multi_csvmulti_csv(cost=0.00.1.20?rows=2?width=128)?(cost=0.00.1.20?rows=2?width=128)?Foreign?COS?Foreign?COS?UrlUrl:?https:/:?https:/xxxxxxxxxx.cos.apxxxxxxxx
14、xx.cos.ap-Foreign?COS?File?Path:?/Foreign?COS?File?Path:?/a.csva.csv,/,/b.csvb.csv,/c.csv.2?,/c.csv.2?Foreign?each?COS?File?Size(Bytes):?15,172,86?Foreign?each?COS?File?Size(Bytes):?15,172,86?Foreign?total?COS?File?Size(Bytes):?273?Foreign?total?COS?File?Size(Bytes):?273?(5?rows)(5?rows)分級存儲分級存儲APP?0SELECTa.id,b.name,c.valueFROMtbl_atbl_a a,a,tbl_btbl_b b,b,tbl_costbl_cos c cWHERE a.id=b.a_id and b.id=c.b_idtbl_cosCOStbl_btbl_a分級存儲分級存儲APP?0SELECT*FROMtbl_partitiontbl_partitionWHEREdatedate 2022.04.302022.04.30tbl_cosCOStbl_btbl_atbl_partition