前言
TiDB 是一款定位於在線事務處理/在線分析處理( HTAP: Hybrid Transactional/Analytical Processing)的融合型數據庫產品,實現了一鍵水平伸縮,強一致性的多副本數據安全,分佈式事務,實時 OLAP 等重要特性。同時兼容 MySQL 協議和生態,遷移便捷,運維成本極低。
架構
TiDB 3.1.0 現已發佈,該版本更新內容如下:
兼容性變化
- TiDB支持
1、TiDB 在啟動服務時,在開啟 report-status 配置項情況下,如果發現 HTTP 監聽端口不可用,則直接退出啟動 #16291 - Tools
1、Backup & Restore (BR)
a、BR 不支持在 3.1 GA 版本之前的 TiKV 集群上進行恢復 #233
新功能
- TiDB
1、支持在 explain format = "dot" 中展示 coprocessor 任務的信息 #16125
2、通過 disable-error-stack 配置項減少日誌的冗餘 stack 信息 #16182
- Placement Driver (PD)
1、優化熱點 Region 調度 #2342 - TiFlash
1、添加上報 DeltaTree 引擎讀寫負載相關 metrics 信息
2、支持 fromUnixTime 和 dateFormat
3、函數下推默認禁用粗粒度索引過濾器 - TiDB Ansible
1、新增 TiFlash 監控 #1253 #1257
2、優化 TiFlash 配置參數 #1262 #1265 #1271
3、優化 TiDB 啟動腳本 #1268
Bug 修復
- TiDB
1、修復 merge join 在某些場景下 panic 的問題 #15920
2、修復在計算選擇率時重複考慮某些表達式的問題 #16052
3、修復極端情況下 load 統計信息可能出現的 panic 的問題 #15710
4、修復 SQL query 中存在等價表達式在某些情況下無法識別導致報錯的問題 #16015
5、修復從一個數據庫中查詢另一個數據庫的 view 時報錯的問題 #15867
6、修復 fast analyze handle 列時 panic 的問題 #16080
7、修復 current_role 輸出結果字符集不正確的問題 #16084
8、完善 MySQL 連接握手錯誤相關日誌 #15799
9、修復加載審計插件後端口探測活動導致 panic 的問題 #16065
10、修復因 TypeNull 類被錯誤識別為變長類型,導致 left join 上的 sort 算子 panic 的問題 #15739
11、修復監控 session 重試錯誤計數不準確的問題 #16120
12、修復在 ALLOW_INVALID_DATES 模式下,weekday 結果出錯的問題 #16171
13、修復在集群中存在 TiFlash 節點時,GC 可能不能正常工作的問題 #15761
14、修復創建 hash 分區表時指定非常大的分區數量導致 TiDB OOM 的問題 #16219
15、讓 union 語句的行為和 select 語句保持相同,修復把 warnings 當 error 的問題 #16138
16、修復 TopN 下推到 mocktikv 中的執行錯誤 #16200
17、增大 chunk.column.nullBitMap 的初始化長度,以避免多餘的 runtime.growslice 開銷 #16142 - TiKV
1、修復 replica read 導致 TiKV panic 的問題 #7418 #7369
2、修復 restore 產生許多空 Region 的問題 #7419
3、修復重複的 resolve lock 請求可能會破壞悲觀事務原子性的問題 #7389 - TiFlash
1、修復從 TiDB 同步 schema 時,進行 rename table 時潛在的問題
2、修復多數據路徑配置下進行 rename table 會導致數據丟失的問題
3、修復某些場景下 TiFlash 存儲空間上報錯誤的問題
4、修復開啟 Region Merge 情況下從 TiFlash 讀取時潛在的問題 - Tools
1、TiDB Binlog
a、修復因為 TiFlash 相關的 DDL job 導致 Drainer 同步中斷的問題 #948 #942
2、BR
a、修復關閉 checksum 情況下,仍然執行 checksum 的問題 #223
b、修復 TiDB 開啟 auto-random 或 alter-pk 時,增量備份失敗的問題 #230 #231