DB パフォーマンス・速度

Discord

Discord、数兆件のメッセージをCassandraからScyllaDBへ移行

Apache CassandraScyllaDB

メッセージ保存基盤としてCassandraを使っていたDiscordが、レイテンシとガベージコレクションの問題を解消するためC++実装のScyllaDBへ移行した。

何が起きたか

Discordは全メッセージ履歴をCassandraクラスタに保存していたが、データ量の増大に伴いレイテンシの悪化やコンパクション時の負荷、JVMベースゆえのガベージコレクション由来のレイテンシ変動に悩まされていた。同じCQLプロトコルと互換性を持ちC++で実装されたScyllaDBへの移行を決定し、Rustでデータマイグレーターを書き直して大規模データ移行を効率化した。この結果、推定3ヶ月かかるとされていた移行作業を9日間に短縮でき、メッセージ取得のレイテンシも改善したと報告されている。

移行前後の変化

メッセージレイテンシ(p99程度)

推定移行期間

2023-03-06
他の事例も見る