Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
TiDBが生まれた背景 そして、TiDB Serverlessへ
Search
PingCAP-Japan
July 16, 2024
Technology
0
170
TiDBが生まれた背景 そして、TiDB Serverlessへ
PingCAP-Japan
July 16, 2024
Tweet
Share
More Decks by PingCAP-Japan
See All by PingCAP-Japan
TiDB 8.2 DMR新機能の紹介
pingcap0315
0
21
TiDB Serverlessのベクトル検索機能の紹介
pingcap0315
0
64
TiDB / Amazon Bedrockで作るRAGアプリケーション
pingcap0315
0
160
TiDB 8.0 DMR新機能の紹介
pingcap0315
0
100
最近たまに見かけるTiDBってなんだ? - Findy
pingcap0315
3
1.4k
TiProxyの紹介
pingcap0315
0
200
TiDB Cloud APIとTerraform TiDB Cloud Providerの紹介
pingcap0315
0
96
TiDB 7.5 LTS新機能の紹介
pingcap0315
0
180
TiDB 7.4:MySQL 8.0互換性対応の紹介
pingcap0315
0
410
Other Decks in Technology
See All in Technology
入門 バックアップ
ryuichi1208
18
7.2k
クレジットカードを製造する技術
yutadayo
83
49k
DenoでもViteしたい!インポートパスのエイリアスを指定してラクラクアプリ開発
bengo4com
2
2k
Databricks Appのご紹介
databricksjapan
0
400
スタサプ ForSCHOOLアプリのシンプルな設計
recruitengineers
PRO
3
720
これはPerl? それともRuby? クイズ〜〜〜〜〜!!!- Perl or Ruby Quiz
moznion
3
2k
From naive to advanced RAG: the complete guide
glaforge
0
360
【㈱アイモバイル】エンジニア向け会社説明資料
imobile
0
480
地域DXにおけるGrafana活用事例
wacky
0
270
Webセキュリティのあるきかた
akiym
33
11k
エムスリー全チーム紹介資料 / Introduction of M3 All Teams
m3_engineering
1
340
テストを楽に書きたい
tomorrowkey
1
220
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
17
1k
Agile that works and the tools we love
rasmusluckow
327
21k
Automating Front-end Workflow
addyosmani
1365
200k
KATA
mclloyd
28
13k
Why Our Code Smells
bkeepers
PRO
334
57k
Become a Pro
speakerdeck
PRO
24
4.9k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
22k
Pencils Down: Stop Designing & Start Developing
hursman
119
11k
Embracing the Ebb and Flow
colly
84
4.4k
Adopting Sorbet at Scale
ufuk
73
9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
653
59k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
1.9k
Transcript
TiDBが⽣まれた背景 そして、TiDB Serverlessへ
⾃⼰紹介 KOITABASHI Yoshitaka PingCAP株式会社 シニアソリューションアーキテクト 💙 Database / Serverless /
Container
Our Mission エンジニアと企業がスピード、敏捷性、スケールをもって イノベーションを起こせるようにすること MySQLと互換性のある OSSの分散型SQLデータベース グローバル 以上で採⽤ 3,000社 ピンキャップ
タイデービー 3,7000+ ★Stars
アジェンダ • NewSQL • TiDB Architecture • なぜTiDBが⽣まれたのか • TiDB
Serverless • TiDB Serverlessデモ
NewSQL
RDBMS / NewSQL ※すべての製品が以下の通りではないですが、大別したイメージとして RDBMS NewSQL ‧マスターとレプリカの明確な区別 ※エンドポイント管理 ‧マスターの性能に律速される ※特にWriteはボトルネック
‧機動的な性能の増減が困難 ‧アプリ側視点での構成がシンプル ※マルチマスター ‧ノード追加による性能向上 ※Read/Write共にスケール ‧リーダースイッチで障害時も⾃動フェイルオーバー ※バージョンアップ時もダウンタイムなし App Computing Nodes App Read / Write ‧‧‧ Read Only Master Read replica リーダー:読み書き担当 フォロワー:バックアップ担当 (リーダーに) Read / Write チャンクの役割分担 Read / Write
TiDB Architecture
分散型SQLデータベース: スループット/可⽤性向上を⽬指す TiDBのアーキテクチャー TiKV TiFlash TiDB TiDB TiFlash TiKV TiKV
PD TSO / Data Location Metadata column型 row型 PD PD クエリ増加 ->ノード追加 容量拡張 ->ノード追加 • SQL解析を⾏う *MySQLプロトコルをKVに変換 • ParserやOptimizerを担う • HTAPではTiKV(row型)かTiFlash(column型)判断 コンピューティング TiKV • OLTP⽤途の分散Key-Value Store※Rocks DB利⽤ • パーティショニングによるデータ分散管理 • Raftや2PCにより整合性担保 TiFlash *optional • HTAP利⽤時の追加コンポーネント • OLAP⽤途のカラム型ストア ストレージ • データ配置場所の管理(Region管理) • 分散トランザクションで利⽤するTSOを発⾏ 司令塔 PD TiDB TiFlash TiKV
⾃動シャーディング‧負荷分散 Region毎の冗⻑化により耐障害性、負荷分散を実現 Region 3* Follower バックアップ Region 1* Leader
読み書き可能 Region 2* Follower バックアップ Region 3* Follower バックアップ Region 1* Follower バックアップ Region 2* Leader 読み書き可能 Region 3* Leader 読み書き可能 Region 1* Follower バックアップ Region 2* Follower バックアップ 例:ユーザーテーブル データサイズは、デフォルト96MB ※⼩さいサイズにする事で柔軟性を確保 96MB 96MB 96MB TiKV TiKV TiKV TiDB TiDB 分散配置されたLeaderが、読み書きを処理
TiKV TiKVのアーキテクチャー Key-Value型データベース • CNCF Graduated Project • 書き込み性能の⾼いLSMツリー(追記型) •
データ永続化:SSTファイルを圧縮して管理 (1,Tom) (2,Jack) (2,Jack) ① ② Sorted String Table (1,Tom) (2,Jack) (1,Tom) ③ (1,Tom) (2,Jack) (1,Tom) (2,Jack) ④ Background処理 Raft Engine Raft Engine Raft Engine
なぜTiDBが⽣まれたのか
はじまりはここから • 全ての始まりは 2015年ごろ • 3人のFounder(Max, Ed, Dylan)が作り始める • 元々、Ed,
Maxは分散型RedisであるcodisというOSSを開発 • キャッシュレイヤーのスケーラビリティを解決後、 リレーショナル DBのスケーラビリティへ挑戦! https://github.com/CodisLabs/codis
ユーザによる初期の使われ⽅ [目指していたもの ] ・MySQLのシャーディングソリューションを 置き換えるスケーラブルな OLTP [実際には・・・ ] ・人々は、ミッションクリティカルな DBを
置き換えることへは慎重 ・TiDBをバックアップやレプリカとして利用 ・MySQLプロトコルをサポートし、 強力なSQLエンジンを持っていたので、 OLAP用途で利用され始める https://www.docswell.com/s/bohnen/K8G4JP-2024-07-09-120442#p6 https://qiita.com/bohnen/items/f28d5cb7acb9efd83712
OLTPからHTAPへ ・OLAPクエリの速度を上げるため、 Sparkをスタック導入 ・スタックに別のソフトウェアを導入が必要となるため、 システム全体の複雑さが問題になる
OLTPからHTAPへ ・OLTPとOLAPを統合するプラットフォームの構築を始める ・MPP(Massive Parallel Processing)フレームワークを導入し、 ストレージエンジンと組み合わた TiFlashが登場 -> HTAP
TiDB Serverless
TiDBの利⽤パターン パターン 1 Instance TiUP TiDBのセットアップから運⽤まで ※ローカルでも使える パターン 2 Kubernetes
パターン 3 Cloud TiDB Operator K8sでのセットアップ‧運⽤ TiDB Cloud フルマネージドDBaaS ServerlessとDedicatedがある
Serverless マルチテナント型 Dedicated 専有型 • マルチAZ / 各コンポーネントスケール(APIあり) • MySQLからの移⾏ツールもフルで使える
※DataMigration / ChangeFeed • OSSライクに柔軟なチューニング可能 • シングルAZ / Autoスケール ※マルチAZ版も予定 • BranchingやEdge Function⽤のDriver⽤意 • Vector Search※Public Beta機能搭載 のラインナップ
TiDB Serverless 数十秒で起動し、自動でスケールする 従量課金のサーバレスデータベース サーバの管理不要 拡張が自動 ⾃動拡張 Pay as you
go 従量課⾦ 自動フェイルオー バーと自己回復 ゼロ ダウンタイム + HTAP機能も使用 可能 リアルタイム分析 パフォーマンス改善 日本語による SQL生成支援 AI アシスタント MySQL driverや ORMツールからも 利⽤可能 MySQL互換 https://aws.amazon.com/jp/blogs/storage/how-pingcap-transformed-ti db-into-a-serverless-dbaas-using-amazon-s3-and-amazon-ebs/
Shared Gateway Isolated SQL Layer Shared Storage Layer Gateway Gateway
Gateway Virtual Cluster - Tenant 1 TiDB MPP Row Engine Row Engine Row Engine Virtual Cluster - Tenant 2 Resource Pool TiDB TiDB MPP Worker Columnar Engine Columnar Engine Columnar Engine TiDB MPP Virtual Cluster - Tenant n TiDB MPP MPP MPP TiDB ・・・ EBS EBS EBS EBS EBS EBS Shared Storage Pool Amazon S3 Shared Service Compacti on Checksu m Analyze Coproces sor Import Export DDL PD TSO Scheduling API Server Architecture
TiDB Vector Search
⽣成AIに絡む包括的なエコシステムとの統合
TiDBを利⽤してRAGアプリケーションを構築 MySQL互換の分散データベースで ベクトル検索が可能 ※ 現時点においては、TiDB Serverlessのみで利⽤可能
POINT 1 NewSQL POINT 2 HTAP POINT 3 MySQL互換 POINT
4 OSS POINT 5 Serverless Write含むスループットと 可⽤性の向上(耐障害性/VerUpもオンライン) ハイブリッドワークロード対応 (OLTP + OLAP) MySQL エコシステムも利⽤ 既存ナレッジを最⼤限活かす フルマネージド / Serverless $0から利⽤可能
TiDB Serverless デモ
1. EC2からの接続 2. TiKVとTiFlashの違いを検証 全体の流れ
THANK YOU. https://pingcap.co.jp/tidb-serverless/ ぜひお試しください!