[elvin-discuss] Re: Elvin spec

Matthew Phillips matt at mattp.name
Tue Dec 19 03:56:05 CST 2006


On 18/12/2006, at 10:59 PM, David Arnold wrote:

> -->"Matt" == Matthew Phillips <matt at mattp.name> writes:
>
>   Matt> Hi guys, quick suggestion: how does
>   Matt> "Transport.TCP.Coalesce-Delay" sound as the name of the
>   Matt> connection option to set the TCP coalesce delay option?
>
> a few comments:
>
> there's no need for the "Transport" on the front: the names of
> protocol modules are ok as top-level namespace elements.
>
> TCP is fine, good, and matches existing practice.

Seems reasonable.

> "Coalesce-Delay" is the hard part :-)
>
> here's a summary of the thinking thus far:
>
> TCP.No-Delay
>   Pro: basically matches the name of the socket option, so it will  
> have
>        some familiarity for those who have TCP experience.
>   Con: the value is a negative (ie. No-Delay, not Do-Delay), which  
> makes
>        it constantly painful to figure out whether you want its  
> value to
>        be 1 or 0

Agreed, negative options are painful.

> TCP.Enable-Nagle
>   Pro: includes name of algorithm, which makes finding explanations of
>        what it does Google-friendly.
>   Con: any Googled reference to "nagle" will only talk about the  
> theory,
>        and TCP_NODELAY, which isn't useful in deciding whether you  
> want
>        it 1 or 0.
>   Con: it's a bit of an obscure, hairy-unix-hacker name, that many
>        people who know what TCP_NODELAY does won't even recognise.

Agreed, esp re hairy-unix-hacker issue ;)

> TCP.Coalesce-Delay
>   Pro: matches current deployed systems, almost
>   Con: difficult to know what the hell it might mean
>   Con: does not really make sense.  The option doesn't coalesce  
> delays,
>        it introduces a small delay while coalescing packets.
>   Con: not clear if it should be 1 or 0, again.

Yes, I guess it only makes sense to me because I've already  
internalised it.

>   TCP.Send-Packets-Immediately
>   TCP.Send-Immediately
>   TCP.Send-ASAP

I like TCP.Send-Packets-Immediately the best of those. Or perhaps,  
using "positive" forms (i.e. the reverse of TCP.Send-Packets- 
Immediately, but not put as a negative):

   TCP.Queue-Packets
   TCP.Coalesce-Packets

I'm happy with any of the TCP.Send* ones or the ones above really.

btw I'm planning to allow defaults for all of the connection options  
to be set in the Avis config file. e.g. "Receive-Queue.Drop- 
Policy=fail". I'm also going to make the matching case-independent.  
Sound like a sane thing to do?

Matt.



More information about the elvin-discuss mailing list