19981: Explain how keep_cache_* runtime constraints affect reuse 19981-reuse-flex-keep-cache
authorBrett Smith <brett.smith@curii.com>
Sun, 5 Mar 2023 22:06:41 +0000 (17:06 -0500)
committerBrett Smith <brett.smith@curii.com>
Sun, 5 Mar 2023 22:06:41 +0000 (17:06 -0500)
Arvados-DCO-1.1-Signed-off-by: Brett Smith <brett.smith@curii.com>

doc/api/methods/container_requests.html.textile.liquid

index 5e15df5ba6866742e1df067f62e5bed00da9cd24..fad051f4bf2bc2126e4f83105272eb7347ac14b8 100644 (file)
@@ -139,9 +139,13 @@ h2(#scheduling_parameters). {% include 'container_scheduling_parameters' %}
 
 h2(#container_reuse). Container reuse
 
-When a container request is "Committed", the system will try to find and reuse an existing Container with the same command, cwd, environment, output_path, container_image, mounts, secret_mounts, runtime_constraints, runtime_user_uuid, and runtime_auth_scopes being requested. (Hashes in the serialized fields environment, mounts and runtime_constraints use normalized key order.)
+When a container request is "Committed", the system will try to find and reuse an existing Container with the same command, cwd, environment, output_path, container_image, mounts, secret_mounts, runtime_constraints, runtime_user_uuid, and runtime_auth_scopes being requested.
+
+* The serialized fields environment, mounts, and runtime_constraints are normalized when searching.
+* The system will also search for containers with minor variations in the keep_cache_disk and keep_cache_ram runtime_constraints that should not affect the result. This searches for other common values for those constraints, so a container that used a non-default value for these constraints may not be reused by later container requests that use a different value.
 
 In order of preference, the system will use:
+
 * The first matching container to have finished successfully (i.e., reached state "Complete" with an exit_code of 0) whose log and output collections are still available.
 * The oldest matching "Running" container with the highest progress, i.e., the container that is most likely to finish first.
 * The oldest matching "Locked" container with the highest priority, i.e., the container that is most likely to start first.