LinuCシステムアーキテクト SA01試験の例題と解説
SA.04.3性能の拡張
LinuC システムアーキテクト SA01試験の出題範囲から「SA.04.3 性能の拡張」についての例題を解いてみます。
例題
各ユーザーが様々な時間長の動画ファイルを任意個投稿できる動画共有サービスを実現するために、複数台のストレージに動画ファイルを分散して配置したい。各ストレージノードのアクセス負荷やストレージ使用量が最も均等になることが期待される方法は次のうちどれか。
- ファイルのアップロード時刻を表す相対的な数値の範囲に応じて保存先ノードを決定する (例: 0~100 をノード X に、101~200 をノード Y に、...)。
- ファイルごとに付与される UUIDv4 のランダムビットの数値をノード数で割った剰余によって保存先ノードを決定する。
- 動画ファイルの時間長に応じて保存先ノードを決定する (例: 0秒~60秒未満のものはノード X に、60秒~120秒未満のものはノード Y に、...)。
- ファイルをアップロードするユーザーごとに付与されている UUIDv4 のランダムビットの数値をノード数で割った剰余によって保存先ノードを決定する。
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「2. ファイルごとに付与される UUIDv4 のランダムビットの数値をノード数で割った剰余によって保存先ノードを決定する。」です。
選択肢 2 が最もランダムにデータ配置先が決まるので、負荷やデータ量が均等になることが期待される一方で、2 以外の選択肢はどれも偏りを生みやすい理由があります。選択肢 1 は最近のファイルはアクセスが多いなどの偏りでホットスポットができる場合があります。同様に選択肢 3 はよく使われる時間長の動画に対応するノードが、選択肢 4 はヘビーユーザーがいるノードがホットスポットになり得ます。
なお実際の設計ではノード追加時の再配置 (リバランス) の容易性など、他の要素も同時に考慮しつつ方式を検討することになります。今回選択肢 B を正解としているのは「アクセスが最も均等」という設問文の要件を目指した場合にこの中では最も妥当という意味であり、リバランス時のデータの移動量を減らそうとした場合は別の方式が採用される可能性があります。
例題作成者
LinuC システムアーキテクト 試験開発コミュニティ