Bug #7235
Updated by Brett Smith over 9 years ago
h2. Background The Python Keep client sets a 300-second timeout to complete all requests. There are some real-world scenarios where this is too strict. For example, purely hypothetically, an Arvados developer might be working across an ocean, tethered through a cellular network. Everything will complete just fine, but whole 64MiB blocks might not be able to finish transferring in five minutes. The functional requirement is that a user with a slow but stable connection can successfully interact with a Keep proxy. (I am willing to let timeouts continue to serve as a performance sanity check for the not-proxy case, on the expectation that one admin has sufficient control over the entire stack there.) h2. Implementation Refer to "libcurl connection options":http://curl.haxx.se/libcurl/c/curl_easy_setopt.html for details. When the Python Keep client connects to a proxy service, non-disk services, instead of setting TIMEOUT_MS, set LOW_SPEED_LIMIT and LOW_SPEED_TIME to ensure a minimum transfer rate. The exact transfer rate TBD by Tom.