Unfortunately, a "simple" deletion of objects isn't so simple. If a container has millions of expired-but-not-deleted objects in it, then it'll take millions of deletions to delete the container. That can't be the proxy's responsibility; it'll take a really long time to do all those deletions, and the proxy has to return a response to the client in a reasonable amount of time.
Also, even listing the container's objects to determine if they're all expired can be expensive. A container with 1 million expired objects and 1 single non-expired object isn't eligible for deletion; to even list all those objects (at 10,000 entries per listing request) would take 102 requests to container servers. So, clearly we can't do this in response to a request. Perhaps the answer is to move expired-object deletion into a different process, like the object-auditor or object-replicator. That way there's not a SPOF like there is with the object-expirer. In that case, you'd still have a window to see expired-but-not-deleted objects, but you could delete them yourself if necessary. However, the failure of a single process wouldn't cause expired-object deletion to halt. I haven't had time to think through all the tradeoffs, though, so that may actually be a bad idea. Not sure yet. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1069849 Title: Containers show expired objects To manage notifications about this bug go to: https://bugs.launchpad.net/swift/+bug/1069849/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs