LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: One-packet scheduling for kernel 2.6

To: Julian Anastasov <ja@xxxxxx>
Subject: Re: One-packet scheduling for kernel 2.6
Cc: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Cc: Wensong Zhang <wensong@xxxxxxxxxxxx>
From: Horms <horms@xxxxxxxxxxxx>
Date: Mon, 3 Oct 2005 19:04:06 +0900
On Mon, Oct 03, 2005 at 12:51:19PM +0300, Julian Anastasov wrote:
> 
>       Hello,
> 
> On Mon, 3 Oct 2005, Horms wrote:
> 
> > I made some code for a customer that used the Call-ID as the key for
> > scheduling. Unfortunately the code was canned and I don't have a copy to
> > offer, but it was fairly easy to implement. I also seem to recall that
> > the system didn't work all that well because of the way some SIP
> > implementations use Call-ID, but I don't recall exactly why.
> 
>       Call-ID has simple syntax but i can't guess what can be the
> problem, may be SIP gurus can comment.

I do recall it wasn't a syntax issue, more an issue of
actually being able to identify packets for a call based on the Call-ID.
I really wish I could remember.

> > >   May be there can be service flag that requests per-packet
> > > scheduling but with reduced number of connections. The SIP scheduler
> > > can request the same. This flag should be somehow propagated to
> > > existing connections returned from _in_get to cause scheduling and
> > > second conn lookup (may be out_get) that avoids duplicated connections
> > > between CIP:CPORT and RS - little slower but avoids creating extra
> > > connections.
> >
> > I'm not sure why you would get duplicated connections. Perhaps I need to
> > look at your code more carefully. But in my mind, single-packet
> > scheduling just creates connections with a really short timeout.  If
> > they happen to exist in the table when the next packet comes in, they
> > they get reused, but in the more likely case that they have already
> > expired, then an new connection is created, using a scheduling algorithm
> > that consistently allocates the same Call-ID to the same real-server.
> 
>       while ops does not hash connections, pps hashes connections,
> SIP will do it on Call-ID scheduling request. If SIP relies on existing
> connections to select RS then this is not Call-ID based scheduling
> and there is no need SIP scheduler to exist. SIP requierments are:
> 
> - schedule packets according to Call-ID even if cp already exists
> - same CIP:CPORT can create many connections to different RS but to
> reduce their number they must be unique for RS->CIP:CPORT

I would have thought you want to schedule packets based
on CIP:CPORT:Call-ID or perhaps just Call-ID

Isn't the aim to make sure packets with the same Call-ID
end up at the same real-server?

-- 
Horms

<Prev in Thread] Current Thread [Next in Thread>