tomcucinotta / distwalk

Distributed processing emulation tool
GNU General Public License v3.0
2 stars 4 forks source link

Allow dw_node to use various (e/p)poll/(p)select mechanisms for dealing with connections and messages from multiple clients #48

Open tomcucinotta opened 2 months ago

tomcucinotta commented 2 months ago

Currently, dw_node supports epoll()-based communications, which is probably the most scalable primitive when dealing with a potentially high number of connected endpoints, albeit being only supported on Linux. A few other options we might want to support may be:

The last option is probably the most popular and portable, however it suffers from possible scalability drawbacks with several endpoints, due to the need for the client to go through all the file descriptors in the pool, in order to find out which one changed state. On the other hand, a (p)poll() based loop might be more portable, albeit we should check whether we loose anything w.r.t. epoll().

This choice might be available through an option like

dw_node --multiplexing-mode=select|poll|epoll
tomcucinotta commented 1 month ago

work-in-progress in branch dw_poll...