Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve FairMQChannel polling to be O(1) #7

Open
dennisklein opened this issue Apr 13, 2018 · 0 comments
Open

Improve FairMQChannel polling to be O(1) #7

dennisklein opened this issue Apr 13, 2018 · 0 comments
Assignees
Labels
feature New feature or request

Comments

@dennisklein
Copy link
Member

From FairRoot created by rbx : FairRootGroup/FairRoot#566

Current I/O multiplexing implementation in FairMQ for waiting on data on Channels behaves O(n). Polling unix sockets - hidden in the underlying zeromq/nanomsg libraries - is already O(1). All transports we currently support can expose the relevant operating system file descriptors which enables the usage of O(1) polling system calls - kqueue for MacOSX and epoll for Linux. Boost.Asio io services already nicely abstract such system APIs for us and according to Integrating Boost Asio with ZeroMQ integration is feasible.

A mockup shows that the edge-triggered interface exposed by ZeroMQ causes socket starvation in a simple implementation -> Investigate how AZMQ/czmq zloop solve this.

@dennisklein dennisklein added the feature New feature or request label Apr 13, 2018
@dennisklein dennisklein changed the title [FairMQ] Improve FairMQChannel polling to be O(1) Improve FairMQChannel polling to be O(1) Apr 13, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants