[sheepdog] [PATCH 1/3] sheep: queue local gateway request instead of directly call forward_*_obj_req

levin li levin108 at gmail.com
Mon Jun 25 16:50:08 CEST 2012


On 06/25/2012 10:48 PM, Liu Yuan wrote:
> On 06/25/2012 10:26 PM, levin li wrote:
>>>> How about this, we put the work into a worker thread using queue_work()
>>>>>> and make queue_request() called in the worker_done() function.
>>>>>>
>>>>
>>>> Maybe we can take advantage of sockfd cache, we can use lightweight unix
>>>> domain FD for self-queuing requests. This require smallest code change
>>>> and also doesn't compromise performance as bad as TCP sockfd.
>>>>
>>>> Thanks,
>>>> Yuan
>>>>
>> After further thinking, I think even we use a cached fd, it still not so efficient,
>> write/read_object() needs transfer about 4M data if we send a gateway request,
>> which I think is inefficient.
> 
> Then I suggest register a dedicated handler for process self-queuing and
> use eventfd for notification. It looks better than use current work queue.
> 
> Thanks,
> Yuan
> 

Yes, it's the best way to solve this problem, I'm writing the new patch.

thanks,

levin



More information about the sheepdog mailing list