← Back to team overview

mysql-proxy-discuss team mailing list archive

Re: Fwd: funnel - a multiplexer plugin for mysql-proxy

 

nick loeve wrote:
> missed the list
> 
> 
> ---------- Forwarded message ----------
> From: nick loeve <trickie@xxxxxxxxx>
> Date: Thu, Mar 5, 2009 at 3:30 PM
> Subject: Re: [Mysql-proxy-discuss] funnel - a multiplexer plugin for
> mysql-proxy
> To: Jan Kneschke <jan@xxxxxxxxxxx>
> 
> 
> Hi,
> 
> On Thu, Mar 5, 2009 at 3:18 PM, Jan Kneschke <jan@xxxxxxxxxxx> wrote:
>> nick loeve wrote:
>>>> Yep, the _op structure is prepared for a async delete too. It isn't
>>>> implemented yet.
>>> I implemented it and it seemed to have fixed my issue. Finally! :)
>>>
>>> I pushed the updates to my branch.
>>>
>>> Expect some event-thread-based benchmarks as soon as we have some
>>> plugin-internal statistics implemented.
>> Depending on how it is implemented, we may have to take care of a race
>> on the del-event:
>>
>>   chassis_event_del(...); /* async, only queues the request to delete
>> the event */
>>   close(fd);
>>
>> The fd may be reused before its event is deleted. This is only really
>> affecting network_socket_free()/network_socket_close(), but I wanted to
>> raise it at least.
> 
> Yeah i thought about that. From what I can see, as long as we push the
> delete using _local I should avoid that circumstance, at least in my
> code path.
> 
> I should also add a patch to the event deletion in network_socket_free
> that pushes the operation through the _local call.

passing down the event-struct as now good enough. All we need is a
delayed close and the event-struct carries the fd too:


   ..._OP_DEL_AND_CLOSE:
   close(EVENT_FD(ev));
   event_del(ev);
   break;

That way you can free the socket right away and synchronize the
event-del with the close of the fd.

> Cheers
> 
> 
> --
> Nick Loeve
> 
> 
> 


cheers,
  Jan
-- 
 jan: "Gee, Brain^WEric, what'd you wanna do tonight?"
eric: Same thing we do everynight: Take over the HelloWorld!



Follow ups

References