Description
Is your feature request related to a problem or challenge? Please describe what you are trying to do.
DiskManager performs potentially blocking file IO despite most likely being called from a tokio worker thread. This is unfortunate, as it may stall out a worker thread.
Describe the solution you'd like
DiskManager should make use of tokio::fs::File
or tokio::spawn_blocking
to avoid blocking threads. This will likely involve making some of these methods async
Describe alternatives you've considered
The methods could document that they perform blocking IO, and punt the burden onto the user to handle this, but this seems unfortunate given Datafusion's existing coupling to tokio.
Additional context
May be related to #1636 which concerns the construction of RuntimeEnv, and may allow RuntimeEnv::new() to be async without also making ExecutionContext
.
FYI @yjshen