EtsyのデータベースシャーディングをVitessに移行する ノート

EtsyのデータベースシャーディングをVitessに移行する

2010年以来、Etsyのデータベースアーキテクチャは、独自のORMによって管理されるシャーディングされたMySQLクラスターに依存していました。数千のシャードを持つこのシステムは、手動でのスケーリングに課題があり、インデックスデータベースに単一障害点がありました。インデックスデータベースはシャードマッピングを保存しており、ORMがクエリを効率的にルーティングすることを妨げ、サイトの停止を引き起こす可能性がありました。これらの問題を解決するために、Etsyは2018年にオープンソースのデータベーススケーリングツールであるVitessを採用しました。既存のシャーディングロジックを複製するために、Vitess内でカスタムvindexを実装し、完全なデータ移行を回避しました。これには、SQLiteルックアップvindexとハイブリッドvindexを作成し、段階的な移行を行いました。Vitessへの移行は、リスクを最小限に抑え、クエリの非互換性をテストするために、テーブルごとに段階的に行われました。データベーストランザクションに関する課題は、関連するテーブルを同時に移行する必要があり、相互依存関係が浮き彫りになりました。Vitessのクロスシャードクエリ機能はパフォーマンスを大幅に向上させましたが、スキャッタークエリは慎重に管理されました。最終的に、Vitessへの移行は単一障害点を排除し、開発者向けのデータアクセスを簡素化し、ユーザーにとってはほぼ目に見えないパフォーマンスの向上をもたらしました。この移行はまた、手動でのスケーリングを劇的に改善し、新しいVitess機能を可能にしました。
CdXz5zHNQW_LPveoPxaAk.jpeg