以下の内容はhttps://ozaki25.hatenadiary.jp/entry/2024/06/13/205610より取得しました。
VoicyのTiDB移行 失敗ポイント集
- 株式会社Voicy 千田 航己@thousan_daさん
TiDB
- 最近メインのDBをTiDBに移行した
- 足りなかったSQL知識
- 一般的なチューニング知識が必要
- TiDBならではというのは少ない
- 反映し忘れ設定
- チューニング中にどれがきいてよくなったか分からなくなった
- 移行時に設定漏れがあった
- 途切れてしまったレプリケーション
- 2段階でリバートしやすく移行した
- 移行先と同期を取りながら移行
- 読み込みだけ先にTiDBに
- その後書き込みも切り替え
- 同期が止まることも想定に入れた構成が必要
- 古すぎたLambda
- Lambdaが古すぎて変更できなくなっていた
- EOL対応は日頃からやっておくこと
- 耐えられなかった負荷
- DBキャパオーバーで落ちた
- 本番の負荷が未知だった
- ログからわかる本番相当の負荷試験はしてた
- リクエストの偏りなど考慮できてなかった
- ピーク時負荷のキャパシティを見誤った
スケーラビリティの課題解決に向けたココナラのデータベース移行戦略
DBの課題
- スケーラビリティの確保
- KPIとしてリクエスト成功99.96%
- なのにRDSのSLAは99.95%
- IOPSの上限に抵触しそう
- CPUやメモリは問題なかった
- ストレージを拡張することで一時しのぎ
- MySQL5.7のEOL対応
課題との向き合い
- RDSやめてAurora
- DB移行のリスクを経営陣にインプット
- SQL8億本を自動テストするツールを導入
Aurora から Spanner への移行の決断と背景
DB移行
- 背景
- データ量の増加
- DBの物理的な上限
- スケーリングやオンラインDDLなどへ影響
- 移行推進
- 2019:モニタリングを充実させる
- 2022:いよいよという空気で採用もはじめる
- 2024:PJ立ち上げもろもろ整理し取締役会承認
- 決断
- 本当に実施するのか
- 前から発信して認知してたのが良かった
- サービス成長においても影響ある
- 手段
- Vitess
- PlanetScale
- Spanner
- GoogleCloudのフルマネージドでシャーディング自動でやってくれる
- BigQueryとのシームレスな連携
- これを採用
Raftとは?/仕組みから考える得意なこと苦手なこと
Raft
- Raft
- NewSQLやKVSで使われる分散合意アルゴリズム
- 自動フェイルオーバーしてくれる
- データのマイグレーションしてくれる
- 一貫性を保ってくれる
- なぜ必要
- two phase commitではダメ
- Jespen Test
- OSSのテストフレームワーク
- 分散システムの一貫性と信頼性を検証する
- 意図的に異常な状態作ってテスト
- RedisやMongoでは壊れる
- 仕組み
- ノード
- ターム
- ログ/インデックス
- 今のリーダーの何個目の命令か
- 一意に命令できるように
以上の内容はhttps://ozaki25.hatenadiary.jp/entry/2024/06/13/205610より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます
不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14