[viff-devel] Mystery of the quadratic running time solved?

Marcel Keller mkeller at cs.au.dk
Sun Mar 8 10:01:02 PDT 2009


>>> Indeed we did not know (well I didn't) back then that the data was
>>> not sent immediately by Twisted, and I was starting to think
>>> yesterday whether the hack would make a difference. Lucky for us, it
>>> apparently does :)
>> That is not the only problem. To free the memory of the shares and to
>> send out further shares, also the incoming shares must be processed as
>> soon as possible. This is even trickier because incoming shares might
>> trigger code that calls functions sending out data, which activates
>> the Twisted reactor again and therefore leads to a possibly too deep
>> recursion. I think I have a solution for that, it just wasn't
>> necessary to implement it for now because the hack worked anyway.
> 
> I guess we could simply not recurse if the recursion depth is too big?
> 
> At some point we have to let the recursive calls finish in order to let
> the local variables and stack frames be garbage collected.

Yes, but If we just stop recursing at a certain level, we might just 
stay at that level for a longer time. That is also not optimal. In my 
opinion, another point for the two-threaded solution.


More information about the viff-devel mailing list