在當(dāng)前經(jīng)濟(jì)環(huán)境下,企業(yè)級用戶更加重視數(shù)據(jù)庫架構(gòu)的成本效益,趨向于將分散的數(shù)據(jù)實例遷移至統(tǒng)一的大型集群,以優(yōu)化運行和統(tǒng)一管理。這種轉(zhuǎn)變帶來了對數(shù)據(jù)庫性能、穩(wěn)定性和精細(xì)管理的更高要求,同時也突顯了解決大規(guī)模集群運維中的風(fēng)險和問題的重要性。TiDB 8.1 LTS 針對大規(guī)模數(shù)據(jù)庫環(huán)境,顯著增強了整體的穩(wěn)定性和運維管理能力,同時在數(shù)據(jù)導(dǎo)入和運維安全性等方面為用戶提供了全面優(yōu)化的體驗。
性能與穩(wěn)定性:并行執(zhí)行框架與全局排序協(xié)同,提升大規(guī)模數(shù)據(jù)寫入的性能和穩(wěn)定性
擴(kuò)大并發(fā)度是提高分布式系統(tǒng)性能的關(guān)鍵,對于處理大規(guī)模數(shù)據(jù)系統(tǒng)尤為關(guān)鍵。分布式執(zhí)行框架(Distributed eXecution Framework,簡稱 DXF)自 TiDB v7.2 引入,在 v8.1 正式 GA。分布式執(zhí)行框架可以將用戶提交的任務(wù)(目前支持?jǐn)?shù)據(jù)導(dǎo)入和添加索引)分解為多個子任務(wù),并在多個 TiDB 節(jié)點上進(jìn)行調(diào)度和執(zhí)行,有效提高了任務(wù)的執(zhí)行效率。DXF 通過動態(tài)任務(wù)分配,實現(xiàn)任務(wù)的隔離執(zhí)行,提升了整個集群的穩(wěn)定性和可靠性。
全局排序(Global Sort)為多個 TiDB 節(jié)點維護(hù)了一塊共同的排序空間,通過一體化排序整理,使得每個 TiDB 節(jié)點所導(dǎo)入的數(shù)據(jù)不會有重疊,不會觸發(fā) TiKV 進(jìn)行 compaction 操作,從而顯著提升并發(fā)數(shù)據(jù)導(dǎo)入的性能和穩(wěn)定性。
性能與穩(wěn)定性:快照備份的恢復(fù)速度提升 3 倍,守好集群可用性防線
數(shù)據(jù)備份作為數(shù)據(jù)安全的關(guān)鍵防線,在大型數(shù)據(jù)庫系統(tǒng)中尤為重要。面對潛在的數(shù)據(jù)丟失或損壞,快速的數(shù)據(jù)恢復(fù)能力對于業(yè)務(wù)連續(xù)性至關(guān)重要。TiDB 研發(fā)團(tuán)隊通過采用粗粒度打散 Region 算法、批量創(chuàng)建庫表、降低 SST 文件下載和 Ingest 操作之間的相互影響、加速表統(tǒng)計信息恢復(fù)等措施,顯著提升了快照的恢復(fù)速度。v 8.1 版本實現(xiàn)了數(shù)據(jù)傳輸速度的近 10 倍提升,以及 1.5-3 倍的恢復(fù)速度提升,能夠在 1 小時內(nèi)完成對 100 TB 數(shù)據(jù)的恢復(fù)。這一進(jìn)步在極端情況下大幅減少了業(yè)務(wù)中斷的風(fēng)險,對大型數(shù)據(jù)庫系統(tǒng)的穩(wěn)定運行具有重大意義。
穩(wěn)定性:TiProxy 支持自有部署,實現(xiàn)“無感“數(shù)據(jù)庫運維
隨著更多數(shù)據(jù)庫實例合并至 TiDB 集群,業(yè)務(wù)系統(tǒng)的種類和數(shù)量也相應(yīng)增加,對可用性的要求也隨之提高。TiProxy 因此誕生,并在 8.1 LTS 版本中正式 GA。TiProxy 作為數(shù)據(jù)庫端的連接服務(wù),根據(jù) TiDB 實例的負(fù)載和狀態(tài)智能轉(zhuǎn)發(fā)客戶端操作,保證了即使在 TiDB 實例宕機的情況下,客戶端連接也不受影響。在 TiDB 集群執(zhí)行滾動重啟、升級、縮容等維護(hù)操作時,TiProxy 能夠平滑遷移連接,提供負(fù)載均衡,實現(xiàn)客戶端的”無感”數(shù)據(jù)庫運維。
易用性:跨數(shù)據(jù)庫執(zhí)行計劃綁定,簡化合并數(shù)據(jù)庫的 SQL 調(diào)優(yōu)工作
將應(yīng)用系統(tǒng)中的租戶存儲在不同數(shù)據(jù)庫(Schema)中是 SaaS 或 PaaS 業(yè)務(wù)系統(tǒng)的常見建模方式,也適用于原有分庫合并后的系統(tǒng)。這種方式是在每個 Schema 中創(chuàng)建完全一致的對象,執(zhí)行相似的業(yè)務(wù) SQL,帶來了數(shù)據(jù)隔離的好處。然而,這也增加了 SQL 種類,為 SQL 調(diào)優(yōu)帶來挑戰(zhàn)。TiDB 在 v8.1 中支持創(chuàng)建跨數(shù)據(jù)庫執(zhí)行計劃綁定(cross-db binding),一個執(zhí)行計劃綁定能夠匹配到只有 Schema 不同的多個 SQL 語句,大幅簡化了在這類建模下的 SQL 調(diào)優(yōu)工作。
可觀測性:觀測并識別無用或低效的索引,治愈系統(tǒng)調(diào)優(yōu)的“后遺癥“
索引設(shè)計對數(shù)據(jù)庫性能調(diào)優(yōu)至關(guān)重要。長時間調(diào)優(yōu)后,系統(tǒng)可能積累大量索引,消耗存儲空間,占用運行資源,降低了 DML 操作速度。在大規(guī)模集群中,刪除索引是一項對性能風(fēng)險極高的操作。TiDB 8.1 LTS 版本引入索引使用監(jiān)控功能,通過內(nèi)存表 TIDB_INDEX_USAGE 記錄每個索引自實例啟動以來的運行情況,包括索引被選擇的次數(shù)、掃描行數(shù)以及每次掃描時的選擇率范圍等信息,從而幫助管理員識別出需要刪除的索引和有優(yōu)化空間的索引。
TiDB 將持續(xù)致力于解決大規(guī)模數(shù)據(jù)庫集群的穩(wěn)定性和易用性問題,不斷迭代演進(jìn),為關(guān)鍵業(yè)務(wù)提供可靠、高效的分布式數(shù)據(jù)庫解決方案,滿足用戶的創(chuàng)新發(fā)展和多樣化的數(shù)據(jù)服務(wù)需求。