TiDB 3.0.4  發布,分散式 NewSQL 資料庫

←手機掃碼閱讀     admin @ 2019-10-09 , reply:0

TiDB 3.0.4 已經發布,內容如下:

  • 新特性
    • 新增系統表 performance_schema.events_statements_summary_by_digest,用於排查 SQL 級別的性能問題
    • TiDB 的 SHOW TABLE REGIONS 語法新增 WHERE 條件子句
    • Reparo 新增 worker-count 和 txn-batch 配置項,用於控制恢復速率
  • 改進提升
    • TiKV 支持批量 Split 和空的 Split 命令,使得 Split 可以批量進行
    • TiKV 添加 RocksDB 雙向鏈表支持,提升逆序掃性能
    • Ansible 新增 iosnoop 和 funcslower 兩個 perf 工具,方便診斷集群狀態
    • TiDB 優化慢日誌輸出內容,刪除冗餘欄位
  • 行為變更
    • TiDB 修改 txn-local-latches.enable 默認值為 false,默認不啟用本地事務衝突檢測
    • TiDB 添加全局作用域系統變數 tidb_txn_mode,並默認允許使用悲觀鎖,請注意默認情況下,TiDB 仍然使用樂觀鎖
    • TiDB 慢日誌中的 Index_ids 欄位替換為 Index_names 欄位,提升慢日誌易用性
    • TiDB 配置文件中添加 split-region-max-num 參數,用於調整 SPLIT TABLE 語法允許的最大 Region 數量
    • TiDB 修改 SQL 超出內存限制后的行為,從斷開鏈接修改為返回 Out Of Memory Quota 錯誤
    • 為避免誤操作,TiDB 默認不再允許刪除列的 AUTO_INCREMENT 屬性,當確實需要刪除時,請更改系統變數 tidb_allow_remove_auto_inc
  • 問題修復
    • TiDB 修復特殊語法 PRE_SPLIT_REGIONS 沒有使用註釋的方式向下游同步的問題
    • TiDB 修復使用游標獲取 PREPARE + EXECUTE 執行結果時,慢日誌不正確的問題
    • PD 修復相鄰小 Region 無法 Merge 的問題
    • TiKV 修復空閑集群中文件描述符泄漏導致長期運行可能會引起 TiKV 進程異常退出的問題

