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
|