F-Stack – A network development kit with high performance based on DPDK
1–10 of 32 posts
Re: F-Stack – A network development kit with high performance based on DPDK
#2Re: F-Stack – A network development kit with high performance based on DPDK
#3It was considered innovative when it was first shared here eight years ago.
Re: F-Stack – A network development kit with high performance based on DPDK
#4It was considered innovative when it was first shared here eight years ago.
Anything more innovative happened since (honestly curious)?
I once explored this, hitting around 125K RPS per core on Node.js. Then I realized it was pointless, the moment you add any real work (database calls, file I/O, etc.), throughput drops below 10K RPS.
Re: F-Stack – A network development kit with high performance based on DPDK
#5Earlier quoted context omitted.
Anything more innovative happened since (honestly curious)?
I don't think so, but my guess is raw performance rarely matters in the real world. I once explored this, hitting around 125K RPS per core on Node.js. Then I realized it was pointless, the moment you add any real work (database calls, file I/O, etc.), throughput drops below 10K RPS.
Re: F-Stack – A network development kit with high performance based on DPDK
#6Earlier quoted context omitted.
Anything more innovative happened since (honestly curious)?
I don't think so, but my guess is raw performance rarely matters in the real world. I once explored this, hitting around 125K RPS per core on Node.js. Then I realized it was pointless, the moment you add any real work (database calls, file I/O, etc.), throughput drops below 10K RPS.
We just do the networking bits a bit differently now. DPDK was a product of its time.
Re: F-Stack – A network development kit with high performance based on DPDK
#7It was considered innovative when it was first shared here eight years ago.
Anything more innovative happened since (honestly curious)?
Re: F-Stack – A network development kit with high performance based on DPDK
#8Re: F-Stack – A network development kit with high performance based on DPDK
#9Earlier quoted context omitted.
I don't think so, but my guess is raw performance rarely matters in the real world. I once explored this, hitting around 125K RPS per core on Node.js. Then I realized it was pointless, the moment you add any real work (database calls, file I/O, etc.), throughput drops below 10K RPS.
The goal of this kind of system is not to replace the application server. This is intended to work on the data plane where you do simple operations but do them many time per second. Think things like load balancers, cache server, routers, security appliances, etc. In this space Kernel Bypass is still very much the norm if you want to get an efficient system.
Unless you can get an ASIC to do it, then the ASIC is massively preferrable; just the power savings generally¹ end the discussion. (= remove most routers from the list; also some security appliances and load balancers.)
¹ exceptions confirm the rule, i.e. small/boutique setups
Re: F-Stack – A network development kit with high performance based on DPDK
#10Earlier quoted context omitted.
Anything more innovative happened since (honestly curious)?
I don't think so, but my guess is raw performance rarely matters in the real world. I once explored this, hitting around 125K RPS per core on Node.js. Then I realized it was pointless, the moment you add any real work (database calls, file I/O, etc.), throughput drops below 10K RPS.
Zero copy is the important part for applications that need to saturate the NIC. For example Netflix integrated encryption into the FreeBSD kernel so they could use sendfile for zero-copy transfers from SSD (in the case of very popular titles) to a TLS stream. Otherwise they would have had two extra copies of every block of video just to encrypt it.
Note however that their actual streaming stack is very different from the application stack. The constraint isn't strictly technical: ISP colocation space is expensive, so they need to have the most juiced machines they can possibly fit in the rack to control costs.
There's an obvious appeal to accomplishing zero-copy by pushing network functionality into user space instead of application functionality into kernel space, so the DPDK evolution is natural.