Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
cocone Teck Talk Vol.4 - 膨大になったDBを何とかする /dealin...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
cocone
October 14, 2021
Programming
770
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
cocone Teck Talk Vol.4 - 膨大になったDBを何とかする /dealing_huge_db
長年運営をしてきた「ポケコロ」のDBに関して、現在の課題とその対応策についてお話します。
cocone
October 14, 2021
More Decks by cocone
See All by cocone
Cocone_Research_Center_2025.pdf
cocone
0
370
20240301_cocone_EMゆるミートアップvol6_LT資料
cocone
0
950
2024_cocone-wellbeing
cocone
0
5.2k
2023夏季合同企業説明会ココネ
cocone
0
420
cocone TECH TALK Vol.6 - リアルタイム対戦xバックエンドアーキテクチャ
cocone
0
730
cocone TECH TALK Vol.6 - ココネグループのブロックチェーン MOOI Network とのバックエンド連携
cocone
0
670
cocone TECH TALK Vol.6 - Kotlin バックエンドアーキテクチャ of アバターサービス
cocone
0
670
cocone corporation(JPN)/Handbook2022
cocone
1
31k
cocone Tech Talk vol.5 - Unity Dotsを使ってみた
cocone
0
2.6k
Other Decks in Programming
See All in Programming
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
1.7k
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
150
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
400
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
450
巨大モノリシックアプリ モダン化大作戦
ktcryomm
1
1k
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
5
3.3k
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
140
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.1k
Security issues being discussed on Web Platforms
petamoriken
0
970
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
490
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2k
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
730
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
187
23k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
Optimising Largest Contentful Paint
csswizardry
37
4k
Paper Plane
katiecoart
PRO
4
53k
Leo the Paperboy
mayatellez
10
2.3k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
570
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
280
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.6k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
240
Odyssey Design
rkendrick25
PRO
2
810
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Transcript
膨大になったDBを何とかする ポケコロサーバー開発 忻 楽鳴
¿名前 忻 楽鳴 ¿社歴 2017年入社して、ポケコロサーバー開発 を担当しております。 その前職はSIerとして、5,6年ぐらい調査 会社のシステム開発をやっていました。大 量データの取り扱いがそこからです。 ¿趣味 ゲーム、寝る
¿出身 上海@中国
まず、現状どうなっている?? mariaDB、mongoDB、redisDBなど、機能によって使い 分けています。問題になっているのは mariaDBです。 左のようにmaster-slave構成となっています。 masterのdisk使用量が92%まで上昇されています。(月 3~4%ぐらい増え続ける) 簡単計算すると何もしないと余命2ヶ月です(笑) 大量データがあって slow
queryも出やすい状態です。 slave遅延がひどくなるとサービスに影響も出てます。
なにが入ってる?? 所持してるアイテム(約50%) アイテムの獲得履歴、異動履歴 (約15%) 保存してるコーディネート (約15%) 所持数制限がない 何と履歴は削除しない!
・サーバースペックを上げても限界が あります ・仮に容量を拡張できたとしても、逆 にslowqueryがもっと酷くなります
まず、データを減らして、容量 を確保しなきゃ!!!! 1. 必要のないデータを消す 2. 保存期間を設ける 3. 格納するデータを軽量化する 4. 似てようなデータを1つに
通帳など履歴データは基本 3ヶ月しか見せなかった!!
1. しょっちゅう問合せがあって、以前の データを調べたりする必要がある 2. 警察に情報の提供を協力する場合も ある 3. 履歴データは分析する材料でもある 簡単に消すには行かなかった んです。。。
1年以上のデータのことな ら問合せがほぼ来ないの で、削除OKです CXチーム どうしても必要の場合、 BigQueryに移します。 BIチーム 利用契約に追記してもらい ます 運営チーム、法務
バッチ実装して、一定期間 過ぎたデータを継続的に削 除しますように サーバーチーム メンテで過去のデータを削 除します サーバーチーム CMSなど参照先を変更な ど対応します。 サーバーチーム
不要なデータや期間のある履歴を 消したけど、そこまで減っていなかっ たんです
データを移動させ、容量を確保 できるじゃん!!!! 1. 同じDBの別インスタンスに移す 2. 違うDBに移す 3. 非アクティブユーザーデータのアーカ イブ
同じDBの別インスタンスに移すのは簡 単そうに見えるんです。 が、 オンプレミスなので、DBサーバーを用意 するのは結構時間が必要です。 そして、RDBなので、別インスタンスにな ると、分散トランザクションに変えなけれ ば行けないんです。
MariaDBからMongoDBに移します。 ・可能の限り1User 1Docment ・予めshardingに 非アクティブユーザーのデータをアーカイブ 用DB移して削除します ・復帰した場合、自動的にデータを戻せる 仕組みも用意
92% 80% 60% 今ここ disk使用率
None
将来のために何かを準備しな いといけないんだ!! 容量の危機が一旦回避しただけで す。いくつのテーブルが大きいすぎ、 slow queryなどはまだ解消されていま せん 倍以上のDAU、MAUになった時でも 耐えられるようにアーキテクチャにシフト しないといけません。
None
None