Java library for OpenStack Storage, aka Swift

View project onGitHub

Economy of server calls

This page is aimed at helping you understand how JOSS decides when calls are made to the server.

  • Authentication; on authentication, one call is made. When you have re-authentication enabled, every time the token expires, JOSS will automatically re-authenticate with the server.
  • List calls; on fetching lists of containers and objects, exactly one call is placed to the server. Note that for the following fields no extra calls are made if you acquired the instance through the list operation:
    • Container; count and bytes used
    • StoredObject; etag, content length, content type and last modified
    All other fields require the fetching of the metadata, which equals one call per instance.
  • Metadata; all data on a field is only retrieved once, unless caching is turned off. You can also force an instance to reload its metadata.
  • Upload; any upload call immediately starts the upload process with exactly one call.
  • Download; all download calls immediately start the download process with exactly one call.
  • exists; makes exactly one call to the server to see if the instance exists. The result is cached.
  • Move; ie, copy/delete, therefore two calls, relatively expensive.
  • StoredObject.getURL(); requires to know whether a Container is public or private. If no HEAD call has been made yet, it will make one now. Note that AccountConfig.allowContainerCache=true (default) minimizes the number of HEAD calls made, because Container instances are reused.

Account can be asked (with getNumberOfCalls) how many calls it placed to the server.