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
