令和5年度 秋期 データベーススペシャリスト試験 午前II 問2

大文字のアルファベットで始まる膨大な数のデータを,規則に従って複数のノードに割り当てる。このようにあらかじめ定めた規則に従って,複数のノードにデータを分散して割り当てる方法はどれか。

[規則]

  • データの先頭文字が A~G の場合はノード1に格納する。
  • データの先頭文字が H~N の場合はノード2に格納する。
  • データの先頭文字が O~Z の場合はノード3に格納する。
解答・解説

正解: ウ. シャーディング

シャーディング (sharding) とは、データベースの負荷を分散させるために、あらかじめ定めた規則に従ってデータを複数のノードに分散して格納する手法です。
本問のように、「データの先頭文字の範囲」などの規則に基づいて、データを分割し複数のノードに割り当てる方法は、まさにシャーディング(水平分割)に該当します。

各選択肢の解説

  • ア 2相コミットプロトコル: 分散データベース環境において、トランザクションのコミットを「準備完了通知」と「コミット指示」の2段階で行い、データの一貫性を保つための手法です。データの分割方法ではありません。
  • イ コンシステントハッシング: ハッシュ関数の結果に基づいてデータを各ノードに分散格納するアルゴリズムです。ノードの増減時にデータの再配置を最小限に抑える特徴がありますが、本問のような「先頭文字の範囲」による単純なルールでの割り当てとは異なります。
  • ウ シャーディング: 正解です。あらかじめ定めた規則に従って、複数のノードにデータを分散して割り当てる手法です。
  • エ レプリケーション: データの可用性や読み込みパフォーマンスを向上させるために、全く同じデータを複数のノードに複製して保持する手法です。データを分割して割り当てる手法ではありません。

Spineチーム