aloof-angle-91616
04/16/2018, 4:29 PMaloof-angle-91616
04/16/2018, 4:29 PMaloof-angle-91616
04/16/2018, 4:29 PMaverage-vr-56795
04/16/2018, 5:11 PMaverage-vr-56795
04/16/2018, 5:11 PMaverage-vr-56795
04/16/2018, 5:12 PMaverage-vr-56795
04/16/2018, 5:12 PMwitty-crayon-22786
04/17/2018, 10:56 AMFuture::wait
is cheaper than it might be with eagerly executed futureswitty-crayon-22786
04/17/2018, 10:57 AMwitty-crayon-22786
04/17/2018, 10:58 AMwait
, you'd begin eagerly executing the work with no atomics and no context switches (until the actual async work was running)witty-crayon-22786
04/17/2018, 10:59 AMwitty-crayon-22786
04/17/2018, 11:00 AMwitty-crayon-22786
04/17/2018, 11:00 AMaverage-vr-56795
04/17/2018, 11:00 AMwitty-crayon-22786
04/17/2018, 11:03 AMaverage-vr-56795
04/17/2018, 11:04 AMwait
thing is that you’re blocking the wrong threadpool; fuse-mt has a threadpool which it uses for all FS operations. Say only read
actually needs Futures - it means if you have 4 threads, and 4 `read`s are happening, you can no longer stat
or readdir
or getattr
until one of those `read`s completes. Whereas by having the I/O Futures running on their own threadpool, it’s only read
operations which are blocked on other read
operationswitty-crayon-22786
04/17/2018, 11:05 AMwitty-crayon-22786
04/17/2018, 11:05 AMwitty-crayon-22786
04/17/2018, 11:06 AMwitty-crayon-22786
04/17/2018, 11:06 AMaverage-vr-56795
04/17/2018, 11:07 AMaverage-vr-56795
04/17/2018, 11:08 AMwitty-crayon-22786
04/17/2018, 11:08 AMwitty-crayon-22786
04/17/2018, 11:08 AMwitty-crayon-22786
04/17/2018, 11:09 AMuser
04/17/2018, 11:11 AMaverage-vr-56795
04/17/2018, 11:15 AMaverage-vr-56795
04/17/2018, 11:17 AMwitty-crayon-22786
04/17/2018, 11:18 AMwitty-crayon-22786
04/17/2018, 11:18 AM