X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/ee5443faad325b16047b9ad4cd588baf51e231fa..4dc8c5e74ba2386715a1f31a319077bc34f3b330:/services/api/app/models/container.rb diff --git a/services/api/app/models/container.rb b/services/api/app/models/container.rb index 3e3f73b838..21e8fcf508 100644 --- a/services/api/app/models/container.rb +++ b/services/api/app/models/container.rb @@ -227,6 +227,12 @@ class Container < ArvadosModel if rc['keep_cache_ram'] == 0 rc['keep_cache_ram'] = Rails.configuration.Containers.DefaultKeepCacheRAM end + if rc['keep_cache_disk'] == 0 and rc['keep_cache_ram'] == 0 + # If neither ram nor disk cache was specified and + # DefaultKeepCacheRAM==0, default to disk cache with size equal + # to RAM constraint (but at least 2 GiB and at most 32 GiB). + rc['keep_cache_disk'] = [[rc['ram'] || 0, 2 << 30].max, 32 << 30].min + end rc end @@ -306,6 +312,15 @@ class Container < ArvadosModel # records that don't have a 'cuda' section in runtime_constraints resolved_runtime_constraints << resolved_runtime_constraints[0].except('cuda') end + if resolved_runtime_constraints[0]['keep_cache_disk'] == 0 + # If no disk cache requested, extend search to include older container + # records that don't have a 'keep_cache_disk' field in runtime_constraints + if resolved_runtime_constraints.length == 2 + # exclude the one that also excludes CUDA + resolved_runtime_constraints << resolved_runtime_constraints[1].except('keep_cache_disk') + end + resolved_runtime_constraints << resolved_runtime_constraints[0].except('keep_cache_disk') + end candidates = candidates.where_serialized(:runtime_constraints, resolved_runtime_constraints, md5: true, multivalue: true) log_reuse_info(candidates) { "after filtering on runtime_constraints #{attrs[:runtime_constraints].inspect}" }