Adrian Chadd wrote:
2009/10/15 Sachin Malave <[email protected]>:
Its not like we want to make project bad. Squid was not deployed on
smp before because we did not have shared memory architectures
(multi-cores), also the library support for multi-threading was like
nightmare for people. Now things are changed, it is very easy to
manage threads, people have multi-core machines at their desktops, and
as hardware is available now or later somebody has to try and build
SMP support. think about future.......
To cop with internet speed & increase in number of users, Squid must
use multi-core architecture and distribute its work............
I 100% agree with your comments. I agree 100% that Squid needs to be
made scalable on multi-core boxes.
Writing threaded code may be easier now than in the past, but the ways
of screwing stability, debuggability, performance and such -haven't-
changed.. This is what I'm trying to get across. :)
Aye, understood. Which is why I've made sure all this discussion is done
in squid-dev. So those like yourself who might have anything to point at
as good/bad examples can do so.
Sure, Squid can be re-written from the group up yet again. But none of
us want the ten year delay that will cause. The answer is to drop eight
years of improvements and use the Squid-2 code, or go ahead with a
somewhat incompletely upgraded Squid-3 code. Leveraging some of the SMP
work to further upgrade the remaining sections, while just slipping SMP
into the currently upgraded components.
Do you actually have any relevant implementations you in your infinite
wisdom and foresight want to point us at? Or just diss us for not
knowing enough?
I'm already aware of the overall models Varnish, Oops, Apache, and
Polipo, and Nginx are documented as using. Without looking at the code
it's clear that their approaches are not beneficial to Squid without
major re-plumbing.
The solution we have to use is a mix, possibly unique to Squid, which
retains Squids features and niche coverage. The right mix of tools for
each task to be performed: child processes, IPC, and events. Now adding
threads for the pieces that are applicable. There is order in the chaos.
Amos
--
Please be using
Current Stable Squid 2.7.STABLE7 or 3.0.STABLE19
Current Beta Squid 3.1.0.14