2020年、Etsyの支払いデータベースはスケーラビリティの問題に直面し、Vitessが管理するシャード環境への移行が必要となった。
このプロジェクトでは、4つのデータベースから40億行を1つのシャード環境に移行し、Vitessのvindexesをシャードのために使用する必要があった。
第1フェーズでは、理想的なデータモデルを持つseller ledger infrastructureを移行することに焦点を当てた。
第2フェーズでは、複雑なデータモデルを持つプライマリ・ペイメント・データベースの負荷を削減することに焦点を当てた。このデータベースのモデルは、よりターゲット化されたアプローチが必要であった。
第2フェーズのために、2つのオプションが検討された:コア・データ・モデルのリモデリング、または既存のモデル内でのシャーダー・ファインダー(shardifier)の探索。
時間的な制約と信頼性の維持の重要性のため、後者のオプションが選択された。
チームは、既存のプライマリ・キーとフォーリン・キーをシャーダー・ファインダーとして使用し、第1フェーズよりも少ない作業量で済むようにした。
Vitessのリシャーディング機能は、将来的にシャード・デザインを調整するための柔軟性を提供する。
Vitessのセカンダリ・インデックスは、非理想的なデータ・モデルの制限を緩和し、クエリーでシャーダー・ファインダーを使用せずにシャードをターゲットすることを可能にする。
この移行によって、スケーラビリティが60%向上し、将来的に成長するための余裕が生じた。
etsy.com
Scaling Etsy Payments with Vitess: Part 1 – The Data Model
