On Wed, 07 Oct 2009 13:26:43 +0200, "A.L.E.C" alec@alec.pl wrote:
Chris January wrote:
Sorting by anything but the default order (i.e. index_sort=true) is incredibly slow with 30,000 or so messages.
THREAD command returns messages (threads) sorted by date, it's not possible to speed this up. Index_sort option will not help and we have
two possibilities:
- re-sort by root message index if index_sort=true,
- forget about index_sort option when using threads
This is why there is a 'default' sort order in the threading patch. The THREAD command returns, as you say, messages sorted by date. Roundcube then sorts them again which can be very slow with lots of messages. So the threading patch introduces the 'default' sort order, which could be better called the 'unsorted' sort order, i.e. the messages aren't sorted at
all
but kept in the same order they are returned by the server.
But re-sorting by message index shouldn't be very slow, since we don't fetch any data from IMAP server. I still force to not use this 'default'
stuff.
Sorting ~30,000 threads with ~60,000 messages in them takes in the order of minutes on my machine. This is unacceptably slow, that's why I added the 'default' option.
Chris
List info: http://lists.roundcube.net/dev/
Chris January wrote:
But re-sorting by message index shouldn't be very slow, since we don't fetch any data from IMAP server. I still force to not use this 'default'
stuff.
Sorting ~30,000 threads with ~60,000 messages in them takes in the order of minutes on my machine. This is unacceptably slow, that's why I added the 'default' option.
But my point is to not sort anything if sort_col=date. We don't need 'default' sorting, since THREAD result is already sorted by date. I don't know what sorting are you talking about.
On Wed, 07 Oct 2009 13:55:36 +0200, "A.L.E.C" alec@alec.pl wrote:
Chris January wrote:
But re-sorting by message index shouldn't be very slow, since we don't
fetch any data from IMAP server. I still force to not use this
'default'
stuff.
Sorting ~30,000 threads with ~60,000 messages in them takes in the
order
of minutes on my machine. This is unacceptably slow, that's why I added the 'default' option.
But my point is to not sort anything if sort_col=date. We don't need 'default' sorting, since THREAD result is already sorted by date. I don't know what sorting are you talking about.
Ah, I see your point now - so the code would do: if (sort_col='date' && threading) { // don't sort } Yes I can see that makes sense, assuming the user is using REFS or REFERENCES and not ORDEREDSUBJECT.
Chris
List info: http://lists.roundcube.net/dev/
Chris January wrote:
Ah, I see your point now - so the code would do: if (sort_col='date' && threading) { // don't sort } Yes I can see that makes sense, assuming the user is using REFS or REFERENCES and not ORDEREDSUBJECT.
ORDEREDSUBJECT too.