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

【DBaaS】TiDB Cloudの アーキテクチャと新機能 - db tech showcase 2022 Tokyo

PingCAP-Japan
November 23, 2022

【DBaaS】TiDB Cloudの アーキテクチャと新機能 - db tech showcase 2022 Tokyo

TiDBをマネージドサービスとしてご利用いただけるTiDB Cloudは日、週単位で新機能の追加、改善を行っております。
本スライドでは、最近のTiDB、TiDB Cloudのリリースサイクルと追加されてきた新機能についてお話しするとともに、今後リリースされる予定となっている新機能について紹介いたします。
出典:db tech showcase 2022

トピック:
・TiDB概要
・TiDBのリリースサイクルと新機能
・TiDB Cloudのリリースサイクルと新機能
・TiDB Cloudアーキテクチャの変遷

アーカイブ動画:
https://youtu.be/WJhKQEq9EIQ

PingCAP-Japan

November 23, 2022
Tweet

More Decks by PingCAP-Japan

Other Decks in Technology

Transcript

  1. 【DBaaS】TiDB Cloudのアーキテクチャと新機能
    Yasuo Honda / 本多康夫
    Technical Support Engineer
    PingCAP株式会社

    View full-size slide

  2. PingCAP株式会社
    Technical Support Engineer
    本多 康夫
    バックグラウンド
    ● PingCAPで技術サポートや海外の開発チームと
    連携し製品メンテナンスなどに対応
    ● Oracle ACE Pro
    ● 開発から運用まで幅広い業務に従事
    自己紹介

    View full-size slide

  3. アジェンダ
    ● TiDB概要
    ● TiDBのリリースサイクルと新機能
    ● TiDB Cloudのリリースサイクルと新機能
    ● TiDB Cloudアーキテクチャの変遷

    View full-size slide

  4. TiDB概要
    TiDB : SQL処理
    TiKV : 行指向ストレージエンジン
    TiFlash : 列指向ストレージエンジン
    PD : クラスタ管理

    View full-size slide

  5. TiDBのリリースサイクルと新機能

    View full-size slide

  6. TiDBのリリースサイクル
    ● TiDB 6.1よりLTSとDMRのコンセプトを導入
    ● LTS : Long Term Support
    ○ 本番環境用
    ○ 約6ヶ月間隔でリリース
    ○ Bug fixを行う(TiDB 6.1.2が2022年10月24日にリリース)
    ● DMR : Development Milestone Release
    ○ 新機能のテスト、開発、PoC(Proof of Concept)用
    ○ 約2ヶ月間隔でリリース
    ○ Bug fixバージョンはリリースされません(6.2.0の次は6.3.0になります)
    ● https://www.pingcap.com/tidb-release-support-policy/

    View full-size slide

  7. TiDBのリリースサイクル
    ● https://docs.pingcap.com/tidb/dev/release-timeline

    View full-size slide

  8. TiDBの新機能
    ● リリースノートレベルの改善
    ● MySQLとの互換性の改善
    ● 内部的な改善
    ● ドキュメンテーションの改善
    ● これから予定される新機能

    View full-size slide

  9. TiDBの新機能 : リリースノートレベルの改善
    ● TiDB 6.1
    ○ Raft Engineがデフォルトのログストレージエンジン
    ● TiDB 6.2
    ○ BRを利用したPoint-in-Timeリカバリに対応
    ● TiDB 6.3
    ○ JSON型サポートがGA(General Availability)に

    View full-size slide

  10. TiDB 6.1新機能 : Raft Engine
    ● Raft Engineとは
    ○ TiKVのRaftログの保存をRocksDBから置き換えたもの
    ○ 書き込みI/Oを25%から40%削減
    ○ 書き込みレイテンシーの安定化
    ○ TiDB 5.4でexperimentalとして導入され、TiDB 6.1でデフォルトに

    View full-size slide

  11. https://pingcap.co.jp/raft-engine-tikv-database/

    View full-size slide

  12. TiDB 6.2新機能 : BRを利用したPITR
    ● BRを利用したPoint-in-Timeリカバリに対応しました
    ○ https://docs.pingcap.com/tidb/v6.2/point-in-time-recovery
    ● 従来はTiDB Binlogを利用したPITRが可能ですが、TiDB 5.0の1PCに対応しないな
    どの制限がありました
    ● `br log start` : ログバックアップ
    ● `br backup full` : フルバックアップ
    ● `br restore point` : 時間指定のリストア

    View full-size slide

  13. TiDB 6.3新機能 : JSON型サポート
    ● JSON型サポートがGA(General Availability)になりました
    ● https://docs.pingcap.com/tidb/v6.3/data-type-json
    ● JSON型に対してexpression indexも利用可能です
    ● 利用可能な関数 : `tidb_allow_function_for_expression_index`

    View full-size slide

  14. TiDBの新機能 : MySQLとの互換性の改善
    ● アドバイザリーロック (get_lock(), release_lock())
    ○ Ruby on Railsなどのマイグレーション(テーブルの作成)時に使用される
    ● Savepoint
    ○ アプリケーションフレームワークのnested transactionシミュレートに利用される
    ● Lock/unlock database user
    ○ データベースユーザーを一時的にログインできないように

    View full-size slide

  15. TiDBの新機能 : 内部的な改善

    View full-size slide

  16. 内部的な改善: pushdownされる関数の追加
    ● Pushdownとは : TiKVまたはTiFlashから関数の結果のみをTiDBに送る
    ● TiKVにpushdownされる関数の追加
    ○ `json_contains`
    ○ `regexp_like`, `regexp_instr`,`regexp_replace`
    ● TiFlashにpushdownされる関数の追加
    ○ `bin`
    ○ `space`
    ○ `lead`,`lag`
    ○ `cast( as time)`
    ○ `elt`

    View full-size slide

  17. 内部的な改善 : 新しいオプティマイザーヒント
    ● /*+ no_decorrelate() */
    ● /*+ hash_build(t1) */
    ● /*+ hash_probe(t1) */
    ● /*+ merge() */
    ○ マージヒントは従来からありましたが、テーブルだけでなくビューにも対応しまし

    ● /*+ semi_join_rewrite() */
    ● /*+ leading(t1, t2) */
    ● /*+ straight_join */

    View full-size slide

  18. 内部的な改善 : 新しい統計情報コストモデル
    ● TiDB 6.2でexperimentalとして導入され、デフォルトでは無効(V1を利用)
    ○ コストモデルV2では、コスト計算式の回帰校正をより正確に行い、コスト計算式
    の一部を調整しています
    ● 追加されたシステム変数
    ○ tidb_cost_model_version
    ○ tidb_enable_new_cost_interface

    View full-size slide

  19. 内部的な改善 : 設定ファイルからシステム変数へ
    ● TiDBの設定ファイルはTiDB Cloudでは利用できないため、従来の設定ファイルを
    システム変数に移行しています
    ○ “committer-concurrency” → tidb_committer_concurrency
    ○ “enable-batch-dml” → tidb_enable_batch_dml
    ○ "query-log-max-len"→ tidb_query_log_max_len
    ○ mem-quota-query → tidb_mem_quota_query
    ● 今後も設定ファイルでのみ変更可能な項目は残ります
    ○ TiDB Cloudでの設定ファイルによる変更は、PingCAPテクニカルサポートにお
    問い合わせください。弊社側で設定変更を実施いたします。

    View full-size slide

  20. 内部的な改善 : Plan replayer
    ● 実行計画に問題がある場合
    ○ 問題が発生しているTiDB Clusterのシステム情報とともに、必要な情報をzip
    ファイルでエクスポート、インポートできる機能
    ● PLAN REPLAYER DUMP EXPLAIN [ANALYZE] sql-statement

    View full-size slide

  21. https://docs.pingcap.com/ja/tidb/v6.2/sql-plan-replayer

    View full-size slide

  22. ドキュメンテーション改善

    View full-size slide

  23. ドキュメンテーション改善 : ロードマップ
    ● https://github.com/pingcap/tidb/blob/master/roadmap.md
    ● TiDBのロードマップを公開しています
    ● ロードマップの分野(domain)
    ○ スケーラビリティーと安定性の改善
    ○ HTAP
    ○ TiDB proxy
    ○ セキュリティ

    View full-size slide

  24. https://github.com/pingcap/tidb/blob/master/roadmap.md

    View full-size slide

  25. ドキュメンテーション改善 : トラブルシュート
    ● TiDBで発生しうる問題解決のためのドキュメント
    ○ ホットスポットの問題のトラブルシューティング
    ○ ロック競合のトラブルシューティング
    ○ クラスタセットアップのトラブルシューティング
    ○ など

    View full-size slide

  26. https://docs.pingcap.com/ja/tidb/stable/tidb-troubleshooting-map

    View full-size slide

  27. ドキュメンテーション改善 : デザインドキュメント
    ● TiDB自体の開発のためのデザインドキュメントも公開されています
    ○ Adding Index Acceraration (インデックス作成の高速化)
    ○ Proposal: Extend tidb_constraint_check_in_place to Support Pessimistic
    Transactions (悲観ロックでの遅延制約)
    ○ Proposal: Session Manager ( セッションマネージャー)
    ● これらのドキュメントは主にTiDB自体の開発目的で作成されております

    View full-size slide

  28. TiDB:これから予定される新機能

    View full-size slide

  29. TiDBの新機能 : これから予定される新機能
    ● General plan cache / 一般プランキャッシュ(仮)
    ● Flashback database / フラッシュバックデータベース
    ● Foreign key / 外部キー制約
    ● お願い :
    ○ 上記の機能は現在実際に開発中の新機能です。ただし、リリースされるかどう
    か、またその時期については確定した情報はございません
    ○ 上記の新機能の追加を前提とした計画はされないようお願いいたします

    View full-size slide

  30. 予定される新機能 : General plan cache
    ● 現在は、Prepared statementのみ実行計画をキャッシュ可能
    ● 一般(リテラルのみの)SQLに対しても実行計画をキャッシュする計画

    View full-size slide

  31. 予定される新機能 : Flashback database
    ● 現在のflashbackはテーブル単位
    ● Flashback databaseは、TiDB Cluster全体をある過去の時間に戻す機能
    ● 予定されているSQL: `flashback cluster to timestamp `

    View full-size slide

  32. 予定される新機能 : Foreign key
    ● MySQLとの互換性のうち、もっとも要望/質問のあった機能の一つ
    ● 現在はDDLのタスクが進んでおり、今後DMLのタスクを実施予定
    ○ https://github.com/pingcap/tidb/issues/36982

    View full-size slide

  33. TiDBの新機能 : 新機能を手軽に試すには
    ● `tiup playground nightly`
    ● TiDB v6.4.0-alpha

    View full-size slide

  34. TiDB Cloudのリリースサイクルと新機能

    View full-size slide

  35. TiDB Cloudとは
    フルマネージド
    TiDB on AWS /
    GCP

    View full-size slide

  36. TiDB Cloudのリリースサイクル
    ● 数日から1週間程度の間隔で新機能をリリース
    ● https://docs.pingcap.com/tidbcloud/release-notes-2022
    ● 新しいTiDBバージョンもTiDB Cloudですぐに利用可能です
    ○ Developer Tier : DMR(TiDB 6.3.0)を中心とした利用
    ○ Dedicated Tier : LTS(TiDB 6.1.x)を中心とした利用

    View full-size slide

  37. TiDB Cloud : 代表的な新機能
    ● Pause or Resume a TiDB Cluster
    ● Download TiDB cluster CA
    ● TiDB Cloud Terraform Provider
    ● TiDB Cloud API (beta)
    ● Datadog Integration

    View full-size slide

  38. TiDB Cloud: Pause or Resume a TiDB Cluster
    ● https://docs.pingcap.com/tidbcloud/pause-or-resume-tidb-cluster
    ● TiDB Cloudの「一時停止」と「再開」が可能です
    ● 開発、テスト環境のコスト削減などに役立ちます

    View full-size slide

  39. TiDB Cloud: Download TiDB cluster CA
    ● https://docs.pingcap.com/tidbcloud/connect-to-tidb-cluster#connect-via-sta
    ndard-connection
    ● TiDB cluster CA (ca.pem)がダウンロード可能です
    ○ TLS 1.2
    ○ Dedicated Tierのみの機能です

    View full-size slide

  40. TiDB Cloud: TiDB Cloud Terraform Provider
    ● https://registry.terraform.io/providers/tidbcloud/tidbcloud
    ● TiDB Cloudでのcluster作成、変更(scale out)、 一時停止、バックアップ、リストアな
    どの操作がTerraformを利用して可能になりました
    ● 利用方法は下記blog(英語版となります)を参照
    ● https://dev.to/cloud-ecosystem/manage-tidb-cloud-with-terraform-15id

    View full-size slide

  41. https://dev.to/cloud-ecosystem/manage-tidb-cloud-with-terraform-15id

    View full-size slide

  42. TiDB Cloudロードマップ
    ● https://docs.pingcap.com/tidbcloud/tidb-cloud-roadmap
    ● 計画しているロードマップを公開しています
    ● ロードマップの分野(domain)
    ○ Developer experience : Add SQL Editor
    ○ Enterprise-grade features: Manage multiple organizations
    ○ UI experience:

    View full-size slide

  43. https://docs.pingcap.com/tidbcloud/tidb-cloud-roadmap

    View full-size slide

  44. TiDB Cloudアーキテクチャの変遷

    View full-size slide

  45. TiDB Cloud: アーキテクチャ

    View full-size slide

  46. TiDB Cloud: TiDB operator
    TiDB Operator
    Learn more about TiDB Operators: https://github.com/pingcap/tidb-operator

    View full-size slide

  47. TiDB Cloud : GitOpsサブシステム
    TiDB cluster config
    management via Git
    - デフォルト設定
    - カスタマイズ
    - Pull Requestの
    マージにより設定変

    お客様のクラスタ設定を手動で触らずに行います

    View full-size slide

  48. TiDB Cloud: セキュリティ
    ● テナントごとのVPCは隔離されています
    ● システム全体でmTLS (mutual TLS)
    ○ 認証と認可
    ○ 暗号化
    ● コントロールプレーンユーザーはTiDBの
    RBAC(ロールベースアクセス制御)で管理さ
    れています

    View full-size slide

  49. TiDB Cloud: 内部アーキテクチャの変更
    課題
    TiDB Cloud はhttps://gardener.cloud/ for
    k8s-as-a-serviceのために利用してきました
    ● クラスター毎のオーバーヘッドが大きい
    ● ネットワークの考え方が、 TiDB Cloudの
    ユースケースと合わない
    ● カスタマイズが難しい
    ● 操作が難しい
    なお、上記はTiDB Cloudにとっての考え方であ
    り、Gardener自体の有用性を否定するものではあ
    りません。

    View full-size slide

  50. TiDB Cloud: 内部アーキテクチャの変更
    対応
    ● マネージドサービスの利用
    ○ Google Kubernetes Engine(GKE)
    ○ Amazon EKS
    ● 小さなビルディングブロックの組み合わせ
    ○ 容易なカスタマイズ

    View full-size slide

  51. TiDBやTiDB Cloudについて
    もっと知りたくなったら

    View full-size slide

  52. TiDB関連情報
    ● Twitter: @PingCAP_Japan
    ● Slack: https://tidbcommunity.slack.com/
    ○ #tidb-japan チャンネルで日本語での情報がやりとりできます

    View full-size slide

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

    View full-size slide