GitHub Actions(GH-200) 無料問題 4 / 10 ・ 分野2: ワークフローの利用とトラブルシューティング
同じブランチ・同じcache versionに、キーnode-main-aaaとnode-main-bbbの2件だけがある。bbbはaaaより後に作成された。主キーにもnode-main-そのものにも一致はなく、restore-keys: node-main-で探すと何が復元されるか。
- 後から作成されたnode-main-bbb
- 辞書順で先のnode-main-aaa
- 主キーが一致しないため復元されない
- node-main-aaaとnode-main-bbbの結合結果
正解と解説を見る
正解: A
正解の理由
restore-keyに完全一致するキーがなく複数のprefix一致がある場合、最も最近作成されたキャッシュを復元する。ブランチとversionを揃えたこの例ではnode-main-bbbが対象になる。
違う選択肢
「辞書順で先のnode-main-aaa」…同じrestore-keyに複数のprefix一致があるときは、キー文字列の辞書順ではなくキャッシュ作成時刻で選ぶ。
「主キーが一致しないため復元されない」…主キー不一致でもrestore-keysによる探索を行う。設問にはアクセス可能でversionも同じprefix一致の候補がある。
「node-main-aaaとnode-main-bbbの結合結果」…複数候補を結合するのではなく、一致候補から1件のキャッシュを選んで復元する。
押さえどころ
最終アクセス時刻やキーの辞書順を作成時刻と混同しない。候補の選択規則を調べる前に、アクセスできるscopeと互換性のあるcache versionで比較しているかを確かめる。