[OpenSIPS-Devel] RFC: new opensips design
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Mon Nov 10 18:35:39 CET 2008
Hi Stefan,
I'm only for an asynchronous approach - synchronous is not able to
handle large traffic and to scale (even in a one thread per message
approach).
So, the only option is async MT, even if it is much, much difficult to
implement. And I have to admit that (if you disregard the number of
available core) I also found very, very attractive the idea of a single
async process handling the whole traffic - as the complexity will be
done with 80%.....:D
It will be interesting what will be the real boost between a single
process approach (can use only one core) and a multi-proccess approach
(with inter process sync, locking, data exchange, but with multiple
cores)....
Regards,
Bogdan
Stefan Sayer wrote:
> sure. but: given you have enough processes/threads, you can fill up
> your CPU with synchronous (blocking) processing as well. only in the
> case that you don't have enough children, you waste 'real' time while
> waiting.
>
> nowadays, thread creation has become so cheap (in comparision...),
> that synchronous MT (create one thread per task) is definitely an
> option I would say.
>
> but still async MT is better, because you save just this thread
> createion cost, and by this you are safe against certain (blocking)
> DOS attacks. but it comes at the price of higher implementaion
> complexity. its a pity one probably has to make use of all cores,
> otherwise completely async processing with only _one_ thread would
> make the simplest design, and context isolation unnecessary (thus
> inter-message/inter-transaction/inter-dialog/... processing would
> become simple to implement) - and then python would be a possible
> candidate.
>
> Stefan
>
> o Bogdan-Andrei Iancu [11/07/08 17:32]:
>> And one more thing - of course you process more. Note that not all
>> the traffic will require much I/o interaction (rather then reading
>> and putting back on the network) - it is 100% CPU using traffic (like
>> sequential request - ACK for examples). Such traffic will perfectly
>> use the idle time from messages that are stuck in I/O (DNS, DB).
>>
>> Regards,
>> Bogdan
>>
>> Bogdan-Andrei Iancu wrote:
>>> Hi Stefan,
>>>
>>> You do not create additional threads or processes - you just use the
>>> time you waist right now in synchronous I/O ops for processing other
>>> messages by doing context switching.
>>>
>>> So DOS attack is not possible - at least not on this scenario :)
>>>
>>> Regards,
>>> Bogdan
>>>
>>> Stefan Sayer wrote:
>>>
>>>> o Bogdan-Andrei Iancu [11/07/08 16:46]:
>>>>
>>>>> So, i the same amount of time, you use all the time for computing
>>>>> instead of idle I/O and you can process more traffic.
>>>>>
>>>> i doubt you can process more traffic - but you can use all your
>>>> threads/processes efficiently, and do neither have to create too
>>>> many threads, not have all threads blocked, e.g. on some DOS attacks.
>>>>
>>>> Stefan
>>>>
>>>>
>>>
>>>
>>> _______________________________________________
>>> Devel mailing list
>>> Devel at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/devel
>>>
>>>
>>
>
More information about the Devel
mailing list