On 05/24/2013 08:46 AM, MORITA Kazutaka wrote: > What I came up with were: > > - Make the current recovery process multi-threaded. Then sheep can > do multi-thread I/O against unrecovered objects, too. > > - Sleep a bit (e.g. 100 ms) before recovering a object while there > are outstanding I/Os from VMs. I think we can't simply sleep. Suppose volume A has only one object O, so when A read/write O, we need recover it first, otherwise the request won't have a chance to execute. So to execute the request, we have to put higher priority to recover the object first. Probably the solution is like current lazy recovery: - use tree to manage prio_oids and recovery_oids - put higher priority to prio_oid and recover them aggressively - put lower priority to other oids to be recovered. Thanks, Yuan |