Re: Continuation based app servers



Pascal Bourguignon <pjb@xxxxxxxxxxxxxxxxx> writes:

The problem you have is that there is a limited number of threads
possible in a process (around 300 or 400). Therefore you can handle
only a limited number of concurent modal sessions (around 150 or 200
if you call recursively do-modal only once per session).
That's a bit pessimistic. Statistically I think do-modal stretches
will be rather brief - you call one to authenticate, or call one with
some dialog, and then within a few seconds get out. For some features
do-modal calls can get rather long and recursive but it's unclear how
many users will be in such a state at any given time. I think you
could easily have thousands of users if you put them into the modal
state judiciously.

Of course some Lisp implementations would fit into this model better
than others. Initially I experimented with green thread systems
(Haskell, particularily GHC, has excellent support for these, as well
as Erlang), but I quickly found that with these languages I don't have
the freedom I'm given with Lisp (perhaps that's why they're so
scalable).

Anyway, if the app on top of such system gets really huge, one can
always hire a few hackers to complete the Erlisp project :)

--
Regards,
Slava Akhmechet.
.