On 06/20/2012 07:37 PM, Liu Yuan wrote:
> On 06/20/2012 07:09 PM, levin li wrote:
>> +    pthread_mutex_lock(&sys->rw_object_mutex);
>> +    pthread_cond_broadcast(&sys->rw_object_cond);
>> +    pthread_mutex_unlock(&sys->rw_object_mutex);
>> +
> 
> Use condition & mutex is overkill for this corner case and doesn't look
> right to me, since epoch is passed down from callers, this means caller
> asks read_object() to read exact object of the very *epoch*. We should
> honor this semantics or the caller shouldn't pass the epoch down,
> otherwise call should do error handling, not read_object() per se as a
> generic function.
> 
> 
> With further thinking on this problem, I think callers of
> read/write/remove_object() family might not necessarily need 'epoch'
> parameter and would better forward these requests to gateway code, which
> manages retry well in recovery phase.
> 
> Thanks,
> Yuan

Sending a gateway request seems easy to solve this problem, but it takes
an additional connection, if it's ok, I'd like to rewrite this patch.

thanks,

levin
-- 
sheepdog mailing list
[email protected]
http://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to