Pinterest、6人で1100万人支えてた時代のDB設計がヤバい Pinterestが6人のエンジニアで1100万人のユーザーを支えてたって話、控えめに言ってバグってるんだけど… それ以上にすごかったのが、その急成長をMySQLベースのアーキテクチャで乗り越えた戦い方だった。 MongoやCassandraを試しては不安定さに泣かされ、クラスタリングはリバランスが地獄。 何度もデータ破損の危機を迎えた末に選んだのが、シャーディング × キャッシュ × シンプル設計。 ユーザーごとに全データをひとつのシャードに集めて、ID構造でどのシャードにあるか即判定できる仕組みを用意。 さらに結合や制約はアプリケーション層に逃がして、 「システムは壊れる前提」で動くように組んでたのが本当にかっこいい。 もちろん失ったものもある。トランザクションとか、JOINとか。 でもそれ以上に、「崩壊せずスケール
