On Sat, Feb 08, 2003 at 10:26:00PM +0000, Matthew Toseland wrote:
> Suggestion: a priority for 0.5.2, along with probabilistic caching,
> should be to separate Fproxy/mainport/etc from Fred, to run in two
> separate VMs.
> 
> Pro:
> * The thread-limit - each HTTP connection costs a connection, and we
>   cannot afford them, because we can't use as many threads in a single
>   VM as we want to. To get reasonable performance from Fproxy, I set my
>   browser to use _a lot_ of connections. Each one uses a node-side
>   thread. Splitfile requests are even worse. And FEC decodes run in the
>   Fred VM. More threads means more connections, which means better
>   ability to handle load, connections are kept open longer, hop time
>   goes down.
> * In general, Fproxy etc wouldn't interfere with Fred's resources
> * Possible to restart Fproxy without restarting Fred
> * Easier to implement alternate interfaces such as a browser plugin if
>   _everything_ is exposed by FCP.
> * Easier to make alternate implementations of the node. Or make radical
>   changes to Fred without making corresponding changes to Fproxy - for
>   example, the long-heralded nio.
> * People who only use third party FCP clients don't need to run the
>   Fproxy VM at all.
> * Possible to create a package with only the node, and a package with
>   only Fproxy, if wanted.
> * Considerably easier to run the client side on a different machine to
>   the server side.

And ..
ease of debugging,
currently with a few small hacks fred runs with GCJ pre-3.3 at least for a while.
FCP (frost) works, status web pages works,
but fetching thorugh fproxy doesn't work.

After a while (between 15 min and a few hours) lockups occures, probably some 
threads go into deadlock.

Tracing things like these is easier if the functions is separated into 
more than one process/JVM. With fewer functions running concurrently in the
same JVM the overview of what goes on and goes wrong should be easier.


> 
> Difficulties:
> * We need to move perturbHTL somewhere where it can be used by both the
>   node (to perturb HTLs of individual FCP messages)
> * We need a Main class for running the default servlets etc.
> * We need to separate out the two configs.
> * We need to expose everything that the servlets have access to over
>   FCP.
> * We need to ensure that BOTH VMs are started on startup by default, by
>   both the Windows and Unix installers.
> * Upgrading from the current system to a system with two VMs needs to be
>   as automated as possible.
> 
> * Probably more...
> 
> Comments?

The plugin architecture should be keeped which gives more code to maintain.


_______________________________________________
devl mailing list
[EMAIL PROTECTED]
http://hawk.freenetproject.org:8080/cgi-bin/mailman/listinfo/devl

Reply via email to