Hi Alan,

I have been told by the application users that the tools/apps,  have
been written in Visual Basic, Visual C or Delphi and use functions like:
FindFirstFile()/FindNextFile()/FindClose(), ... The
customer that uses this Unified storage unit, services hundreds of clients
with each with alterations of custom tools, that would need to be
rewritten (for quite a number of these the source has been lost and
thus cannot be altered anymore)

I suspected that was the case (both the functions and the situation).

Even though it might be POSIX compliant, is there any way to configure a
workaround, either in ZFS, CIFS, or another layer of the stack ? (even a
switch of a system wide parameter or DLL on the winXP/Win2K CIFS
client machine will do, ...

Nothing that I'm aware of.

On Windows, you can install file system filters to intercept requests and
a filter could possibly cache the entire directory locally on every FindFirst
request but note that this may have side-effects, particularly on change
notification, although that may not be relveant in data mining or applications
working on directory listings rarely change.  I'm not aware of an existing
file system filter to do something like this.

Attempting to do this is in the CIFS Service would present various difficult
technical challenges (synchronization, change notification, resume handle
management), and mapping UNIX file system readdir to SMB findfirst/
findnext is already complex.  On the server-side, a file system solution
would be better and avoid the technical issues.

ZFS uses a hash to insert directory entries, which makes lookup fast but
creates a random order.  I think it would be really good if ZFS could
maintain a sorted index on directories and I'll float this idea with the ZFS
team but, even if someone takes that on, it wouldn't be available in the
near future.

Alan

_______________________________________________
cifs-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/cifs-discuss

Reply via email to