EldoS | Feel safer!

Software components for data protection, secure storage and transfer

How do we set the cluster size of the virutal drive?

Also by EldoS: RawDisk
Access locked and protected files in Windows, read and write disks and partitions and more.
Posted: 12/03/2010 13:53:17
by Brendan Lelieveld-Amiro (Standard support level)
Joined: 02/04/2009
Posts: 7


The results of the Win API function GetDiskFreeSpace() on our Virtual Disc returns the following values:
lpRootPathName = Z:\
lpSectorsPerCluster = 1
lpBytesPerSector = 4096
lpNumberOfFreeClusters = 11,412,719
lpTotalNumberOfClusters = 11,706,943

How can we change the SectorsPerCluster value that is reported? In previous versions of CBFS I see a variable called SectorsPerAllocationUnit. I dont see this or anything similar in the newer versions of CBFS.

This is important to us, because a third-party application is determining the buffer size inside file write calls to be equal to the number of bytes in a cluster (lpSectorsPerCluster * lpBytesPerSector). Writing to 10MB files in 4KB chunks is too small for us, because of the overhead we have between each write call.

Posted: 12/03/2010 16:10:46
by Volodymyr Zinin (Team)

Hello Brendan,

In the current version there is no possibility to specify the cluster size. Perhaps it will be added in future but now to workaround the problem maybe implementation of some intermediate buffer can help for you. I mean in the OnWrite callback you could write 4KB chunks to an intermediate buffer and then perform a real write of a big data chunk from that buffer.
Also there can be other third party programs that will perform writing small chunks always not depending on the cluster size. Of course, the latter isn't an argument in the case if the mentioned third party program is somehow important for you.
Posted: 12/05/2010 00:07:43
by Brendan Lelieveld-Amiro (Standard support level)
Joined: 02/04/2009
Posts: 7

Hello Vladimir,

Thanks for your prompt response. Yes the third party application is important to us.

We could possibly optimize the code as you suggested. We would need to now store file information both in our current Database as well as local in memory for in progress files as the third party application could be verifying that the file info gets updated after each write.

I suppose we could try downgrading to a previous CBFS release for testing. Is the cluster support scheduled for development? If so; when would you expect it to be released?

Posted: 12/05/2010 00:58:51
by Eugene Mayevski (Team)

We have no plans for such support. It doesn't matter if cluster size is 4Kb or 64Kb - write speed will be terribly slow anyway. Fine block size is 1Mb and larger - then writing speed is optimized. Indeed, local buffer is the best solution because it will improve speed of operations of any application.

Sincerely yours
Eugene Mayevski
Posted: 10/04/2012 09:44:06
by Brendan Lelieveld-Amiro (Standard support level)
Joined: 02/04/2009
Posts: 7

Hello Eugene and Vladimir,

We did implement a buffer over a year ago as you suggested, but we found that the performance in our application was still fairly slow. We ended up removing it, and just reduced the number of calls to the SQL Database (to update file size, etc..) per write request. With this change were were able to increase the performance with 4KB writes from approx 300KB/s to 650KB/Second but this is still too slow for some of our environments.

We did test with the sample Mapper application and it is able to get 4KB write speeds of approx 27,000 KB/Second so the performance is certainly due to our implementation.

In the third party application it is hard coded to write chunks = (lpSectorsPerCluster * lpBytesPerSector). In the case of the Eldos Drive Letter this = 4KB.

Have you reconsidered re-adding the ability to change the lpSectorsPerCluster value? Or do you think that Version 4 of CBFS will help with the performance?

Thanks in advance.

Posted: 10/04/2012 11:28:08
by Volodymyr Zinin (Team)

Hello Brendan,

For the CallbackFS version 4 we will add a possibility to set the cluster size. We will try to do it for the next beta or prerelease build.
Posted: 10/04/2012 11:45:45
by Brendan Lelieveld-Amiro (Standard support level)
Joined: 02/04/2009
Posts: 7

Thank you Vladimir!

What is the target release date for Version 4?

I wanted to have a look at previous beta's (since you mentioned 'next beta') but I could not find them listed in My Control Center / My Downloads. Should I be looking somewhere else?

Posted: 10/04/2012 11:53:06
by Volodymyr Zinin (Team)

Also by EldoS: MsgConnect
Cross-platform protocol-independent communication framework for building peer-to-peer and client-server applications and middleware components.



Topic viewed 3387 times

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


Back to top

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

Got it!