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
TIPSTARを支えるCloud Spanner
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
MIXI ENGINEERS
PRO
October 18, 2025
Technology
78
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
TIPSTARを支えるCloud Spanner
会津大学の学生団体「Zli」が主催するLT大会に参加し、MIXIのエンジニア職採用・技術文化に関する企業PRを実施した時の資料です。
MIXI ENGINEERS
PRO
October 18, 2025
More Decks by MIXI ENGINEERS
See All by MIXI ENGINEERS
インフラ室事例集_JANOG58
mixi_engineers
PRO
1
56
【2026年版】プロジェクトマネジメント実践論|現役エンジニアが語る!~チームでモノづくりをする時のコツとは?~
mixi_engineers
PRO
1
200
AIエージェントで加速する開発と意思決定:ナレッジ蓄積型AIエージェントと対話型KPI分析の最前線
mixi_engineers
PRO
0
130
法務DXの最前線: ゼロからのAI導入とバックオフィスの変革 ~ 46の施策で検証した「コスト」と「リードタイム」削減の裏側 ~
mixi_engineers
PRO
0
79
AIで有人対応の品質チェックを"同じ物差し"に:CSの評価軸設計とプロンプト調整
mixi_engineers
PRO
0
45
AI活用を“個人技”で終わらせない ― 現場の自律性と成果を両立させた推進の裏側 ―
mixi_engineers
PRO
1
100
投資プロセス全体の再設計:投資先データ活用の取り組み
mixi_engineers
PRO
0
46
AI推進委員会とGemini Enterpriseが牽引する全社AI活用とナレッジ活用基盤の刷新
mixi_engineers
PRO
0
170
「プロンプトって何?」から始まった1年。 監査メソドロジーへのAIアシスタント実装と組織変革の記録
mixi_engineers
PRO
0
78
Other Decks in Technology
See All in Technology
Claude Code×Terraform IaC テンプレート駆動開発
itouhi
1
470
Rancherの紹介&Update情報(RancherJP Online Meetup #09)
yoshiyuki_kono
0
140
Socrates × Looker 〜セマンティックレイヤーで進化するデータ分析エージェント〜
hanon52_
3
1.9k
「速く作る」から「正しく作る」へ ─ 生成AI時代の開発フロー改革の ロードマップと実行 ─
starfish719
0
9.5k
日本 Fintech 未来予測レポート 2027〜2028年(手動編集版)
8maki
0
330
FDE という解 ― 暗黙知と明示知をつなぐ、伴走型エンジニアリング ―
otanet
0
100
2026TECHFRESH畢業分享會 - AI 時代的人生存檔點
line_developers_tw
PRO
0
480
Building applications in the Gemini API family.
line_developers_tw
PRO
0
2.6k
noUncheckedIndexedAccess、3時間、1万円。 / noUncheckedIndexedAccess, 3 Hours, 10,000 JPY.
kaonavi
1
340
2026TECHFRESH畢業分享會 - Lightning Talk - 打造精準高效的 MCP 設計模式與測試實務
line_developers_tw
PRO
0
460
中期計画、2回作ってみた ~業務委託と正社員、両方の視点から~
demaecan
1
610
あなたの AI ワークスペースに、 専門コーダーを連れてくる - Amazon Quick Desktop 最新情報
kawaji_scratch
1
130
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
330
Into the Great Unknown - MozCon
thekraken
41
2.6k
Code Review Best Practice
trishagee
74
20k
The SEO Collaboration Effect
kristinabergwall1
1
480
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
610
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
360
We Have a Design System, Now What?
morganepeng
55
8.2k
The Pragmatic Product Professional
lauravandoore
37
7.3k
Transcript
©MIXI TIPSTARを支える Cloud Spanner 2025/10/18 株式会社MIXI 若松丈人
©MIXI 2 自己紹介 2023年度に新卒として入社。 入社から2025年8月まで TIPSTAR のバックエンド開発・運用に携わる。 2025年8月から mixi2 のバックエンド開発
若松丈人 登録してね ->
©MIXI 会津若松
©MIXI 僕と親和性が高そうな土地ですね
©MIXI 5 今回お話しすること TIPSTAR を支える Cloud Spanner
©MIXI 6 TIPSTAR とは 全国の公営競技(競輪/オートレース)にネット投票できるサービス
©MIXI 7 Cloud Spanner とは NewSQL
©MIXI 8 New SQL とは RDB のトランザクション特性(ACID特性)を持ちながら NoSQL のように水平スケール可能なDB
©MIXI 9 なぜCloud Spannerが必要だったのか リリース前(開発初期)は Cloud SQL で開発されていたが、大量の r/w が予想されCloud
Spanner へ 1. 定常的なユーザーアクセスに伴う r/w(read メイン) 2. レースの度に数万〜数十万件のデータの r/w(write メイン) 朝のレース(8時30分ごろ)から深夜のレース(0時前後)まで 10〜20 分間隔で発生
©MIXI 10 なぜCloud Spannerが必要だったのか リリース前(開発初期)は Cloud SQL で開発されていたが、大量の r/w が予想されCloud
Spanner へ 1. 定常的なユーザーアクセスに伴う r/w(read メイン) 2. レースの度に数万〜数十万件のデータの r/w(write メイン) 朝のレース(8時30分ごろ)から深夜のレース(0時前後)まで 10〜20 分間隔で発生 2024年末に開催された競輪グランプリ(1年で1番大きいレース) - 発生したデータ書き込み:100万件以上 - 車券データ - ミッションデータ - ボーナスデータ - etc…
©MIXI Cloud Spanner すごい
©MIXI 12 なぜRDB だと水平スケールが難しい? RDB ・読み込み負荷:リードレプリカを増やして分散可能 ・書き込み負荷:マスター1台に集中
©MIXI 13 なぜRDB だと水平スケールが難しい? RDB ・読み込み負荷:リードレプリカを増やして分散可能 ・書き込み負荷:マスター1台に集中 書き込み用のノードを追加すると整合性を担保するための課題が発生 ・どの更新が最新なのか ・どのノードを正とするのか
©MIXI 14 なぜRDB だと水平スケールが難しい? RDB ・読み込み負荷:リードレプリカを増やして分散可能 ・書き込み負荷:マスター1台に集中 書き込み用のノードを追加すると整合性を担保するための課題が発生 ・どの更新が最新なのか ・どのノードを正とするのか
分散トランザクションなどで解決することも可能だが、運用が複雑に -> データの整合性の担保と水平スケールはトレードオフ
©MIXI 15 Spannerの仕組み Split ・テーブル全体をキー範囲で自動的に分割したもの ・各 Split 単位でディスク上に配置され、レプリカを持つ ・Split 単位で読み書き可能
CREATE TABLE Singers( SingerId INT64 NOT NULL PRIMARY KEY, FirstName STRING(1024), LastName STRING(1024), SingerInfo BYTES(MAX), ); 図引用元: Google Cloud 公式ドキュメント『Schema and Data Model』
©MIXI 16 Spannerの仕組み UPDATE Singers SET FirstName = “xxx” WHERE
SingerId = 1 Split A Zone A (Key 1–3) Application Spanner Server Split B Zone A (Key 4–5) Split A Zone B Split A Zone C Split B Zone B Split C Zone C
©MIXI 17 Spannerの仕組み UPDATE Singers SET FirstName = “xxx” WHERE
SingerId = 1 Split A Zone A (Key 1–3) Application Spanner Server Split A Zone B Split A Zone C 1. Leader が対象キー範囲にロックを取得 2. Leader が更新を follower にブロードキャスト 3. follower はロックを取得できたかをリーダーに返す 4. 全体で過半数のロックが取得できた場合、 Leader がコミット可能と判断
©MIXI 18 Spannerの仕組み TrueTime API 「現在時刻の不確実性( ±ε)」を含む時間範囲を返す Spanner は全てノード間で時間のズレが ±7ms
の範囲内に抑えられている。 → リーダーの Split が動作しているノードで取得した時刻 ±7ms の範囲内に、クラスタ内すべてのノードの実際 の時刻が収まっていることが保証されている ノードAの現在時刻 時間軸 ノードA ノードB ノードC ±7ms 以内 ノードBの現在時刻 ノードCの現在時刻
©MIXI 19 Spannerの仕組み TrueTime API で取得した時間範囲のうち最も未来の時間が経過してからコミットすることで どのノードから見ても「すでに確定済み」として見える → ノード間の整合性問題を解決 ノードAの現在時刻
時間軸 ノードA ノードB ノードC ±7ms 以内 ノードBの現在時刻 ノードCの現在時刻 コミット
©MIXI Cloud Spanner 面白そう https://techbookfest.org/product/2URkJbKFnJ9axX3vmmqNvK?productVariantID=8rXyaFRiBNwt9StPJFTk7c
©MIXI 興味を惹かれた方は直接見に来てください Welcome Dive into MIXI