分佈式 DBMS TiDB 3.0 發布

可用的 分佈式DBMS發布 TiDB3.0在Google技術的影響下開發的 扳手 и F1。 TiDB 屬於混合 HTAP(混合事務/分析處理)系統類別,能夠提供實時事務(OLTP)和處理分析查詢。 該項目是用 Go 編寫的 分發者 在 Apache 2.0 下獲得許可。

TiDB 特點:

  • 支持 SQL 並提供兼容 MySQL 協議的客戶端接口,可以輕鬆地將現有的 MySQL 編寫的應用程序適配到 TiDB,並允許您使用通用的客戶端庫。 除了MySQL協議之外,您還可以使用基於JSON的API和Spark連接器來訪問DBMS。
  • SQL 的功能包括索引、聚合函數、GROUP BY、ORDER BY、DISTINCT 表達式、合併(LEFT JOIN / RIGHT JOIN / CROSS JOIN)、視圖、窗口函數和子查詢。 提供的機會足以組織使用 TiDB 等 Web 應用程序(例如 PhpMyAdmin、 視護目鏡 和 WordPress;
  • 橫向擴展和彈性:只需添加新節點即可擴展存儲和處理能力。 數據分佈在具有冗餘的節點上,以便在單個節點發生故障時允許操作繼續進行。 故障會自動處理。
  • 該系統保證了一致性,並且對於客戶端軟件來說看起來就像一個大型 DBMS,儘管實際上涉及來自許多節點的數據來完成事務。
  • 節點上的物理數據存儲可以使用不同的後端,例如本地存儲引擎GoLevelDB和BoltDB或專有的分佈式存儲引擎 鈦KV.
  • 異步更改存儲方案的能力,允許您動態添加列和索引,而無需停止正在進行的操作的處理。

主要的 創新:

  • 已經開展了提高生產力的工作。 在 Sysbench 測試中,3.0 版本在選擇和更新操作方面比 2.1 分支高出 1.5 倍,在 TPC-C 測試中比 4.5 分支高出 XNUMX 倍。 優化影響了各種類型的查詢,包括“IN”、“DO”和“NOT EXISTS”子查詢、表合併操作(JOIN)、索引的使用等等;
    分佈式 DBMS TiDB 3.0 發布分佈式 DBMS TiDB 3.0 發布

  • 添加了新的存儲引擎 TiFlash,以通過列綁定存儲實現更好的分析 (OLAP) 性能。 TiFlash 補充了之前提供的 TiKV 存儲,後者以鍵/值格式在行上下文中存儲數據,更適合事務處理 (OLTP) 任務。 TiFlash 與 TiKV 並行工作,數據繼續像以前一樣使用 Raft 協議複製到 TiKV 以確定共識,但對於每組 Raft 副本,都會在 TiFlash 中創建並使用一個額外的副本。 這種方法可以更好地分配 OLTP 和 OLAP 任務之間的資源,並且還可以使事務數據立即可用於分析查詢;

    分佈式 DBMS TiDB 3.0 發布

  • 實現了分佈式垃圾收集器,可以顯著提高大集群下垃圾收集的速度,提高穩定性;
  • 添加了基於角色的訪問控制(RBAC)系統的實驗性實現。 還可以設置 ANALYZE、USE、SET GLOBAL 和 SHOW PROCESSLIST 操作的訪問權限;
  • 新增使用SQL表達式提取慢查詢日誌的功能;
  • 實現了刪除表的快速恢復機制,讓您可以恢復誤刪除的數據;
  • 記錄日誌的統一格式;
  • 增加了對悲觀鎖模式的支持,使得事務處理更接近MySQL;
  • 添加了對與 MySQL 8.0 兼容的窗口函數(窗口函數或分析函數)的支持。 窗口函數允許查詢的每一行使用其他行執行計算。 與將一組行折疊為一行的​​聚合函數不同,窗口函數根據“窗口”的內容進行聚合,該“窗口”包含結果集中的一行或多行。 已實現的窗口函數:
    NTILE、LEAD、LAG、PERCENT_RANK、NTH_VALUE、CUME_DIST、FIRST_VALUE、LAST_VALUE、RANK、DENSE_RANK 和 ROW_NUMBER;

  • 添加了對視圖(VIEW)的實驗性支持;
  • 改進了分區系統(partitioning),增加了根據一系列值或散列將數據分佈到各個部分的能力;
  • 增加了插件開發框架,例如插件已經準備好使用IP白名單或審計日誌;
  • 為用於構建 SQL 查詢執行計劃的 EXPLAIN ANALYZE 函數提供實驗性支持(SQL Plan Management);
  • 添加了 next_row_id 命令來獲取下一行 id;
  • 添加了新的內置函數 JSON_QUOTE、JSON_ARRAY_APPEND、JSON_MERGE_PRESERVE、BENCHMARK、COALESCE 和 NAME_CONST。

來源: opennet.ru

添加評論