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
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
関数型の考えを TypeScript に持ち込んで、テストしやすい純粋関数を増やす / Pure at the Core, Effects at the Edge: Bringing Functional Thinking into TypeScript
kaminashi
2
130
AI Coding Agent時代のcdk-nagガードレール 〜組織ルールを強制CIで守り抜く設計の挑戦〜
mhrtech
3
440
オブザーバビリティ、本当に活用できてる? 〜API連携×生成AIで成熟度を自動評価〜
dmmsre
1
3.6k
AI Native なプロダクト組織の立ち上げ方 : 生産性 100 倍への挑戦
mikesorae
0
170
ガバナンスの「ちょうどいい落とし所」を探れ!開発スピードを妨げない運用判断の勘所 / SRE NEXT 2026
genda
1
260
AI時代の闇と光
tatsuya1970
0
110
AIと共生する開発者プラットフォーム:バクラクのモノレポ×マイクロサービス基盤
sakajunquality
2
4k
SREとQA 二人三脚で進めるSLO運用/sre-qa-slo
sugitak
0
1k
AI時代の開発生産性を捉え直す — 経営と現場をつなぐ「開発組織のオブザーバビリティ」— / AI Dev Ex Conference 2026
tkyowa
0
150
「早く出す」より「事業に効く」 ── 顧客の業務サイクルから逆算するAI時代の二重ループ開発と「変化の設計者」 / devsumi2026
rakus_dev
1
420
Network Firewallやっていき!
news_it_enj
0
170
ZOZOTOWNの進化と信頼性を両立する負荷試験
zozotech
PRO
2
280
Featured
See All Featured
My Coaching Mixtape
mlcsv
0
170
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.3k
What's in a price? How to price your products and services
michaelherold
247
13k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Done Done
chrislema
186
16k
How to train your dragon (web standard)
notwaldorf
97
6.7k
Navigating Weather and Climate Data
rabernat
0
380
Embracing the Ebb and Flow
colly
88
5.1k
Making the Leap to Tech Lead
cromwellryan
135
10k
Rails Girls Zürich Keynote
gr2m
96
14k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
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として ご活⽤ください