-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
Is your feature request related to a problem or challenge?
We would like to use datafusion in a thread-per-core/shared-nothing architecture, for that and other reasons we'd like to not use tokio as the async runtime.
Describe the solution you'd like
Remove uses of concrete tokio things where not truly necessary, and put truly required uses behind a feature so that users that don't want to use (or even pull in) tokio can still accomplish that.
Based on a shallow analysis, the core and physical plan packages would be the most challenging ones, the others all already don't, or use tokio only as a dev dependency, or the usage is minimal and could be easily removed.
Describe alternatives you've considered
I don't see a way other than forking datafusion as an alternative to this.
Additional context
I think it's fine to still treat tokio as the first class citizen, and not provide alternatives within datafusion for cases where it's unavoidable. I imagine anyone who wants this level of access wants extremely high control over I/O abstractions anyway.