Container operations, HEAD and GET, from both the REST API and the internal use, require that the total size of the container be calculated. To that end, the Swift layer of Gluster UFO will stat() every file to make that calculation. When containers have large numbers of files, this can take quite some time. Because the operation is all file system accesses, the co-routine (greenlet) handling this operation does not currently yield, causing other co-routines handling requests to starve. The proxy-server checks for the existence of the account and container on GET, POST, PUT and DELETE requests for objects, caching the result for 60 seconds by default. This means that once a minute this starvation will occur in practice.
CHANGE: http://review.gluster.org/4380 (object-storage: yield during directory tree walks) merged in master by Anand Avati (avati)