<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=us-ascii" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.18999"></HEAD>
<BODY>
<DIV><SPAN class=516285120-11012011><FONT color=#000080 size=2 
face="Lucida Sans">Joe,</FONT></SPAN></DIV>
<DIV><SPAN class=516285120-11012011><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=516285120-11012011><FONT color=#000080 size=2 
face="Lucida Sans">Thinking about the sorting performance issues you are trying 
to solve.</FONT></SPAN></DIV>
<DIV><SPAN class=516285120-11012011><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=516285120-11012011><FONT color=#000080 size=2 
face="Lucida Sans">Are a lot of your sorts hierarchical (i.e. use ASC or DESC 
flags, as opposed to BASC and BDESC)? I am thinking that we have been doing 
hierarchical sorts inefficiently. If two members in the list are not siblings, 
we should even try to sort them; we should just leave them in the incoming 
order. But I think the current algorithm spends a significant amount of our time 
figuring out whether members are ancestors, siblings, cousins etc. and this is 
wasted effort. Plus it leads to sorting one big list as opposed to a number of 
much smaller lists.</FONT></SPAN></DIV>
<DIV><SPAN class=516285120-11012011><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=516285120-11012011><FONT color=#000080 size=2 
face="Lucida Sans">If your sorts use BASC and BDESC (or indeed TopCount etc.) 
then ignore -- we do have to compare all members.</FONT></SPAN></DIV>
<DIV><SPAN class=516285120-11012011><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=516285120-11012011><FONT color=#000080 size=2 
face="Lucida Sans">Julian</FONT></SPAN></DIV></BODY></HTML>