On Thu, Aug 14, 2003, Robert Collins wrote: > On Thu, 2003-08-14 at 16:31, Adrian Chadd wrote: > > > There's no way to do a dirty rebuild unless: > > Easy answer: a dirty coss rebuild is simply to purge the stripes that > are dirty.
Well, at the moment, there's _no_ dirty rebuild. :) > Why make the common case difficult to deal with a corner case? Because, right now, there's no rebuild and there's no actual way to know whether a stripe is valid or not. Then, there's no way to know what the object sizes are and if they're deleted after being written to disk there's no way to actually _know_ they've been deleted. If they've been replaced and the replacement is in a future stripe the object will jus tbe replaced on rebuild, - squid will do that for us. But, if someone PURGE's an object or series of objects and then does a dirty shutdown the objects will appear again unless we _store_ the deletes for that storefs. Now, I don't know whether that really matters much - this is just a cache, and manual PURGE's won't happen often - but still... > Long term, we can give coss some real power, once we finish the async > key lookups begun in 3.0, as coss then won't need any in-core index - > and the other things you discuss can be done as part of the coss disk > index lookup logic. Oh, when we get the async key lookups finished and a few other changes occur I'm sure some real magic can happen. I think, however, that having COSS work "well" enough for normal web caches in 2.5 would be a big and useful thing. Adrian
