Hi all,
 
I've checked into CVS a new version of the fcptools (freenet CVS, in Contrib/fcptools), which now supports auto-splitting of all inserted files.
 
Since auto-split is implemented completely in the ezFCPlib library layer, all client software which uses fcpPutKeyFromFile() will inherit the autosplit functionality with no changes needed (except a new parameter to fcpStartup()).
 
Summary of changes
 
1) fcpStartup() now launches a 'splitfile insert manager' thread, which manages and dispatches all splitfile insertions. This manager thread maintains a queue of all file insert jobs, and spawns further insert threads as needed.
 
2) All files are split if they exceed the default chunksize (256k). This can not be overridden.
 
3) Default thread limit for chunk insertions is 8 for the whole process
 
4) New command line arguments recognised by fcpput and fcpputsite:
    -ss   size of splitfile chunks in bytes ('k','m','g' at end recognised, eg '256K')
    -st    maximum number of splitfile threads, default 8
 
5) Modules fcpSetHost.c and fcpSetHtl.c removed, consolidated into fcpSetParam.c
 
6) Splitting is *not* done with fcpPutKeyFromMem()
 
7) Splitting is *not* done from streamed key insert (fcpOpenKey()/fcpWriteKey()/fcpCloseKey())
 
8) Splitting *is* done when key is inserted via fcpPutKeyFromFile()
 
9) The global variable 'int fcpSplitChunkSize', if set before calling fcpStartup(), governs the splitfile chunk size (default 256k).
 
10) fcpStartup() parameters change:
int fcpStartup(char *host, int port, int defaultHtl, int raw, int maxSplitThreads)
 
11) Obviously, fcpput and fcpputsite now insert splitfiles, automatically and transparently. There is no way to override filesplitting for large files.
 
12) Lots of debug messages available if tools are run with '-v 4'.
 
Status - I've spent the last day and a half weeding out bugs and stress-testing. The whole thing seems to be holding up well on Linux and Windows, even with big jobs.
 
Bugs?
Probably infinite. If you find bugs, please find the simplest possible way to consistently reproduce them, run the applicable tool at full verbosity ('-v 4'), capture the output to a file, and send the file to me, along with your OS information etc. Feel free to 'censor' out any SSK private keys if necessary.
 
Cheers
David
 

Reply via email to