On lease expiration (about multi-thread vs multi-process)

Francis Dupont fdupont at isc.org
Tue Jul 22 14:59:01 UTC 2014


Multi-threading for scaling is a dead end. To summary from
a single-thread to a multiple-thread application you begin
to loose half of the speed, so to get back the performance
you need two threads. With 3 you go at the same speed than 2
(aka the 3 bug :-). With 4 you have better speed but with more
than 4 you win no more and usually you become slower.

This is not a rule without exceptions (some particular cases show
overspeedup, i.e., an improvement in performances higher than
the number of threads) but it is true enough to affect most
of the multi-threaded applications, including BTW bind9.

So my advince is to try multi-process which is on the paper scalable
without bounds.

BTW if you rewrite/deploy bind9 today, you won't try to improve the
performance of one server, but anycast it into multiple servers in the
cloud.

Regards

Francis Dupont <fdupont at isc.org>


More information about the kea-dev mailing list