On 07/24/2012 02:13 PM, Dietmar Maurer wrote: >> Why can we simply reject read/writes until we start recovering a specific >> object? > > Sorry, the question is: > > Why can't we simply reject read/writes until we start recovering a specific object? > What do you by 'reject'? We can't simply return EIO to Guest, that is why we have wait queues, which re-queue the requests after some conditions meet. Basically, there are two mechanism: 1) use wait queues to retry when targeted object is being migrated/recovered 2) schedule objects that are being requested with higher priority than those aren't. Note, with consistent hashing algorithm, we actually have just very small set of objects that are to be migrated/recovered, most of objects don't need to be recovered, they just stay where they are. This means most of the requests during configuration event will be serviced as normal. Thanks, Yuan |