TiDB

  • SQL 優化器
    • 修復 Feedback 切分查詢範圍出錯的問題 #12170
    • 修改當 SHOW STATS_BUCKETS 結果中包含無效 Key 時的行為,將返回錯誤修改為使用 16 進位顯示 #12094
    • 修複查詢中包含 SLEEP 函數時(例如 select 1 from (select sleep(1)) t;)),由於列裁剪導致查詢中的 sleep(1) 失效的問題 #11953
    • 當查詢只關心表的行數而不關心表數據時,使用索引掃描降低 IO #12112
    • 當 use index() 中沒有指定索引時不去使用任何索引,和 MySQL 兼容 (如 explain select a from t use index();#12100
    • 嚴格限制統計信息 CMSketch 中 TopN 記錄的數量,修復快速 analyze 因為超過事務大小限制而失敗的問題 #11914
    • 修復 Update 語句包含子查詢時,轉換子查詢出現的錯誤 #12483
    • 將 Limit 運算元下推到 IndexLookUpReader 執行邏輯中優化 select ... limit ... offset ... 的執行性能 #12378
  • SQL 執行引擎
    • PREPARED 語句執行錯誤時,在日誌中列印 SQL 語句 #12191
    • 分區表使用 UNIX_TIMPESTAMP 函數分區時,支持分區裁剪 #12169
    • 修復 AUTO INCREMENT 分配 MAX int64 和 MAX uint64 沒有報錯的問題 #12162
    • SHOW TABLE … REGIONS 和 SHOW TABLE .. INDEX … REGIONS 語法新增 WHERE 條件子句 #12123
    • 修改 SQL 超出內存限制后的行為,從斷開鏈接修改為返回 Out Of Memory Quota 錯誤 #12127
    • 修復 JSON_UNQUOTE 函數處理 JSON 文本結果不正確的問題 #11955
    • 修復 INSERT 語句中,第一行中為 AUTO_INCREMENT 列賦值,LAST INSERT ID 不正確的問題(例如 insert into t (pk, c) values (1, 2), (NULL, 3)#12002
    • 修復 PREPARE 語句中,GroupBY 解析規則錯誤的問題 #12351
    • 修復點查中許可權檢查不正確的問題 #12340
    • 修復 PREPARE 語句類型沒有記錄在監控中的問題 #12331
    • 支持點查中表名使用別名(例如 select * from t tmp where a = "aa"#12282
    • 修復向 BIT 類型列插入數值時,值沒有作為無符號類型處理而導致插入負數報錯的問題 #12423
    • 修復時間取整不正確的問題(例如 2019-09-11 11:17:47.999999666 應該被取整到 2019-09-11 11:17:48#12258
    • 調整表達式黑名單系統表的用法(例如 < 與 lt 等價)#11975
    • 調整函數不存在的錯誤消息,添加資料庫前綴(例如 [expression:1305]FUNCTION test.std_samp does not exist#12111
  • Server
    • 慢日誌中添加 Prev_stmt 欄位,用於最後一條語句是 COMMIT 時輸出前一條語句 #12180
    • 優化慢日誌輸出內容,刪除冗餘欄位 #12144
    • 修改 txn-local-latches.enable 默認值為 false,默認不啟用本地事務衝突檢測 #12095
    • 將慢日誌中的 Index_ids 欄位替換為 Index_names 欄位,提升慢日誌易用性 #12061
    • 添加全局作用域系統變數 tidb_txn_mode,並默認開啟悲觀鎖 #12049
    • 慢日誌中添加 Backoff 欄位,用來記錄 2PC Commit 階段的 Backoff 信息 #12335
    • 修復使用游標獲取 PREPARE + EXECUTE 執行結果時,慢日誌不正確的問題(例如 PREPARE stmt1FROM SELECT * FROM t WHERE a > ?; EXECUTE stmt1 USING @variable#12392
    • 支持使用 tidb_enable_stmt_summary,開啟後會對 SQL 語句進行統計,並可以使用系統表 performance_schema.events_statements_summary_by_digest 查詢統計結果 #12308
    • 調整了 tikv-client 中部分日誌級別(例如由於連接斷開使得列印的 batchRecvLoop fails 日誌級別由 ERROR 改為 INFO#12383
  • DDL
    • 新增變數 tidb_allow_remove_auto_inc,默認禁止刪除列 AUTO INCREMENT 屬性 #12145
    • 修復 TiDB 特殊語法 PRE_SPLIT_REGIONS 沒有使用註釋的方式向下游同步,導致下游資料庫報錯的問題 #12120
    • 在配置文件中添加 split-region-max-num 參數,使得 SPLIT TABLE 語法允許的最大 Region 數量可調整,該參數默認值 10000 #12097
    • 支持將一個 Region 切分成多個 Region,並修復打散 Region 超時的問題 #12343
    • 修復當索引包含自增列,並且該自增列被兩個索引引用時刪除失敗的問題 #12344
  • Monitor
    • 增加監控指標 connection_transient_failure_count,用於統計 tikvclient 的 gRPC 連接錯誤數量 #12093

TiKV

  • Raftstore
    • 修復 Raftstore 統計空 Region 中 key 個數不準確問題 #5414
    • 添加 RocksDB 雙向鏈表支持,提升逆序掃性能 #5368
    • 支持 PD 批量 Split 和空的 Split 命令, 使得 Split 可以批量進行,提高 Split 效率 #5470
  • Server
    • 修複查看版本命令的輸出格式與 2.X 格式不一致的問題 #5501
    • 更新 Titan 至 3.0 分支最新版本 #5517
    • 更新 grpcio 至 v0.4.5 版本 #5523
    • 修復 gRPC coredump 問題,支持內存共享,以避免此處引起 OOM #5524
    • 修復空閑集群中文件描述符泄漏導致長期運行可能會引起 TiKV 進程異常退出的問題 #5567
  • Storage
    • 支持悲觀鎖事務心跳檢測 API,以使得 TiDB 的悲觀鎖行為與 MySQL 盡量一致 #5507
    • 修復部分情況下點查性能較低的問題 #5495 #5463

PD

  • 修復相鄰小 Region 無法 Merge 的問題 #1726
  • 修復 pd-ctl 的 TLS 啟用參數失效問題 #1738
  • 修復可能導致 PD operator 被意外移除的線程安全問題 #1734
  • Region syncer 支持 TLS #1739

Tools

  • TiDB Binlog
    • Reparo 新增 worker-count 和 txn-batch 配置項,用於控制恢復速率 #746
    • Drainer 優化內存使用,提升同步執行效率 #737
  • TiDB Lightning
    • 修復從 checkpoint 點重新導入可能會導致 TiDB Lightning 崩潰的問題 #237
    • 修改計算 AUTO_INCREMENT 的演算法,降低溢出的風險 #227

TiDB Ansible

  • 更新 TiSpark 版本至 2.2.0 #926
  • 更新 TiDB 配置項 pessimistic_txn 的默認值為 true #933
  • 新增更多系統級別監控到 node_exporter #938
  • 新增 iosnoop 和 funcslower 兩個 perf 工具,方便診斷集群狀態 #946
  • Ansible 的 Raw 模塊更新成 Shell 模塊,解決密碼過期等場景發生的長時間等待問題 #949
  • 更新 TiDB 配置項 txn_local_latches 的默認值為 false
  • 優化 Grafana dashboard 監控項和告警規則 #962 #963 #969
  • 新增配置文件檢查功能,在部署和升級之前檢查配置文件是否正確 #934 #972

詳情見發布說明:

https://pingcap.com/docs-cn/v3.0/releases/3.0.4/





[admin ]

來源:OsChina
連結:https://www.oschina.net/news/110416/tidb-3-0-4-released
TiDB 3.0.4  發布,分散式 NewSQL 資料庫已經有20次圍觀

http://coctec.com/news/all/show-post-216459.html