LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: One-packet scheduling for kernel 2.6

To: Horms <horms@xxxxxxxxxxxx>
Subject: Re: One-packet scheduling for kernel 2.6
Cc: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Cc: Wensong Zhang <wensong@xxxxxxxxxxxx>
From: Julian Anastasov <ja@xxxxxx>
Date: Mon, 3 Oct 2005 12:51:19 +0300 (EEST)
        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.

> >     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

Regards

--
Julian Anastasov <ja@xxxxxx>


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