Results from extensive testing:
1)Installed wine and mono(for .net compatibility) on linux.
disparity runs ok, parity writing is done at 6-7MByte/sec when reading from 8 disks. Seems cpu limited, as the mono process takes 95% of cpu. overclocking the cpu improves write speeds. i have a hunch that i could be memory bandwidth limited too, as my cpu is a sempron 754@1.6GHz single channel ddr1 and small memory overclocks increased parity creation speed. Obviously mono is the major reason for slowdowns.
Note: disparity throws a message about not being able to calculate free space on the parity drive, but it continues, so if you make any changes on this please leave a switch that overrides low free space warnings.
2)I am now removing mono and installing .net2 from ms. Lets hope this runs disparity faster
3)On the windows machine now, i ran disparity along with process monitor. Every write to the samba parity drive returned a FAST IO DISALLOWED message and was as always quite slow.
4)Then i did the update command, and everything was as slow as before, with the FAST IO DISALLOWED messages showing up.
BUT: i enabled 256kb write cache to samba and retried. then update speeds skyrocketed to 20-25mb/sec, and no FAST IO DISALLOWED messages appeared! when i tried a normal create, speeds were again slow, followed with the FAST IO DISALLOWED messages.
So your slightly different algorithm for updates seems to work well with samba if write cache is enabled. Also the FAST IO DISALLOWED message seems connected to the slow speeds issue. If you want i can send you the process monitor logs for analysis.
Obviously i will continue to tweak samba to see if i can improve performance
For my situation:
a)i am very happy that disparity runs under wine, and will try to see if dotnet from ms is faster than mono. even with current speeds @ 7mbyte/sec i am willing to use disparity under wine. I suspect that i wont be alone in that, especialy if write speeds get over 10-15Mbyte/sec.
so please please please don't break compatibility with wine :D
b)small feature request: a switch that disables logging, or makes it less verbose. my linux is installed on a flash drive, and i try to reduce logging etc as too many writes can kill a flash drive.
c)a final small request: when improving the program in the future, please keep the command line functionality equal to a possible windowed version, so we text mode people can continue to enjoy your program :D