4 ms·
btw, HOP uses the Bigaloo web server and so isn't quite adequate apparently for a high traffic site (like I assume most here will have). here's an email exchan
by jwecker 20y ago
btw, HOP uses the Bigaloo web server and so isn't quite adequate apparently for a high traffic site (like I assume most here will have). here's an email exchange I had with the author the other day- sorry if the comment's a bit big:
I apologize for such a late answer. I'm always fighting with email. I'm
definitively not good at it because I'm not able to answer at a decent pace.
Hi Manuel. I've just been playing with Hop. Well done. It's just
beautiful. A couple of questions about it:
first, the bigloo web server- is this completely necessary? I guess one
of 4 things would need to happen for hop to be totally ideal:
Bigloo implements light-weight threads Gambit-scheme style so that it
can have erlang-like load capacity (
http://www.sics.se/~joe/apachevsyaws.html http://www.sics.se/~joe/apachevsyaws.html ) (most preferable option,
IMO, though I have no idea what your feelings are here. To me this
would make bigloo light-years ahead of all other scheme imps.)
I have tried several things concerning the multi-threading. You can read
our FairThreads proposal (http://www.inria.fr/mimosa/Manuel.Serrano). http://www.inria.fr/mimosa/Manuel.Serrano).
When I did this study I though that FairThreads was a decent solution.
Now that's no longer clear to me. Hop does not use Fair threads but
Posix like threads. I'm quite aware of all the troubles that come with
this kind of threads. I have not considered an Erlang-like solution
yet but that's something I could envision.
Get hop to work with a gambit-scheme server instead of bigloo (where
would i start with this? can you point me to relevant points in the
code?)
No, I think that you cannot. Hop is really not a portable Scheme
program. It extensively relies on Bigloo features. I'm afraid that
you will have to rewrite entirely. It's not a huge program but it is
not that small either. The problem is that it uses a lot of libraries
that you would have to re-implement too. All in all it's about 40.000
lines of Scheme code. I don't really recommend to try to re-implement
that (except if you are very brave ;-)
Get hop to work with mod_lisp (less preferable, IMO)
No. I don't think that a solution too. Hop needs to be running
permanently. That is two successive requests must be handled in the
same execution environment (i.e., the first request may set a global
variable that is read by the second request). Hence, even if you want
to use Apache you will be forced to have a server running somewhere
and you will have to establish a communication between Apache and that
server. Why not directly using Hop as a server?
Second item is the overall latency and possible redundancy... actually, I
don't know how to phrase the problem- but it boils down to this, I
counted over 27 distinct "connecting to server" cycles when you click
on the "weblets" tab of the Hop Home page. It took quite a while
re-establishing the connection to the server 27 times. Are there
thoughts on overcoming this?
Not really but... First, the Hop server supports keep-alive connections.
This should help. Then, honestly, I have hoped to find time to optimize
the server for months. I have not found that time yet but I think that I will
have it around the end of Spring. At that moment, I will study the problem
you are mentioning.
However, I'm using Hop on a daily basis. Even more, in order to push it to
its limits, I'm using it as my regular proxy. That is all my HTTP connections,
on all my machines, go through a Hop proxy/server. The performance are
acceptable. That is, I'm not annoyed by an important slow down due to Hop.
Thanks again!!
You are welcome. Thanks for the encouragements.
--
Manuel