4 ms·
Could you describe what makes the Google Fibers so nice? I'm also really curious why they require modifications to the Linux kernel. My first guess would be st
by nwlieb 7y ago
Could you describe what makes the Google Fibers so nice?
I'm also really curious why they require modifications to the Linux kernel. My first guess would be stronger integration with the IO model at the syscall boundary (similar to io_uring).
Edit: is this the talk your referring to? https://www.youtube.com/watch?v=KXuZi9aeGTw https://www.youtube.com/watch?v=KXuZi9aeGTw
- Blackthorn 7y agoYou know how the first time you learned about tcp sockets you made a server that spawned a new thread to handle an incoming connection (or maybe not, people learn differently nowadays). With the fibers implementation you can just do that. It doesn't kill your performance, and you don't need to go to a painful async model just for performance reasons.
- m0zg 7y agoPretty much. You get to pretend inside your fibers that you're actually running threads. IIRC (it's been a while) you also get proper stack trace when something barfs, the importance of which cannot be overstated.
- ninkendo 7y agoWhat are they though? Is this a library for an existing language? A runtime scheduler like the one that does goroutines in Go? If it were open sourced, how would I use it?
- thedance 7y agoIt’s just a library that allows easier development of C++ servers in the synchronous, thread-per-requests style, similar to working in Go but a bajillion times better because it’s not in Go.
- Blackthorn 7y agoAll of the above, and more -- kernel enhancements. See the linked paper, they detail what they do for the kernel side at least.
- dkersten 7y ago> or maybe not, people learn differently nowadays If by “nowadays” you mean ~2000 when I first learned socket programming (using select!)? ;-)
- m0zg 7y agoYes, that's the one. Unfortunately it doesn't show any of the API details that a developer would be exposed to.