セレブリティ問題(ホットキー)
詳細情報
- 開発者
- Keerti Melkote、Pankaj Manglik
- 公開
- 2002年
- 所有者
- Hewlett Packard Enterprise(2015年から)
- 種別
- ネットワーク企業
数百万人のフォロワーを持つ有名人のような単一のキーにアクセスが極端に集中し、データ自体は均等に分散していても、それを持つパーティション(シャード)が過負荷になる現象。SNSのアーキテクチャにおける古典的なスケーラビリティの落とし穴。
完璧にシャーディングしても、ホットキーへの負荷は1つのノードに集まる。シャードはそれ以上分割できないからだ。ジャスティン・ビーバーが投稿すれば、数百万人が同時に同じ行を読み書きしたがり、そのシャードだけがボトルネックになって、ほかは遊んでしまう(「ホットパーティション」「ホットキー」)。対策は、有名人だけ別扱いにする(書き込み時ではなく読み取り時のファンアウト)、ホットなデータのキャッシュ、ホットキーの複数ノードへのレプリケーション、あるいは「キーソルティング」(1つのホットキーを複数のサブキーに散らす)などがある。Twitter、Instagram、DynamoDB(アダプティブキャパシティ)もこの問題に取り組んできた。シャードキーとファンアウト戦略の選択に深く結び付いた問題である。