はじめに こんにちは。ABEMA の広告配信システム開発チームでバックエンドを担当している戸田朋花です。 ABEMA ではパーソナライズした広告配信ができるため、「ユーザー × 属性」がキーとなる高カーディナリティなデータに対する読み書きのリクエストが大量に発生します。 また全てのユーザーが全ての属性を持っているわけではないので、リクエストに対して実際にデータが存在しないことが多くあります。 その結果、読み取りのアクセスパターンとして「リクエストのカーディナリティがデータのカーディナリティを大きく上回る」状態になります。 ABEMA の広告配信サーバーには、このような性質のリクエストがピーク時には数千から数万 RPS で発生します。 データベースへ大量にリクエストが発生するとデータベースが高負荷となりシステム全体のボトルネックになります。 これを防ぐための一般的な方法として、キャッシュ用デ

