A feature of the earthscope_sdk that GeoLab is designed to interact with is access to data on an S3 bucket. Those not familiar with AWS may find this mysterious, but the key point anyone reading this needs to know is that the only way to move data to and from Amazon’s S3 store is via a “client”. Earthscope’s documentation gives some good examples. What is not yet clear from the documentation is that there are actually two different S3 client.
- Blocking client imported with
from earthscope_sdk import EarthscopeClient - Non blocking client imported with
from earthscope_skd import AsyncEarthscopeClient
They are very different beasts although they are closely related - more like horses are to donkeys rather than two different horse breeds.
That is a long introduction because I expect no one else in the seismology community knows anything about either of those so I needed to give at least some context for my actual question. I have reason to think from emails that these two clients have a major difference in configuration. That is, AWS documentation says a client by default has a timeout period in the range of 30 minutes to an hour (I’ve seen references to both). Someone on the cloud development team (I don’t remember who) said in an email that the nonblocking client (AsyncEarthscopeClient) had the timeout feature disabled and the client was live as long as it was memory resident. Unless something changed the blocking client (EarthscopeClient) has a timeout of something like one hour.
Is it true that the two clients have different timeout characteristics? If so, will it stay that way or will that change? In my opinion having a timeout is a really bad idea for GeoLab if it is to be used to download large data sets that could take days to assemble. There is a workaround I can share with this community if the earthscope team decides that the timeout is necessary. Otherwise, anyone using GeoLab to assemble a large data set will need to be aware of this limitation.