Slide 1

Slide 1 text

LT
 ゆるSRE勉強会 #6
 〜TiDB に移行してみたが、実際どうなん?〜
 2024/6/6


Slide 2

Slide 2 text

©2024 Voicy, Inc. 自己紹介 名前:織田 薫(かおる)
 会社:株式会社Voicy
 職業:SRE
 趣味:ゴスペル・ぺんぎん
 特技:Ask me


Slide 3

Slide 3 text

©2024 Voicy, Inc.

Slide 4

Slide 4 text

©2024 Voicy, Inc. 本日のお品書き
 1. TiDBとは
 2. AuroraからTiDBへの移行
 3. Pros & Cons
 まとめ


Slide 5

Slide 5 text

©2024 Voicy, Inc. 1. TiDBとは
 ● PingCAP社が開発したオープンソースの NewSQLデータベース
 ● MySQLとの互換性(5.7 / 8.0 相当)
 ● 水平方向への拡張性と高可用性
 ● ベクトル検索が最近実装された


Slide 6

Slide 6 text

©2024 Voicy, Inc. 1. TiDBとは
 ● TiDBの主な特徴
 ○ MySQL互換性: 既存のMySQLアプリケーションやツールをそのま ま利用可能
 ○ 水平スケーラビリティ: ノードを追加することで、データ容量と処理 能力を容易に拡張可能
 ○ 高可用性: データを複数のノードに分散し、障害発生時にもサー ビス継続が可能
 ○ HTAP (Hybrid Transactional and Analytical Processing): トランザ クション処理と分析処理を同じデータベース上で実行可能
 ○ クラウドネイティブ: Kubernetesなどのクラウド環境での運用に最 適化


Slide 7

Slide 7 text

©2024 Voicy, Inc. 1. TiDBとは
 ● TiDBの仕組み


Slide 8

Slide 8 text

©2024 Voicy, Inc. 1. TiDBとは
 ● TiDB
 ○ SQLレイヤーを担当するステートレスなコンポーネ ント
 ○ MySQL互換のプロトコルとSQL構文をサポートして おり、既存のMySQLアプリケーションやツールをそ のまま利用可能
 ○ クエリの実行計画を最適化し、TiKVやTiflashにクエ リを分散実行する
 ○ トランザクション管理、ACID特性の保証も行う


Slide 9

Slide 9 text

©2024 Voicy, Inc. 1. TiDBとは
 ● TiKV
 ○ データの保存とレプリケーションを担当する分散 Key-Valueストア
 ○ Raftコンセンサスアルゴリズムを用いてデータの整 合性を保証し、高可用性を実現
 ○ データは複数のノードに分散して保存され、任意の ノードで読み書きが可能
 ○ スケーラビリティが高く、ノードを追加することで容 易に容量を拡張可能


Slide 10

Slide 10 text

©2024 Voicy, Inc. 1. TiDBとは
 TiKV1 TiKV2 TiKV3 Store1 Store1 Store2 Store2 Store3 Store3 1a 1c 1d ● TiKV


Slide 11

Slide 11 text

©2024 Voicy, Inc. 1. TiDBとは
 ● TiFlash
 ○ TiDBの拡張コンポーネントで、カラムナーストレー ジを採用した分析処理エンジン
 ○ 大規模なデータセットに対する複雑な分析クエリを 高速に実行可能
 ○ TiKVと連携して動作し、リアルタイムの分析処理を 実現
 ○ TiDBと同じSQLインターフェースを使用するため、 分析クエリとトランザクション処理をシームレスに連 携可能


Slide 12

Slide 12 text

©2024 Voicy, Inc. 1. TiDBとは
 ● PD(Placement Driver)
 ○ TiDBクラスター全体の管理とスケジューリングを担 当するコンポーネント
 ○ TiKVのデータ分散、レプリカ配置、負荷分散などを 自動的に行う
 ○ TiDBクラスターの全体的な状態を監視し、障害発 生時には自動的にリカバリーを行う
 ○ スケーラビリティが高く、TiDBクラスターの規模に応 じてPDノードを追加可能


Slide 13

Slide 13 text

©2024 Voicy, Inc. 2. AuroraからTiDBへの移行
 ● 一部のデータベースを移行
 ● 移行前に評価を1年近くかけて行った
 ● TiDB向けのクエリチューニングなどは、PingCAP 側でサポートしてくれた


Slide 14

Slide 14 text

©2024 Voicy, Inc. 2. AuroraからTiDBへの移行
 ● 移行方法
 Data Migration
 Changefeed


Slide 15

Slide 15 text

©2024 Voicy, Inc. 3. Pros & Cons
 ● Pros
 ○ スケール台数制限とかはない
 ○ Writerが限定されない
 ○ MySQL互換なので、ほぼそのまま動く
 ○ AZ分散が自動的にされる
 ○ 導入サポートは充実


Slide 16

Slide 16 text

©2024 Voicy, Inc. 3. Pros & Cons
 ● Cons
 ○ TiKVのスケールは3台1セット
 ○ Auroraで問題ないクエリーがTiDBでは重かっ たりする
 ○ TiDBが意外にメモリを喰う(クエリ次第)
 ○ リソース制限には気をつけよう
 ○ Explainの表示はかなり違う
 ○ オートスケールほしい


Slide 17

Slide 17 text

©2024 Voicy, Inc. まとめ
 ● NewSQLとは言われるが、MySQL互換ではある ので、特に違和感なく使用できる
 ● Proxyやオートスケールなど、細かい点はAWSの 方が充実はしている
 ● 金融系などMCな環境でも採用されているので、 信頼性はある程度あると考えられる


Slide 18

Slide 18 text

©2024 Voicy, Inc. We’re hiring
 エンジニア募集してます!
 カジュアル面談しましょう


Slide 19

Slide 19 text

©2024 Voicy, Inc. ご清聴
 ありがとうございました!