[Standards] s2s and gracelessly broken streams

Greg Hudson ghudson at MIT.EDU
Wed Apr 4 10:30:07 CDT 2007


On Tue, 2007-04-03 at 10:41 -0700, JD Conley wrote:
> S2S connections should be able to be closed, like they are today. IMHO
> C2S connections should as well. It's a good conservation of resources.

Disagree with the second part.

First, as has been pointed out elsewhere in this thread, closing a c2s
connection is less transparent.  Without deep and failure-prone network
magic, the server won't be able to connect back to the client when there
is a new message to send, so the TCP association is necessary in order
to ensure bidirectional communication.

Second, although keeping c2s connections open does affect server
scalability, everyone understands the need to be able to scale with the
number of users they have.  Ideally, good software can make the cost per
inactive user pretty small (a 4K kernel TCP buffer and not much else),
but even if it doesn't, you can typically plan for more users and
provision more hardware.

By contrast, the number of foreign servers your users exchange messages
with is much harder to predict and scale with.  If some gonzo user
decides to send a message to 10,000 different sites one day and your
server isn't cleaning up the resulting resource allocation, that's going
to be displeasing to most admins.  The fan-out of s2s connections may be
low on most servers today, but it's unlikely to remain low on all
servers in the future.




More information about the Standards mailing list