Project

General

Profile

Bug #7235

Updated by Brett Smith over 8 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.

Back