fuse-mt
fuse-mt copied to clipboard
Move dispatch of requests to seperate thread
I am having some performance problems that appear to be caused by my slowness to handle getattr() requests. I am reformatting data on the fly, so determining the size of a reformatted file is a relatively expensive operation. (NFS seems to be aggressive with sending getattr() also )
But what also seems to be happening in my scenario is that the request dispatch stalls when I handling getattr() - so I get starvation when handling read() requests. ( I.e. no request will be handed to the thread pool while the main thread is busy processing its own requests )
I am think that a better solution would be to have a dedicated dispatch thread, 1 main thread for handling requests that should be handled synchronously, and use the theeadpool for requests that can be handled asynchronously. This way the dispatch won't block,