TiDB 3.0.0 Beta.1 Release Notes

2019 年 03 月 26 日,TiDB 發佈 3.0.0 Beta.1 版,對應的 TiDB-Ansible 版本爲 3.0.0 Beta。相比 3.0.0 Beta 版本,該版本對系統穩定性、易用性、功能、優化器、統計信息以及執行引擎作了不少改進。git

TiDB

  • SQL 優化器
    • 支持使用 Sort Merge Join 計算笛卡爾積
    • 支持 Skyline Pruning,用一些規則來防止執行計劃過於依賴統計信息
    • 支持 Window Functions
      • NTILE
      • LEADLAG
      • PERCENT_RANK
      • NTH_VALUE
      • CUME_DIST
      • FIRST_VALUELAST_VALUE
      • RANKDENSE_RANK
      • RANGE FRAMED
      • ROW FRAMED
      • ROW NUMBER
    • 增長了一類統計信息,表示列和 handle 列之間順序的相關性
  • SQL 執行引擎
    • 增長內建函數
      • JSON_QUOTE
      • JSON_ARRAY_APPEND
      • JSON_MERGE_PRESERVE
      • BENCHMARK
      • COALESCE
      • NAME_CONST
    • 根據查詢上下文優化 Chunk 大小,下降 SQL 執行時間和集羣的資源消耗
  • 權限管理
    • 支持 SET ROLECURRENT_ROLE
    • 支持 DROP ROLE
    • 支持 CREATE ROLE
  • Server
    • 新增 /debug/zip HTTP 接口,獲取當前 TiDB 實例的信息
    • 支持使用 show pump status/show drainer status 語句查看 Pump/Drainer 狀態
    • 支持使用 SQL 語句在線修改 Pump/Drainer 狀態
    • 支持給 SQL 文本加上 HASH 指紋,方便追查慢 SQL
    • 新增 log_bin 系統變量,默認:0,管理 binlog 開啓狀態,當前僅支持查看狀態
    • 支持經過配置文件管理髮送 binlog 策略
    • 支持經過內存表 INFORMATION_SCHEMA.SLOW_QUERY 查詢慢日誌
    • 將 TiDB 顯示的 MySQL Version 從 5.7.10 變動爲 5.7.25
    • 統一日誌格式規範,利於工具收集分析
    • 增長監控項 high_error_rate_feedback_total,記錄實際數據量與統計信息估算數據量差距狀況
    • 新增 Database 維度的 QPS 監控項 , 能夠經過配置項開啓
  • DDL
    • 增長ddl_error_count_limit全局變量,默認值:512,限制 DDL 任務重試次數,超過限制次數會取消出錯的 DDL
    • 支持 ALTER ALGORITHM INPLACE/INSTANT
    • 支持 SHOW CREATE VIEW 語句
    • 支持 SHOW CREATE USER 語句

PD

  • 模擬器
    • 支持不一樣 store 可採用不一樣的心跳間隔時間
    • 添加導入數據的場景
  • 熱點調度可配置化
  • 增長 store 地址爲維度的監控項,代替原有的 Store ID
  • 優化 GetStores 開銷,加快 Region 巡檢週期
  • 新增刪除 Tombstone Store 的接口

TiKV

  • 優化 Coprocessor 計算執行框架,完成 TableScan 算子,單 TableScan 即掃表操做性能提高 5% ~ 30% 實現行 BatchRows 和列 BatchColumn 的定義
    • 實現 VectorLike 使得編碼和解碼的數據可以用統一的方式訪問
    • 定義 BatchExecutor 接口,實現將請求轉化爲 BatchExecutor 的方法
    • 實現將表達式樹轉化成 RPN 格式
    • TableScan 算子實現爲 Batch 方式,經過向量化計算加速計算
  • 統一日誌格式規範,利於工具收集分析
  • 支持 Raw Read 接口使用 Local Reader 進行讀
  • 新增配置信息的 Metrics
  • 新增 Key 越界的 Metrics
  • 新增碰到掃越界錯誤時 Panic 或者報錯選項
  • 增長 Insert 語義,只有在 Key 不存在的時候 Prewrite 才成功,消除 Batch Get
  • Batch System 使用更加公平的 batch 策略
  • tikv-ctl 支持 Raw scan

Tools

  • TiDB-Binlog
    • 新增 Arbiter 工具支持從 Kafka 讀取 binlog 同步到 MySQL
    • Reparo 支持過濾不須要同步的文件
    • 支持同步 generated column
  • Lightning
    • 支持禁用 TiKV periodic Level-1 compaction,當 TiKV 集羣爲 2.1.4 或更高時,在導入模式下會自動執行 Level-1 compaction
    • 根據 table_concurrency 配置項限制 import engines 數量,默認值:16,防止過多佔用 importer 磁盤空間
    • 支持保存中間狀態的 SST 到磁盤,減小內存使用
    • 優化 TiKV-Importer 導入性能,支持將大表的數據和索引分離導入
    • 支持 CSV 文件導入
  • 數據同步對比工具 (sync-diff-inspector)
    • 支持使用 TiDB 統計信息來劃分對比的 chunk
    • 支持使用多個 column 來劃分對比的 chunk

Ansible

  • N/A

相關文章
相關標籤/搜索