5 ms·
C10k is basically just impractical without reactive / async / coroutines / that style. But with it it's extremely achievable on even midrange consumer hardware
by treyd 1y ago
C10k is basically just impractical without reactive / async / coroutines / that style. But with it it's extremely achievable on even midrange consumer hardware depending on the specific workload.
- rr808 1y agoC10k is pretty obsolete problem now, ten thousand threads is pretty trivial on modern machines. With modern load balancing you dont even have to worry about that problem any more. And that was before Java 25.
- treyd 1y agoModern servers yes, still has poor performance on consumer hardware even if it's technically achievable. That also disregards the kernel memory and thread contention overheads that eat into effective performance. It's obsolete not just because of new hardware but because we got better ergonomics for these new programming styles.
- fulafel 1y agoNah, you could easily have much more than 10k threads on regular hardware for a long time with the traditional threads. c10k was coined in the last millenium when a brand new PC would have 128 MB of memory and a single core 400 MHz cpu. And people were doing it with async IO, not threads back then. (Around the same time Java people got interested in Volanomark which is a similar thing but with threads - since Java didn't even have nonblocking IO then). See eg this about 100k+ threads on Linux in 2002: https://lkml.iu.edu/hypermail/linux/kernel/0209.2/1153.html https://lkml.iu.edu/hypermail/linux/kernel/0209.2/1153.html .. which mostly concerns itself with conserving memory address space since they are dealing with the 32-bit 4GB limitation of decades past. (c10k was also about OS TCP stack limitations that were soon fixed)
- vips7L 1y agoThat is completely different from what I’m discussing. You can have millions of virtual threads without ending up in reactive hell. Even still without virtual threads what’s more expensive 2x the dev team or a few more servers?
- mleo 1y agoDepends on how many times the few more servers are duplicated. Getting an extra server for on-premises installed products is worse than pulling teeth. It’s not one server, it is one server times a thousand.
- vips7L 1y agoI can assure you the differences between virtual threads and reactive is not a thousand.