new to erlang: need ideas for server software
Roberto Saccon
rsaccon@REDACTED
Thu Aug 17 19:02:11 CEST 2006
at my approach to cometd and primarly as erlang learnig exercise, and
inspired by Chris Double's Push server code I just ported the Python
reference implementation to Erlang, but it's not finished yet.
Joe, I can't answer your questions (but I am also interested in the
answer). Your thoughts about additional messages in the protocol set
are very interesting, are you going to post them on the cometd
maillist ? If not, I am going post there a link to this discussion,
because the protocol is not yet frozen at all, AFAIK.
On 8/17/06, Joe Armstrong (TN/EAB) <joe.armstrong@REDACTED> wrote:
>
> Interesting - can somebody answer the following:
>
> cometd looks to be a ideal application for Erlang. I have written this
> try of application *many times*
>
> <aside>
> I have implemented a similar thing (many times). With the following
> differences:
>
> - instead of using JSON encoded message bodies I can send an
> message with an arbitrary encoding, determined by the mime-type
> of the message.
>
> In fact I use binary encoded Erlang terms (using
> term-to_binary(Message))
>
> When I compared this with XML encoded terms, my version ran 16 times
> faster
>
> - the set of messages
>
> * handshake
> * connect
> * reconnect
> * disconnect
> * status
> * subscribe
> * unsubscribe
> * ping
>
> Was different
>
> - I use what I call "poly ports", poly ports understand
> multiple-protocols
> so even though I use port 80 and HTTP I can interleave non-http messages
> on the port 80 channel (A kind of short form of the HTTP) instead of
> sending GET .... or POST ... I just send "eBin...." meaning "here comes
> an Erlang term encoded with term_to_binary. When I decode this term I
> get
> the parse tree of the HTTP GET/POST etc. request, again much faster
>
> </aside>
>
> Now I have some questions about cometd.
>
> - Is this an "interesting" application - ie if implemented in an
> efficient manner will
> anybody be interested and use the implementation?
>
> - Just how high performance is desirable?
>
> How many message/sec should a single server handle?
> How many simultaneously open connections should a single server
> handle?
>
> Also
> How frozen is the protocol?
>
> A really large server would benefit from an addition message in the
> protocol set,
> for example:
>
> * redirect (client - server message)
> * hand-over (server - server message)
>
> redirect can move a connection to a new server, the server send
> redirect to the client
> with a new server IP. The client closes the connection and connects to
> the new server.
>
> hand-over is used between server to negotiate a redirection before it
> occurs.''
>
> This can be used for:
>
> - load balancing (a busy server can redirect connections to a
> unloaded server)
> - taking a server out of service, without interrupting the service
> - scaling the capacity of the server.
>
>
> /Joe
>
>
> > -----Original Message-----
> > From: owner-erlang-questions@REDACTED
> > [mailto:owner-erlang-questions@REDACTED] On Behalf Of Roberto Saccon
> > Sent: den 17 augusti 2006 04:32
> > To: erlang-questions@REDACTED
> > Subject: Re: new to erlang: need ideas for server software
> >
> > oh, this is exactly what I am working on right now.
> >
> > > A cometd implementation:
> > >
> > > http://cometd.com/
> >
> > --
> > Roberto Saccon
> >
>
--
Roberto Saccon
More information about the erlang-questions
mailing list