前言
TiDB 是一款定位于在線事務(wù)處理/在線分析處理( HTAP: Hybrid Transactional/Analytical Processing)的融合型數(shù)據(jù)庫產(chǎn)品岸晦,實(shí)現(xiàn)了一鍵水平伸縮挖炬,強(qiáng)一致性的多副本數(shù)據(jù)安全昔穴,分布式事務(wù)冬念,實(shí)時(shí) OLAP 等重要特性。同時(shí)兼容 MySQL 協(xié)議和生態(tài)崇渗,遷移便捷字逗,運(yùn)維成本極低。
架構(gòu)
TiDB 3.1.0 更新內(nèi)容
一宅广、兼容性變化
TiDB支持
1葫掉、TiDB 在啟動(dòng)服務(wù)時(shí),在開啟 report-status 配置項(xiàng)情況下跟狱,如果發(fā)現(xiàn) HTTP 監(jiān)聽端口不可用俭厚,則直接退出啟動(dòng) #16291
Tools
1、Backup & Restore (BR)
BR 不支持在 3.1 GA 版本之前的 TiKV 集群上進(jìn)行恢復(fù) #233
二驶臊、新功能
TiDB
1套腹、支持在 explain format = "dot" 中展示 coprocessor 任務(wù)的信息 #16125
2绪抛、通過 disable-error-stack 配置項(xiàng)減少日志的冗余 stack 信息 #16182
Placement Driver (PD)
1、優(yōu)化熱點(diǎn) Region 調(diào)度 #2342
TiFlash
1电禀、添加上報(bào) DeltaTree 引擎讀寫負(fù)載相關(guān) metrics 信息
2幢码、支持 fromUnixTime 和 dateFormat
3、函數(shù)下推默認(rèn)禁用粗粒度索引過濾器
TiDB Ansible 1尖飞、新增 TiFlash 監(jiān)控 #1253 #1257
2症副、優(yōu)化 TiFlash 配置參數(shù) #1262 #1265 #1271
3、優(yōu)化 TiDB 啟動(dòng)腳本 #1268
三政基、Bug修復(fù)
TiDB
1贞铣、修復(fù) merge join 在某些場(chǎng)景下 panic 的問題 #15920
2、修復(fù)在計(jì)算選擇率時(shí)重復(fù)考慮某些表達(dá)式的問題 #16052
3沮明、修復(fù)極端情況下 load 統(tǒng)計(jì)信息可能出現(xiàn)的 panic 的問題 #15710
4辕坝、修復(fù) SQL query 中存在等價(jià)表達(dá)式在某些情況下無法識(shí)別導(dǎo)致報(bào)錯(cuò)的問題 #16015
5、修復(fù)從一個(gè)數(shù)據(jù)庫中查詢另一個(gè)數(shù)據(jù)庫的 view 時(shí)報(bào)錯(cuò)的問題 #15867
6荐健、修復(fù) fast analyze handle 列時(shí) panic 的問題 #16080
7酱畅、修復(fù) current_role 輸出結(jié)果字符集不正確的問題 #16084
8、完善 MySQL 連接握手錯(cuò)誤相關(guān)日志 #15799
9江场、修復(fù)加載審計(jì)插件后端口探測(cè)活動(dòng)導(dǎo)致 panic 的問題 #16065
10纺酸、修復(fù)因 TypeNull 類被錯(cuò)誤識(shí)別為變長類型,導(dǎo)致 left join 上的 sort 算子 panic 的問題 #15739
11址否、修復(fù)監(jiān)控 session 重試錯(cuò)誤計(jì)數(shù)不準(zhǔn)確的問題 #16120
12餐蔬、修復(fù)在 ALLOW_INVALID_DATES 模式下,weekday 結(jié)果出錯(cuò)的問題 #16171
13佑附、修復(fù)在集群中存在 TiFlash 節(jié)點(diǎn)時(shí)樊诺,GC 可能不能正常工作的問題 #15761
14、修復(fù)創(chuàng)建 hash 分區(qū)表時(shí)指定非常大的分區(qū)數(shù)量導(dǎo)致 TiDB OOM 的問題 #16219
15音同、讓 union 語句的行為和 select 語句保持相同词爬,修復(fù)把 warnings 當(dāng) error 的問題 #16138
16、修復(fù) TopN 下推到 mocktikv 中的執(zhí)行錯(cuò)誤 #16200
17瘟斜、增大 chunk.column.nullBitMap 的初始化長度缸夹,以避免多余的 runtime.growslice 開銷 #16142
TiKV
1痪寻、修復(fù) replica read 導(dǎo)致 TiKV panic 的問題 #7418 #7369
2螺句、修復(fù) restore 產(chǎn)生許多空 Region 的問題 #7419
3、修復(fù)重復(fù)的 resolve lock 請(qǐng)求可能會(huì)破壞悲觀事務(wù)原子性的問題 #7389
TiFlash
1橡类、修復(fù)從 TiDB 同步 schema 時(shí)蛇尚,進(jìn)行 rename table 時(shí)潛在的問題
2、修復(fù)多數(shù)據(jù)路徑配置下進(jìn)行 rename table 會(huì)導(dǎo)致數(shù)據(jù)丟失的問題
3顾画、修復(fù)某些場(chǎng)景下 TiFlash 存儲(chǔ)空間上報(bào)錯(cuò)誤的問題
4取劫、修復(fù)開啟 Region Merge 情況下從 TiFlash 讀取時(shí)潛在的問題
Tools
1匆笤、TiDB Binlog
修復(fù)因?yàn)?TiFlash 相關(guān)的 DDL job 導(dǎo)致 Drainer 同步中斷的問題 #948 #942
2、BR
修復(fù)關(guān)閉 checksum 情況下谱邪,仍然執(zhí)行 checksum 的問題 #223
修復(fù) TiDB 開啟 auto-random 或 alter-pk 時(shí)炮捧,增量備份失敗的問題 #230 #231