Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TiDB 7.0 DMR新機能の紹介

TiDB 7.0 DMR新機能の紹介

ウェビナー開催日:2023年5月18日

このスライドでは、2023年3月末にリリースされた分散型データベースTiDB 7.0 DMRの新機能を紹介いたします。TiDB 7.0では、リソースコントロール機能の改善、非prepared statementの実行計画のキャッシュ、TiFlashのcompute nodeとstorage nodeを分離し、storage nodeにAmazon S3を利用可能になるなど、メジャーバージョンアップとして新機能を積極的に追加しています。また、TiDB 6.5 LTS以降にリリースされた、TiDB 6.6 DMRで追加されたPartitioned Raft KVストレージエンジン、外部キーのサポートについても紹介いたします。

TiDB 7.0、6.6のDMRバージョンで追加された新機能は、2023年半ばに予定されている次のLTSでも利用可能となります。将来のITSで予定されている新機能を事前に知っていただく機会としてご利用ください。

トピック
・TiDB 7.0 DMR新機能の紹介
・TiDB 6.6 DMR新機能の紹介
・TiDB 7.0 DMRをTiDB Cloudで利用するには

アーカイブ動画:https://youtu.be/R-RR44f_hyA

PingCAP-Japan

May 18, 2023
Tweet

More Decks by PingCAP-Japan

Other Decks in Technology

