Schema evolution
無停止でデータベースのスキーマを変更する方法
古くは Refactoring Databases で、議論されているが、この本ではトリガーを主体としていて現代ではあまり用いられない。
現代では、以下の手段が用いられることが多い。
ダブルリード
ダブルライト
CDC
事例
Google Cloud/Medium 「Online Database Migration by Dual-Write: This is not for Everyone」
オンラインで Cloud SQL などから Spanner へ移行する際、アプリ側で Dual Write を実装して旧・新 DB を同期。
失敗書き込みのリペア工数とスロットリング設計が必須と強調。
Netflix Delta(Cassandra ↔︎ Elasticsearch 同期基盤)
キャッシュ系ストアと検索インデックスを 二重書き込み で合わせつつ、定期リペアルーチンで“不整合”を自動修復。デュアルライト時の冪等性を最重要視。
DZone 「Migration from RDS to DynamoDB With the Dual-Write Strategy」
リレーショナル→NoSQL の段階移行で Dual Write を採用。バックフィル後にトグルを切り替え、ダウンタイムなしを実現。
The Four Part Migration
Write Twice, Read Old → Back-fill → Read New → Drop Old の 4 ステップ
Wikipedia “Schema migration”
Dual Read / Dual Write / 両者併用の長所短所を比較。
Zero-Downtime Data Migration: Dual-Writing vs. Gray Switch
Dual Write を “Gray Switch(段階切替え)” と対比し、整合性要求とレイテンシ負荷で選択基準を提示。
Live data migration – double read vs double write
「ダブルライト期間は意外と長くなる」「ダブルリードのほうがコード負荷は小さい」
判断基準
https://gyazo.com/f41316947d9e3c4e1f4ddd816c5a1588