分散 DBMS TiDB 3.0 リリース

利用可能 分散DBMSリリース TiDB3.0Googleのテクノロジーの影響を受けて開発された スパナ и F1。 TiDB は、リアルタイム トランザクション (OLTP) の提供と分析クエリの処理の両方が可能なハイブリッド HTAP (ハイブリッド トランザクション/分析処理) システムのカテゴリに属します。 プロジェクトは 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)、ビュー、ウィンドウ関数、サブクエリがサポートされています。 提供される機会は、PhpMyAdmin などの Web アプリケーションの TiDB を使用した作業を整理するのに十分です。 Gogs そしてWordPress。
  • スケールアウトと復元力: 新しいノードを追加するだけで、ストレージと処理能力をスケールアップできます。 データは冗長性を備えてノード間で分散され、個々のノードに障害が発生した場合でも操作を継続できます。 障害は自動的に処理されます。
  • このシステムは一貫性を保証しており、実際にはトランザクションを完了するために多くのノードからのデータが使用されるにもかかわらず、クライアント ソフトウェアからは XNUMX つの大きな DBMS のように見えます。
  • ノード上の物理データ ストレージには、ローカル ストレージ エンジン GoLevelDB やBoltDB、独自の分散ストレージ エンジンなど、さまざまなバックエンドを使用できます。 TiKV.
  • ストレージ スキームを非同期に変更する機能。これにより、進行中の操作の処理を停止することなく、その場で列とインデックスを追加できます。

メイン イノベーション:

  • 生産性を向上させるための取り組みが行われてきました。 Sysbench テストでは、3.0 リリースは選択および更新操作で 2.1 ブランチより 1.5 倍、TPC-C テストで 4.5 倍優れています。 最適化は、「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 と互換性のあるウィンドウ関数 (ウィンドウ関数または分析関数) のサポートが追加されました。 ウィンドウ関数を使用すると、クエリの各行が他の行を使用して計算を実行できます。 グループ化された行のセットを XNUMX つの行に折りたたむ集計関数とは異なり、ウィンドウ関数は、結果セットの XNUMX つ以上の行を含む「ウィンドウ」の内容に基づいて集計します。 実装されたウィンドウ関数には次のようなものがあります。
    NTILE、LEAD、LAG、PERCENT_RANK、NTH_VALUE、CUME_DIST、FIRST_VALUE、LAST_VALUE、RANK、DENSE_RANK、および ROW_NUMBER。

  • ビュー (VIEW) の実験的サポートを追加しました。
  • パーティショニング システム (パーティショニング) が改善され、値またはハッシュの範囲に基づいてデータをセクションに分散する機能が追加されました。
  • プラグイン開発用のフレームワークが追加されました。たとえば、プラグインは IP ホワイトリストまたは監査ログを使用するようにすでに準備されています。
  • SQLクエリ実行プラン(SQLプラン管理)を構築するための「EXPLAIN ANALYZE」機能の実験的サポートを提供しました。
  • 次の行 ID を取得するための next_row_id コマンドを追加しました。
  • 新しい組み込み関数 JSON_QUOTE、JSON_ARRAY_APPEND、JSON_MERGE_PRESERVE、BENCHMARK、COALESCE、および NAME_CONST が追加されました。

出所: オープンネット.ru

コメントを追加します