Transcript

  1. TiDB 7.0 DMR新機能の紹介
    本多康夫
    Technical support engineer at PingCAP Japan

    View Slide

  2. これまでのウェビナースケジュール
    https://pingcap.co.jp/event/
    
 

    2023年1月13日(金) 14:00-15:00 PingCAP Education : インデックスに基づいたチューニング
    2023年1月20日(金) 14:00-15:00 PingCAP Education : TiCDC、Dumpling、Lightningの紹介
    2023年2月3日(金) 14:00-15:00 TiDB 6.5 LTS新機能の紹介
    2023年2月17日(金) 14:00-15:00 PingCAP Education: TiDB CloudのIntegration機能の紹介 - Datadog、
    Prometheus、Vercelとの統合
    2023年3月2日(木) 14:00-15:00 ハンズオン TiDB Cloud Serverless TierとChatGPTのSQL生成を試してみ
    よう!
    2023年3月24日(木) 14:00 - 15:00 TiFlashの紹介
    2023年4月13日(木) 14:00 - 15:00 TiDBにおけるSQLチューニング SQL bindingのご紹介
    2023年5月18日(木) 14:00 - 15:00 TiDB 7.0 DMR新機能の紹介

    View Slide

  3. 次回以降のウェビナースケジュール
    https://pingcap.co.jp/event/
    
 

    2023年6月15日(木) 14:00-15:00 【TiDB Serverless GA直前】TiDB新章。Serverless + Data API + AIによる新
    たな活用

    View Slide

  4. アジェンダ
    ● TiDBのLTS、DMRとは何か
    ● TiDB 7.0 DMR新機能の紹介
    ● TiDB 6.6 DMR新機能の紹介
    ● TiDB 7.0 DMRをTiDB Cloudで利用するには
    ● 次のLTSの予定
    ● Q&A, アンケートのお願い
    ● お知らせ

    View Slide

  5. TiDB LTS、DMRとは何か(おさらい)

    View Slide

  6. ● 新機能を頻繁にリリースするサイクルと、比較的安定したリリースするサイクルの両立を図る
    ● LTS - Long Term Supportの略
    ○ 約6ヶ月間隔でリリースされます
    ○ 新機能が追加されます
    ○ 不具合の修正を含むパッチリリース (例: TiDB 6.1.3やTiDB 6.5.2)も提供されます
    ○ 最新のLTSはTiDB 6.5.2
    ● DMR - Development Milestone Releaseの略
    ○ 約2ヶ月間隔でリリースされます
    ○ 新機能が追加されます
    ○ 不具合の修正を含むパッチリリースは提供されません
    ■ DMRで発生した不具合の修正は次の DMRまたはLTSに含まれます
    ■ DMRのパッチリリースバージョンは常に 0となります(v6.2.0, v6.3.0, v6.4.0)
    ● LTS、DMRはTiDB 6.0.0から導入されました
    ○ TiDB 5以前のバージョンは全て LTSと同等の扱いとなります
    TiDB LTS、DMRとは何か

    View Slide

  7. ● 2023年3月30日にリリース
    ● TiDB 6.6.0(2023年2月20日にリリース)以来、約1ヶ月ぶりのDMRバージョン
    ● https://docs.pingcap.com/tidb/dev/release-6.5.0
    TiDB 7.0 DMR

    View Slide

  8. ● 次のTiDB LTSでは、これまでのDMRの新機能が累積して含まれます
    ● DMR自体を導入しなくても、その新機能について前もって知っていただく機会となります
    ● DMR自体をお試しいただき、フィードバックをいただくことで次の LTSでの機能が改善される可能性もあり
    ます
    ● 次のLTSには、前回のTiDB 6.5以降にリリースされた TiDB 6.6と7.0の機能が含まれるため、本ウェビ
    ナーでは、TiDB 7.0 DMRの新機能に加えて、 TiDB 6.6についても説明します
    DMRについて知る意義

    View Slide

  9. TiDB 7.0 DMR新機能の紹介

    View Slide

  10. ● リソースコントロール機能の改善
    ● Non-prepared statementの実行計画のキャッシュ
    ● TiFlashのcompute nodeとstorage nodeを分離
    ● PiTRとインデックス高速化の非互換性の解消
    ● リモートストレージからの LOAD DATA
    ● その他の新機能
    TiDB 7.0 DMR新機能の紹介

    View Slide

  11. リソースコントロール機能の改善
    1. 3つの業務が同時に稼働しており、
    OLTP(緑)がピーク負荷になっている
    2. OLTP業務(緑)がアイドルタイムに入り、
    OLTPピーク負荷が終了し、バッチ
    (青)業
    務がバーストされる
    3. OLTP業務(緑)がビジータイムに戻り、
    OLTPピーク負荷に切り替わる
    (HR業務(黄色)は常に制限されたリソースのみを利用している
    )
    > CREATE RESOURCE GROUP oltp RU_PER_SEC=4000 BURSTABLE;
    > CREATE RESOURCE GROUP batch RU_PER_SEC=400 BURSTABLE;
    > CREATE RESOURCE GROUP hr RU_PER_SEC=400;
    After
    ワークロードをクォータで制限可能とし、また必要に応じてバースト可
    能となる
    ● クリティカルなワークロードへの影響を最小化する
    ● 場合によってクォータを超えた利用 (バースト)を許可する
    Before
    予想できないワークロードによって、他の処理の妨げになることが
    ある

    View Slide

  12. ● RU
    ○ Request Unitの略
    ○ CPU、IOPS、IO帯域を抽象化した単位
    ○ RU_PER_SECで設定する
    ○ クラスターのキャパシティを CALIBRATE RESOURCE 文で算出し、それを元に割り当てる
    ● BURSTABLE
    ○ リソースグループに割り当てられた RU(Request Unit)以上の空きリソースがクラスターにある場
    合、それを利用可能にする (デフォルトは無効)
    ● リソースコントロールに関する設定
    ○ TiDB tidb_enable_resouce_control
    ■ リソースコントロールを有効にするかどうか
    ■ デフォルトは`ON`(有効)
    ○ TiKV: resource-control.enabled
    ■ TiKVでリソースコントロールを有効にするかどうか
    ■ デフォルトは`true` (有効)
    リソースコントロール機能の改善

    View Slide

  13. ● Before: TiDBにおける実行計画のキャッシュは Prepared statementのみ対応していた
    ○ 明示的にPrepared statementとして PREPARE、SET、EXECUTEする必要がありました
    ○ 例 :
    PREPARE `books_query` FROM 'SELECT * FROM `books` WHERE `id` = ?'
    ;
    SET @id = 1;
    EXECUTE `books_query` USING @id;
    ● After : TiDBにおける実行計画のキャッシュする範囲を拡張しました
    ○ Prepared statementを明示的に実行しなくても、下記のような SQLを実行するだけ
    ○ SELECT * FROM `books` WHERE `id` = 1
    ;
    ● リテラル部分( `id` = 1 )を内部的にパラメータ化して置き換えた実行計画をキャッシュ可能に
    ○ SELECT * FROM `books` WHERE `id` = ?
    ;
    ● Non-prepared statement実行計画のキャッシュにより期待できる効果
    ○ 実行計画を作成する CPU時間の削減をアプリケーション改修なしで可能に
    ○ 実行計画をキャッシュするメモリが必要となります (設定については後述 )
    ● Oracleデータベースでの CURSOR_SHARING = FORCE に設定した動作と類似しています
    Non-prepared statementの実行計画のキャッシュ

    View Slide

  14. ● Non-prepared statement実行計画のキャッシュに関する設定
    ○ tidb_enable_non_prepared_plan_cache
    ■ Non-prepared statementの実行計画をキャッシュするかどうか
    ■ デフォルトは`OFF`(無効)
    ○ tidb_non_prepared_plan_cache_size
    ■ Non-prepared statementの実行計画をキャッシュする数
    ■ デフォルトは100で、1から100000(10万)の範囲で設定可能
    ● Note
    ○ 実行計画のキャッシュは connection単位で行われ、TiDBサーバー単位ではありません
    ○ 現在は実験的(experimental)な機能となっています
    Non-prepared statementの実行計画のキャッシュ

    View Slide

  15. After
    ● Computeとstorageノードをそれぞれスケーリング
    可能
    ○ 高速なスケーリング
    ○ 安価なインフラコスト
    ● 分離 - Write Node, Compute Nodeの分離
    ● オブジェクトストレージ (Amazon S3)利用可能
    Before
    ● TiFlash の利用コストが問題になる
    ● スケーリングが難しい
    ● 書き込みと読み込みが干渉する可能性がある
    TiFlashのcompute nodeとstorage nodeを分離

    View Slide

  16. ● “TiDB 6.5 LTS新機能の紹介”ウェビナーで紹介した「制限事項」は TiDB 7.0 DMRで解決されました
    ○ PiTRでのログバックアップと高速なインデックス作成は併用可能となりました
    PiTRとインデックス高速化の非互換性の解消

    View Slide

  17. After
    ● Lightningの機能を`LOAD DATA`に統合しました
    ● Amazon S3から直接 LOAD DATA INFILEが可
    能になっています
    Before
    リモートソースからのインポートやインポートジョブの管理には、
    Lightningを使用する必要がありました
    リモートストレージからのLOAD DATA
    LOAD DATA INFILE 's3://bucket-name/test.csv?access_key=XXX&secret_access_key=XXX'
    INTO TABLE my_db.my_table
    FIELDS TERMINATED BY ','
    OPTIONALLY ENCLOSED BY ''
    LINES TERMINATED BY '\n'
    WITH detached;

    View Slide

  18. ● TiDB 7.0をリリース:信頼性の高いパフォーマンスと運用のしやすさを実現 - PingCAP株式会社
    ● TiFlashのSpill to Diskによる分析ワークロード安定化
    ● TTLテーブルによるデータの自動期限切れと削除
    ● KEYパーティショニングでスケーラビリティを向上
    ● REORGANIZEパーティションで変化する要件に対応
    その他の新機能

    View Slide

  19. TiDB 6.6 DMR新機能の紹介

    View Slide

  20. ● Partitioned Raft KVストレージエンジン
    ● 外部キーのサポート
    TiDB 6.6 DMR新機能の紹介

    View Slide

  21. Partitioned Raft KVストレージエンジン
    After
    ● スケールイン、アウトの高速化
    ● 読み取り増幅の削減
    ● Compactionでの干渉の軽減
    ● 大きなリージョンサイズ (15GB)
    Before
    ● TiKVノードの書き込みはシングルスレッド
    ● ワークロードの干渉
    ● スケールイン、スケールアウトに時間がかかる
    Notes
    ● 書き込みのワークロード
    (I/O)が多いほ
    ど、得られる性能向上が大きい
    ● TiKVサーバーに必要なメモリサイズは
    増える
    TiKVノード単位から、リージョン単位でRocksDBを起動

    View Slide

  22. ● TiDB 5.0でのRaft Engineに続く、大きなストレージ面での改善
    ○ Raft Engine:TiKVにおける複数Raftログのためのログ構造化組込みストレージエンジン -
    PingCAP株式会社
    ● TiDBの「Partitionated Raft KV」内部
    Partitioned Raft KVストレージエンジン

    View Slide

  23. After
    ● 外部キーを導入している環境からの移行
    ● データの整合性と一貫性
    Before
    ● foreign keyのSQLは無視されていた (SQLエラーとならな
    いようにしていた )
    外部キーのサポート
    Product
    PK ProductID
    Name
    Price
    Order
    PK OrderID
    FK ProductID
    Quantity
    FK CustomerID
    Customer
    PK CustomerID
    FirstName
    LastName
    複数テーブルのデータに参照整合性を導入し、論理的なデータ破壊を防ぐ

    View Slide

  24. ● 外部キーに関する設定
    ○ foreign_key_checks
    ■ 外部キーによる整合性の確認を行うかどうか
    ■ デフォルトは`YES`(有効)
    ● Note
    ○ TiDB 6.5以前は、create tableでのforeign keyは構文レベルではサポートされていましたが、実際の整合性の
    確認は行っていませんでした
    ○ TiDB 6.5以前からTiDB 6.6以降にアップグレードをおこなっても /* FOREIGN KEY INVALID */ のコメントが付与さ
    れ、外部キーによる整合性の確認は行われません
    ○ 一度外部キーを削除し、再度外部キーを作成することで、実際の整合性の確認を行うようになります
    mysql> SHOW CREATE TABLE child\G
    ***************************
    [ 1. row ]***************************
    Table | child
    Create Table | CREATE TABLE `child` (
    `id` int(11) DEFAULT NULL,
    `pid` int(11) DEFAULT NULL,
    KEY `idx_pid` (`pid`),
    CONSTRAINT `fk_1` FOREIGN KEY (`pid`) REFERENCES `test`.`parent` (`id`) ON DELETE CASCADE /* FOREIGN KEY
    INVALID */
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
    外部キーのサポート

    View Slide

  25. TiDB 7.0をTiDB Cloudで利用する方法

    View Slide

  26. ● Dedicated Tierの場合
    ○ 各LTSバージョンまたはメンテナンスバージョンリリース後、デフォルトの TiDBバージョンが更新され
    ます
    ○ Dedicated TierではDMRリリースはデフォルトの TiDBバージョンに選択されません
    ● お客様のTiDBクラスタのDMRへのバージョンアップにより実施可能です
    ○ PoCや新機能の検証のために TiDB CloudでDMRをご利用になりたい場合は、テクニカルサポート
    宛てにチケットの起票をお願いいたします
    ● Serverless Tierの場合
    ○ 現在ご利用いただけるバージョンは TiDB 6.6.0となり、TiDB 7.0は現在Serverless Tierではご利用
    いただけません
    TiDB 7.0をTiDB Cloudで利用する方法

    View Slide

  27. 次のLTSの予定

    View Slide

  28. ● 2023年4月下旬にRC(Release Candidateとしてリリース)
    TiDB 7.1.0 RC

    View Slide

  29. ● GA(General Availability)になる予定の機能
    ○ リソースコントロール
    ○ Multi-valued index
    ○ Generated columns
    ● 7.1 で追加される予定の新機能
    ○ Load base replica read
    ○ DDL pause and resume (experimental)
    ● RCのため、LTSまでに予告なく変更される可能性があります。
    TiDB 7.1 新機能の紹介

    View Slide

  30. Q&A

    View Slide

  31. PingCAP定期ウェビナー
    https://pingcap.co.jp/event/
    ※過去開催アーカイブ :  https://pingcap.co.jp/event-video/

    View Slide

  32. PingCAP Education トレーニング
    トレーニング全体リンク
      https://en.pingcap.com/education/
    無償コース(推奨)
      TiDB Technical Essentials 101:
    内容
      - TiDB全体のアーキテクチャ
      - TiDBの各コンポーネントのアーキテクチャ
      - HTAP Overview & TiFlashのアーキテクチャ
      - TiDB Cloudの始め方
      - TiDB 6.0情報
    Course: TiDB Essentials 101
    トレーニングを通じ、TiDBの理解を深めることができます。

    View Slide

  33. 登壇企業
    (登壇時間順)
    LINE株式会社、SBペイメントサービス株式会社、さくらインターネット株式会社
    Micoworks株式会社、株式会社プレイド、株式会社SBI BITS、株式会社Cygames
    ワンダープラネット株式会社
    イベントURL https://pingcap.co.jp/tidb-user-day-2023/
    告知 『7/7開催・TiDB User Day 2023』
    世界初のChatGPT機能を搭載したNewSQLデータベースTiDBの最新動向を学ぶことができるイベント

    View Slide

  34. 告知 『TiDB Cloud 検証支援キャンペーン』
    今すぐ試そう! TiDB Cloud PoC 3,000USD (40万円相当) デポジット

    キャンペーン期間 2023年4月1日〜2023年9月30日 (最大10社)
    キャンペーン内容 TiDB Cloud 3,000USD (40万円相当) デポジット
    対象・適用条件 下記条件を満たすお客様 (最大10社) 
    - TiDB Cloud Dedicated Tierを使用したことがない
    - 導入を検討したいプロジェクトがある
    - 検討事例/プロモーションへのご協力
    ※フォームにご入力の上、キャンペーンにお申し込みください。審査結果およびキャンペーンの詳細について担当者より連絡いたします。

    View Slide

  35. TiDB Cloud : 無償トライアルのご案内
    https://tidbcloud.com/signup
    Serverless TierではTiDB Cloudを無償で1年間ご利用頂けます。
    ※容量制限はありますが
    本番と同等の機能を
    提供しているため、
    アプリとの接続試験
    などが容易にできます。

    View Slide

  36. OSS Insight : 活発度が分かる分析サービス
    46億を超えるGitHub上のイベント分析するデータベースとしてTiDB (TiFlash)を活用
    https://ossinsight.io/
    ①各イベント発生の推移
    ①GitHubイベント
    データを1分おきに同期 +TiFlash
    https://ossinsight.io/ ②Pull requests地域の表示
    ②分析クエリを
    TiFlash(カラムストア )
    で高速処理
    ③ジャンル内での比較(人気言語等)
    etc…

    View Slide

  37. TiDB / TiDB Cloud
    日本語ドキュメント
    https://docs.pingcap.com/ja/tidb/stable
    日本語訳問題の報告は
    こちらからお願いします。
    https://github.com/pingcap/docs/issues
    issue作成時のLabel:
    i18n-ja
    type/bug-fix

    View Slide

  38. @PingCAP_Japan
    Twitterのフォローをお願いします。

    View Slide

  39. Thank You!

    https://www.pingcap.com/

    [email protected]

    View Slide