Sharding
シャーディングは、大きなテーブルをシャードキーで複数ノードへ水平分割する技術である。各ノードはデータの一部を保持し、水平スケーリングを可能にする。
目的
水平スケーリング戦略を設計し、単一ノードのキャパシティやスループットのボトルネックを克服する。
メカニズム
シャーディング戦略には、レンジ分割(キー区間)、ハッシュ分割(hash(key) mod N)、ディレクトリ分割(ルックアップテーブルでのルーティング)がある。シャード横断クエリには scatter-gather が必要で、シャードキーの選択がデータ分布とクエリ局所性を左右する。
ユースケース
- 水平スケーリングの設計
- シャーディング戦略
- 分散データベース