EldoS | Feel safer!

Software components for data protection, secure storage and transfer

Laggy Windows 8 copying window

Also by EldoS: CallbackProcess
A component to control process creation and termination in Windows and .NET applications.
#29920
Posted: 06/25/2014 03:28:31
by Stanisław Gąsiorowski (Basic support level)
Joined: 06/24/2014
Posts: 6

Hello,
I am implementing file system using Callback FS and so far so good, but I've come across a user experience problem.

When I copy big file (500 mb) from/to filesystem build on CBFS, copying window on Windows 8 is not updated in real time and dragging the window (!) is very slow and choppy.
It doesn't happen when copying on normal HDD.

I've simplified the read callback function just to sleep the thread for 100 ms and then return success (returning random data, but it doesn't matter), and still this problem occurs.
It looks like Windows' Explorer needs some feedback in real time from CBFS in order to update copying window correctly and allow user to move it around on the desktop.

To solve the problem I've tried to disable serialization of callback, and it helped - now window is behaving properly (mostly) with this dummy read callback, but the problem appears again when reading two files in the same time.

Enabling CBFS cache helps a little, but still not sufficient - copying two files still renders window unresponsive.

To maximize this effect you can make very simple read and write functions to sleep 5000 ms and return success. This produces even stronger effect with window being unresponsive for 5 seconds.

I believe read and write callbacks should be able to block for any time, because it's the only way to control the speed of reading/writing.

How can I solve this issue?
#29922
Posted: 06/25/2014 03:33:48
by Eugene Mayevski (EldoS Corp.)

Thank you for contacting us.

Callback File System differs from the "normal HDD" and from network redirector (the one that maps network disks) in the way it works. Please see this knowledgebase article for explanation.

CBFS responds to the OS (and application) requests and there's no way to give feedback to Explorer copying files other than process those requests. So there's really not much you can do about this freezing. There's a property named ParallelProcessingAllowed which you can set to true, but it affects only non-changing requests, such as file reads (i.e. it will help when you copy files from the virtual disk, not to the disk).


Sincerely yours
Eugene Mayevski
#30283
Posted: 08/12/2014 09:16:17
by Stanisław Gąsiorowski (Basic support level)
Joined: 06/24/2014
Posts: 6

Thanks for answer.

Enabling parallel processing solved the issue pretty well.

Reply

Statistics

Topic viewed 1028 times

Number of guests: 1, registered members: 0, in total hidden: 0




|

Back to top

As of July 15, 2016 EldoS Corporation will operate as a division of /n software inc. For more information, please read the announcement.

Got it!