On Thursday, 13 March 2014 at 18:49:42 UTC, Etienne wrote:
On Thursday, 13 March 2014 at 06:49:35 UTC, Dicebot wrote:
On Wednesday, 12 March 2014 at 18:05:38 UTC, Etienne wrote:
I think this article puts it well. Bypassing the kernel for
fibers should be a long-term plan :)
http://highscalability.com/blog/2013/5/13/the-secret-to-10-million-concurrent-connections-the-kernel-i.html
I have seen one real-world project where it was done. Point is
not about specifically fibers though but scheduling as a whole
- when all resources of the system are supposed to be devoted
to a single service, general-purpose OS scheduling creates
problems as it is intended for universal multi-tasking.
I know it would be breaking for other services on the computer
assuming it's a desktop, but dedicated servers or embedded
devices can make great use of such a feature. I'm sure this
implementation could be done without restricting everything to
it, especially with functional programming as we have it in D.
I assume a demonstrated ten-fold increase in performance
by-passing kernel is a radical justification for this.
In project I have mentioned it was taken to an extreme measure,
eliminating kernel completely and sticking to barebone executable
for all traffic processing (with customized linux nodes for
management tasks). Performance achieved was very impressive
(scale of hundreds of Gbps of throughput and millions of
simultaneous TCP/UDP flows). Using D for such task has similar
issues and solutions as using D for embedded (Adam, I am looking
at your DConf talk!)