New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Possibility to increase thread count & change DOKAN_OPTION_ALLOW_IPC_BATCHING? (FUSE) #1202
Comments
Hi @algj , |
Oh! Thank you @Liryna! This is exactly what I was looking for! Unfortunately (from my understanding) you cannot change it without recompiling Dokany. There should be a way to change this option somehow (possibly thread count too if we're at it) I hope someone makes a PR regarding changing this option easily... 🙂 |
No, the |
The problem is that those |
I'm a little confused... I don't mind the source code having both Dokany & FUSE code, but how does one do that? |
The problem here was apparently that if you create a native Dokany implementation, this is very easy to set from your implementation by setting a flag in the options structure when mounting a new file system. If on the other hand you implement a file system using the Fuse emulation layer on top of Dokany, this option is hidden in the emulation layer and not exposed to your implementation. |
Oh my!!! Thank you very much @Liryna for the PR!! ❤️ I thought I'll have to do the PR myself 😅 |
I have tried out IPC_BATCHING. There is a clear performance difference when I did my tests (it's slower by a few ms consistently), but for some reason it still sticks to 2 threads...? I did the same tests on Linux too, it was definitely handling concurrent reads/writes on Linux much better. I'm not sure if I'm misunderstanding something, I thought it's supposed to spawn new threads when there's a few of concurrent reads instead of blocking it all. |
Also, I think that ThreadCount should be added back. I guess SingleThread option could be removed, but that would break some things. ThreadCount = 0, library decides what thread count to use |
Looks like the IPC_BATCHING option was not correctly set in the library aef92bc :( Regarding |
Environment
Check List
Description
I have been experimenting with the FUSE wrapper, but I got stuck with 2 threads. Is there a way to increase the amount of threads or spawn more threads without recompiling Dokany? On Linux, FUSE is a lot faster when dealing with multiple high latency reads, because it doesn't block IO, that's why I think min thread count should be increased, or at least customizable.
I assume this was possible before, but now it depends on the CPU thread count:
dokany/dokan/dokan.c
Lines 791 to 798 in 415ac36
I'd suggest adding a way of changing thread count in Dokany & FUSE.
The text was updated successfully, but these errors were encountered: