Subject: RE: Updates to the rfc2052bis

From: "Levon Esibov (Exchange)" <[email-masked]>
Date: Tue, 19 Oct 1999 11:11:39 -0700

> I have a question on the intent of our old friend the weight field.
> The draft says:
> 							Each time a
> 	target is needed, the client orders the remaining (not
> 	previously used) SRV RRs at the current priority in any order,
> 	except that all those with weight 0 are placed at the beginning
> 	of the list. 
> 
> If an RRset contain two records: one with weight 10 and one 
> with weight 90
> isn't the intend that about 90% of the load we directed at the latter?
> 
> The "remaining (not previously used)" seems to make a single client
> talking to the service do a 50/50 load split:
> 1. The first request will have the 90/10 split. Suppose it 
> picks the 90%
> record. 2. The next request will only consider the weight 10 record.

"each time a target is needed" doesn't mean "when client needs to locate a
service next time", instead it refers to ordering SRV records of the same
priority in the order in which client attempts to contact corresponding
targets. Namely, when client chooses the record with weight of 90 (lets call
it "target 90"), this record is added to the ordered "new list" as described
in the "Usage rules" section. The record with weight of 10 will follow the
first record in the "new list", meaning that the client attempts to contact
the target 90 first, and if it fails, then it tries to contact the target
10.
Regardless of which target client connects or fails to connect, if later the
client attempts (this is different attempt, for clarity let's say couple of
hours later) to contact a target providing the same service it will go
through the same procedure of querying the DNS server for SRV records (or
using cached SRV records) and ordering the SRV records with the same
priority, without excluding any targets that were previously used.

> 3. The 3rd request will what? fail since there are no more records to
>    consider?

Eventually, no records are left and nothing should be added to the "new
list". That's correct.

> Also in section "Usage rules" it says:
>              For each distinct priority level
>                   While there are still elements left at this priority
>                   level
>                        Select an element randomly, with probability
>                        Weight, as specified above, and move it to the
>                        tail of the new list
> Should it be "... with probability Weight/(sum of Wights at 
> this priority 
> level)"?

I agree that phrase "with probability weight" doesn't sound right, and your
formula precisely describes the probability of a record to be chosen by the
selection process described in the Weight subsection of the "The format of
the SRV RR" Section. But for clarity and consistency I'd modify text as
follows:

             For each distinct priority level
                  While there are still elements left at this priority
                  level
				Select an element as specified above, in the
				description	of Weight in "The format of
the
				SRV RR" Section, and move it to the tail of
the
				new list

Thanks,
Levon.

---

From: Erik Nordmark <[email-masked]>
Date: Tue, 19 Oct 1999 11:31:33 -0700 (PDT)

> the target 90 first, and if it fails, then it tries to contact the target

That might be a reasonable choice. The document might say this between the
lines (reading both the Weight definition and the usage rules and applying
some common sense to what should happen.)
The fact that you have to explain the meaning of "each time ..." using
the "new list" concept in "usage rules" means that the document can't
be read and understood in a linear fashion, which is bad.

I think this needs to be made more explicit.

BTW: As I read the "usage rules" there isn't any fallback from the
w90 record to the w10 record in my example (where both records have the
same priority).
The client will only use "new list" in priority order and the RRs excluded
by the random choice will not be part of "new list".
I agree that being able to fallback to the w10 RR when the w90 doesn't respond
would be useful, but the document doesn't say that.

   Erik