On Thursday, June 9, 2011 at 12:20 PM, Todd Tannenbaum wrote:
Ian Chesal wrote:They way it is written, it makes it sound like the entire list is
re-sorted if NEGOTIATOR_PRE_JOB_RANK doesn't yield a unique and that
it's re-sorted 2 times, maybe 3 times if preemption is to occur, before
another top match is looked for. That doesn't seem like it can be the
case.
It *must* be looking for a new top match between sorts otherwise
the only sort setting that matters after NEGOTIATOR_PRE_JOB_RANK would
be the last one evaluated (NEGOTIATOR_POST_JOB_RANK or PREEMPTION_RANK).
Don't think of it as the list be re-sorted over and over. The list of
machine ads is sorted just once lexicographically, and then the top
machine ads is picked. Just like you may sort a list of names once w/ a
primary key of last name and a secondary key of first name, the
matchmaker sorts the list of machine ads once with the following 'keys'
in order from most significant to least significant (for each, a larger
number means 'better'):
1. negotiator pre job rank
2. job rank of offer
3. negotiator post job rank
4. preemption state (2=no preempt, 1=rank-preempt, 0=prio-preempt)
5. preemption rank (if preempting)
Hope this helps.