Currently the lazy IFileIO implementation in Roxie holds a critical section per io operation (e.g. read()). It does this so that it can ensure that the asynchronous thread that closes files (if they haven't been accessed in a while), is thread safe.
This has the unfortunate side-effect of causing all index reads to be contended/serialized.
It should be changed so that the io operations are blocked for as little time as possible.