Comments (14)
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.
from dokany.
Oh my!!! Thank you very much @Liryna for the PR!! ❤️ I thought I'll have to do the PR myself 😅
from dokany.
The problem is that those DOKAN_OPTIONS_*
are not directly available for FUSE, they need to be wrapped for the FUSE interface. See here for DOKAN_OPTION_MOUNT_MANAGER
from dokany.
Looks like the IPC_BATCHING option was not correctly set in the library aef92bc :(
(The CI tests seems to fail, I will need to look at that https://ci.appveyor.com/project/Maxhy/dokany/builds/49214019 )
Regarding ThreadCount
, I don't think that's a good idea as like I said before, it does not scale correctly. Right now the best performance-wise thread count is allocated and for slow IO we need to use the thread pool.
from dokany.
Hi @algj ,
Have you tried DOKAN_OPTION_ALLOW_IPC_BATCHING ? There is no FUSE option (yet) but if you could force it and see if it helps your case.
Increasing main pull thread count is a limited solution that does not scale well with increase of IO activity.
from dokany.
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... 🙂
from dokany.
No, the DOKAN_OPTIONS_*
flags can be set in Options
field in DOKAN_OPTIONS
structure when mounting a new file system. It does not need recompiling driver or library.
from dokany.
I'm a little confused... I don't mind the source code having both Dokany & FUSE code, but how does one do that?
from dokany.
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.
from dokany.
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
ThreadCount = 1, single threaded
ThreadCount >= 2, multi thread, user defines how many threads application should use
from dokany.
Related Issues (20)
- Fuse3 support HOT 1
- Volume Security Descriptor and Length setting HOT 1
- How to disable virtual disk renaming? HOT 23
- BSOD in DokanDeleteFcb HOT 2
- win11 "Photo" app would black screen when using mirror.exe in the mode of network drive HOT 1
- dokan.sys unable to start HOT 8
- SetFileInfo triggers Notify when it doesn't change file attribute HOT 3
- It cannot be mounted in the current directory, but the documentation indicates that it is possible. HOT 3
- Async call BroadcastSystemMessage to avoid externel hang
- Race condition with io cancel HOT 5
- AndroidDrive fails with dokan and unable to zip 2GB+ file HOT 1
- Kernel - DokanGlobal->MountPointList items access isn't safe
- [Question] Too many Guid keys in MountPoint2
- [QUESTION] cannot access the network mapped drive remotely.
- Kernel - Allow passing the session information for the targeted mount
- How to safely remove ISO mount? HOT 4
- There is no certificate in dokan2.sys for version 2.1.0.1000. HOT 2
- Error Installing version 2.1.0.1000 HOT 17
- Error Uninstalling Dokan Library 1.5.1.1000 Bundle (0x80070643) HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dokany.