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

Reply via email to