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
分散DBを運用してみて〜TiDB の仕組みと実例〜 @ さくらの夕べ Tech Night ...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
chibiegg
July 27, 2022
Technology
760
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
分散DBを運用してみて〜TiDB の仕組みと実例〜 @ さくらの夕べ Tech Night #5 Online / About TiDB @ SAKURA internet Tech Nignt #5 Online
chibiegg
July 27, 2022
More Decks by chibiegg
See All by chibiegg
ブラックボックス観測に基づくAI支援のプロトコルのリバースエンジニアリングと再現~AIを用いたリバースエンジニアリング~ @ SECCON 14 電脳会議 / Reverse Engineering and Reproduction of an AI-Assisted Protocol Based on Black-Box Observation @ SECCON 14 DENNO-KAIGI
chibiegg
1
220
ゼロトラストを前提に、もっと便利に、もっと安全に @ 2026-03-03 ITmedia Security Week 2026 冬 / Designing for Zero Trust: Enabling Both Usability and Security
chibiegg
0
130
JANOG57 Meeting in Osaka のご紹介 @さくらの聖夜 2025 / Introduction to JANOG57 Meeting in Osaka
chibiegg
0
76
コンフィデンシャルコンピューティングは本当に機密なのか?@ 2025-08-23 LOCAL Developer Day ’25 Security with 在札幌米国総領事館 / Confidential Computing Truly Confidential? @ 2025-08-23 LOCAL Developer Day ’25 Security with the U.S. Consulate General in Sapporo
chibiegg
0
61
パブリッククラウドにおける機密コンピューティング@さくらのTech Day 2024-11-12 / Confidential Computing in Public Cloud
chibiegg
0
470
tiupによるTiDBの構築 @ TiUG Meetup #3 Osaka / Building TiDB with TiUP
chibiegg
1
330
Stable Diffusionの使い方と追加学習によるLoRAの作成~GPUコンテナサービス “高火力 DOK” の活用~ @ 2024-06-29 OSC2024 Hokkaido / Stable Diffusion and Creating LoRA with Additional Training ~ with 'Koukaryoku DOK' ~
chibiegg
1
2.8k
長期間TiDBを使ってきた話 @ 私たちはなぜNewSQLを使うのかTiDB選定5社が語る選定理由と活用LT / Experiences with TiDB Over Time
chibiegg
3
2k
3年近くTiDBを使ってきた話 @ TiUG Kick Off #0 / My Journey with TiDB: Nearly Three Years On @ TiDB User Group Kick Off #0
chibiegg
4
1.4k
Other Decks in Technology
See All in Technology
「最後に責任を取るのはチーム」— 人間のPRレビューを最小化してアップデートしたメンタルモデル
jnishime_dresscode
0
910
「守りたい体験」を渡すだけで E2E を生成させられるようになった話
hinac0
0
210
AI Coding Agent時代のcdk-nagガードレール 〜組織ルールを強制CIで守り抜く設計の挑戦〜
mhrtech
3
420
マルチアカウント環境でSecurity Hubの運用、その後どうなった? / SRE NEXT 2026 miniLT会
genda
0
100
AIと共生する開発者プラットフォーム:バクラクのモノレポ×マイクロサービス基盤
sakajunquality
2
3.8k
SRE依存からの脱却 運用を開 発チームへ移す、 フルサイ クル開 発体制の実践
joooee0000
0
3.2k
第67回コンピュータビジョン勉強会CVPR2026読会前編
tsukamotokenji
0
150
Devsumi 2026 Summer 人もAIも使える共通基盤を事業の加速装置にする~デザインシステム運用に学ぶ組織レバレッジ~ 渡辺 凌央
legalontechnologies
PRO
1
240
2年前に削除したPHPクラスが、 ある日突然決済をエラーにした
ykagano
1
290
ヘルスケア領域における AI 活用と その安全性担保のための取り組み (Leveraging AI in Healthcare and Our Efforts to Ensure Its Safety) - Google I/O Extended Tokyo 2026, July 11, 2026
zettaittenani
0
430
Kaggleで成長するために意識したこと
prgckwb
2
410
AI時代の開発生産性は、個人技からチーム設計へ
moongift
PRO
4
2.4k
Featured
See All Featured
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
630
Technical Leadership for Architectural Decision Making
baasie
3
440
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
190
Test your architecture with Archunit
thirion
1
2.3k
Prompt Engineering for Job Search
mfonobong
0
380
Practical Orchestrator
shlominoach
191
11k
GraphQLとの向き合い方2022年版
quramy
50
15k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.3k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Raft: Consensus for Rubyists
vanstee
141
7.6k
Producing Creativity
orderedlist
PRO
348
40k
Transcript
© SAKURA internet Inc. 分散DBを運⽤してみて TiDB の仕組みと実例 2022-07-27 @ #さくらの⼣べ
Tech Night #5 Online さくらインターネット株式会社 技術推進統括担当執⾏役員 兼 CIO/CISO 江草 陽太
2 ⾃⼰紹介 @chibiegg 江草 陽太 【所属】 • さくらインターネット株式会社 執⾏役員 技術推進統括担当
兼 CISO • IzumoBASE株式会社 取締役 【経歴】 • ロボカップジュニア (中学・⾼校) / NHK⼤学ロボコン • ⼤阪⼤学⼯学部電⼦情報⼯学科情報通信⼯学専攻 • 個⼈事業主 (⼤学⽣時代に開業) • ⼤阪⼤学⼤学院⼯学研究科中退 【趣味】 旅⾏/温泉/写真/電⼦⼯作/プログラミング/かわいい服
© SAKURA internet Inc. NewSQL TiDBの仕組み TiDBの運用 エンハンスドデータベース (TiDB) の紹介
© SAKURA internet Inc. 分散データベース / NewSQL
© SAKURA internet Inc. SQLをインターフェースとし 強い整合性を持ち トランザクションをサポートする 分散データベース (RDBMS) である
NewSQLとは
© SAKURA internet Inc. 独自のインターフェースを持ち 簡単で 高いパフォーマンスを提供する 分散データベース (not RDBMS)
である トランザクションに対応せず、ゆるい整合性 (結果整合性) を持つ NoSQL (Not Only SQL)
© SAKURA internet Inc. 今まで通りSQLを使いつつ NoSQLのようなスケーラビリティや利便性を享受したい || NewSQL それでもSQL (RDBMS)
が使いたい
© SAKURA internet Inc. • Spanner (Google、プロプライエタリ、独自) • CockroachDB (CockroachLabs、OSS
、PostgreSQL互換) • TiDB (PingCAP、OSS、MySQL互換) • YugaByteDB (Yugabyte、OSS、PostgreSQL互換) NewSQLの例
© SAKURA internet Inc. TiDBの仕組み
© SAKURA internet Inc. どのように分散RDBMSが動作するか 簡単にご紹介します
© SAKURA internet Inc. TiDBのコンポーネント https://docs.pingcap.com/tidb/stable/tidb-architecture から改変 3要素が基本 • PD
(Placement Driver) • クラスタの頭脳 • データ配置の決定 • トランザクションの管理 etc. • TiDB (SQL Layer) • SQLを解釈し処理を⾏う • TiKV (Storage Layer) • レコードやインデックスを Key-Valueとして保存する
© SAKURA internet Inc. テーブルとKey-Valueの関係 https://docs.pingcap.com/tidb/stable/tidb-computing • データベースやテーブルの定義はKey-ValueとしてTiKVに格納されます • テーブル内の各行は一つのKey-ValueとしてTiKVに格納されます
• t{TableID}_r{RowID} を利⽤する • t10_r1, t10_r2, t10_r3 のようなキー名が利⽤されます • Unique Indexは一つのKey-ValueとしてTiKVに格納されます • t{TableID}_i{IndexID}_indexedColumnsValue を利⽤する • t10_i1_indexedColumnsValue のようなキーに 値として RowID が格納されます • 他のIndexは Key として TiKVに格納されます • t{TableID}_i{IndexID}_{Value}_{RowID} を利⽤する • t10_i1_10_1, t10_i1_20_2, t10_i1_30_3 など
© SAKURA internet Inc. ⼀般的なRDBMSとの違い (⼀部) 旧来のRDBMS TiDB レイテンシ ⼩さい
⼤きい 処理できるクエリ数 スペックによって固定 ノードを増やすことで増減可能 容量 ローカルディスクによって固定 ノードを増やすことで増減可能 台数 2台で冗⻑構成が動く 最低でも8台 https://docs.pingcap.com/tidb/stable/hardware-and-software-requirements
© SAKURA internet Inc. TiFlashによる分析 https://docs.pingcap.com/tidb/stable/tiflash-overview 分析に適した TiFlash に保存を行い OLAP
(オンライン分析処理) にも活用 TiKVからTiFlashへ非同期にレプリケーションされ 参照時には自動的に適切なストレージが選択されます
© SAKURA internet Inc. • メンテナンス作業が容易 • ノード障害時のサービス影響が小さい • 容量やパフォーマンスの増減がスケールアウトによって可能
TiDBのメリット≒分散システムのメリット
© SAKURA internet Inc. TiDBの運⽤
© SAKURA internet Inc. • 公式のメンテナンスツール “tiup” がある • 構築・検査・アップデートなどが可能
構築とメンテナンスは tiup コマンドで
© SAKURA internet Inc. YAMLファイルに設定を書いて tiup を実行 PrometheusやTiDB Dashboardも入る 新規構築
pd_servers: - host: 172.16.5.134 name: pd-134 - host: 172.16.5.139 name: pd-139 - host: 172.16.5.140 name: pd-140 tidb_servers: - host: 172.16.5.134 - host: 172.16.5.139 - host: 172.16.5.140 tikv_servers: - host: 172.16.5.134 - host: 172.16.5.139 - host: 172.16.5.140 grafana_servers: - host: 172.16.5.134 monitoring_servers: - host: 172.16.5.134 tiup cluster deploy -p prod-cluster v6.1.0 topology.yaml
© SAKURA internet Inc. • tiup cluster update • tiup
cluster scale-in / scale-out アップデートはローリングアップデートをしてくれる Raftのリーダー移動も自動 アップデートもスケールも tiup
© SAKURA internet Inc. さくらインターネットでのTiDBの活⽤
© SAKURA internet Inc. • sakura.io (LTEによるIoTプラットフォーム) • 「データストア(V2)」でTiKVを採⽤ (2018年ごろから)
• 端末 (モジュール) からのデータを蓄積・検索に利⽤ • さくらのクラウド (Labプロダクト) • 開発中の⼀部機能において管理システムにTiDBを採⽤ • これまでならMariaDBやPostgreSQLを利⽤していた場⾯に導⼊ さくらインターネットでの導⼊
© SAKURA internet Inc. さくらのクラウド エンハンスドデータベース (TiDB)
© SAKURA internet Inc. 1. 「さくらのクラウド」にログイン 2. 作成したいデータベース名とパスワードを入力 3. 即時に利用可能
⾃分でクラスタを作らなくても 利便性を感じて欲しい
© SAKURA internet Inc. データベースの作成
© SAKURA internet Inc. 情報の確認
© SAKURA internet Inc. 接続 SSL対応! --ssl-mode=VERIFY_IDENTITY も使えます
© SAKURA internet Inc. エンハンスドDB のメリット • すぐに使える • 5秒で作れる
• 容量を気にせず利用できる • 使っている容量に応じて課⾦される • 最初から⼤きなディスクを⽤意しなくて良い • スペックを意識せずに利用できる • 同時接続数を後から増減できる • アップグレードやノード障害を意識しなくて良い • コネクションが切れてもすぐに再接続ができる
© SAKURA internet Inc. 私も使ってます
© SAKURA internet Inc. • Golang + go-sql-driver/mysql + gorm
で実装 • Slack内のユーザー間で立て替えの管理を支援するBot Slack BotのDBとして
© SAKURA internet Inc. • Python + Django で実装 •
ウェブフレームワークのORMをそのまま利用できる ひなたん写真館 「フィルムデジタル化サービス」 https://service.hinatan.net/ ウェブアプリケーションのDBとして
© SAKURA internet Inc. インターネットサービスのDBとして ご活⽤ください