Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

これまでのウェビナースケジュール 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新機能の紹介

Slide 3

Slide 3 text

次回以降のウェビナースケジュール https://pingcap.co.jp/event/ 
 
 2023年6月15日(木) 14:00-15:00 【TiDB Serverless GA直前】TiDB新章。Serverless + Data API + AIによる新 たな活用

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

● 新機能を頻繁にリリースするサイクルと、比較的安定したリリースするサイクルの両立を図る ● 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とは何か

Slide 7

Slide 7 text

● 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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

TiDB 7.0 DMR新機能の紹介

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

リソースコントロール機能の改善 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 予想できないワークロードによって、他の処理の妨げになることが ある

Slide 12

Slide 12 text

● 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` (有効) リソースコントロール機能の改善

Slide 13

Slide 13 text

● 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の実行計画のキャッシュ

Slide 14

Slide 14 text

● 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の実行計画のキャッシュ

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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;

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

TiDB 6.6 DMR新機能の紹介

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

● 外部キーに関する設定 ○ 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 外部キーのサポート

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

● 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で利用する方法

Slide 27

Slide 27 text

次のLTSの予定

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

Q&A

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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の理解を深めることができます。

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

告知 『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を使用したことがない - 導入を検討したいプロジェクトがある - 検討事例/プロモーションへのご協力 ※フォームにご入力の上、キャンペーンにお申し込みください。審査結果およびキャンペーンの詳細について担当者より連絡いたします。

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

Thank You!
 https://www.pingcap.com/
 [email protected]