You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When cleaning up #721, it became obvious that the client code structure is wrong in its handling of metadata.
The client uses the global discovery metadata. However, the "correct" director, for example, may change URL-by-URL -- and if we are downloading multiple URLs in parallel, there's going to be race conditions setting/unsetting the global director location for each URL we parse.
Instead of reaching into the global we should create a URL-like structure that holds the metadata along with the object name. We should also keep a ttlcache of metadata for different federations to prevent frequent lookups if we are parsing many URLs within the process.
The text was updated successfully, but these errors were encountered:
When cleaning up #721, it became obvious that the client code structure is wrong in its handling of metadata.
The client uses the global discovery metadata. However, the "correct" director, for example, may change URL-by-URL -- and if we are downloading multiple URLs in parallel, there's going to be race conditions setting/unsetting the global director location for each URL we parse.
Instead of reaching into the global we should create a URL-like structure that holds the metadata along with the object name. We should also keep a ttlcache of metadata for different federations to prevent frequent lookups if we are parsing many URLs within the process.
The text was updated successfully, but these errors were encountered: