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

[Netty 5] Asynchronous File I/O #8533

Open
normanmaurer opened this issue Nov 13, 2018 · 3 comments
Open

[Netty 5] Asynchronous File I/O #8533

normanmaurer opened this issue Nov 13, 2018 · 3 comments

Comments

@normanmaurer
Copy link
Member

Depending upon the OS implementation the standard system calls for FDs may result in blocking when those FDs are backed by on disk files (even if the FD is in non-blocking mode). Some OSes offer an asynchronous file API to avoid these issues and we should investigate using this in our native transports.

Datastax has async file code in a Netty fork and is eager to contribute it back to Netty core (if it makes sense to have it in netty).

@normanmaurer normanmaurer added this to To do in Netty 5 via automation Nov 13, 2018
@chengenzhao
Copy link

jlink / jmod / modularized jar would be suitable for these os-specific requirements
including iocp(win), epoll(linux) and kqueue(mac)
Maybe its time to create a true netty-native project

@franz1981
Copy link
Contributor

Just thinking loud: It would be great to allow injecting specialized I/O scheduler policies (a-la https://www.scylladb.com/2018/04/19/scylla-i-o-scheduler-3/) accessible on user-level with a mechanism similar to what Netty already deliver with the writeabilityChange event/isWriteable query, to avoid I/O submissions to block or allocate native space on kernel-side, depending on the filesystem used...

@clebertsuconic
Copy link
Contributor

a few years ago, I tried to contribute this codebase into netty, at the time it did not make much sense since there was only a single place where the native bits could land on:

https://github.com/apache/activemq-artemis-native

perhaps we could take a fresh look into what datastax has, and merge the concepts, and perhaps do a new thing using netty schedulers to perform the writes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Netty 5
  
To do
Development

No branches or pull requests

4 participants