[REBOL] Re: LDC goes Rugby!
From: holger:rebol at: 23-May-2001 6:13
On Wed, May 23, 2001 at 08:00:09AM +0200, Petr Krenzelok wrote:
> - once max number of simultaneous connections is reached:
> a) other copy of LOCAL Rebol could be 'launched, connected to master by TCP port
> Q: does the solution scale well? We currently have Sterling's proxy script or
> Rugby available e.g., which show us we can handle connections by parts, so it
> feels like "multitasking". But there is probably some limit to rebol speed,
> where timeouts will get longer. So - will launching new OS task (new Rebol
> instance, connected to "master" task, performing the same kind of functionality)
> help to locally load balance connections handling?
Yes, somewhat, if the bottleneck is processing the requests itself. An alternative
is to use load balancing in the FastCGI dispatcher.
> Other two question related to ports:
> - I noticed that Maarten used open/direct non buffered aproach? Does it have any
> advantage upon using buffered ports, e.g. "blocking" issues?
open/direct is necessary in most situations because otherwise you would not get any
data at all until the other end closes its connection.
> - I also noticed following piece of code. What does it do exactly, please - I
> mean how does it influence port?
> set-modes conn [ async-modes: [read write]]
Don't use, don't touch, don't copy. Here there be dragons...
'async-modes is an RT-private port mode that we added temporarily for the
implementation of /Express, to allow more flexibility in async socket operation.
Any script using it WILL break and will have to be largely rewritten for
Core 3.0. We will switch to handler-based model for async i/o then. That's
why we intentionally did not document this.