Description
Current FetchProcessor implementation divides the requested message range to batch set using some configuration parameter to avoid OOM.
Then for each batch range it calls the mailbox to return messages in this range. This can lead to serious performance problems when you have mailbox with non-consistent UID values. I.e. you can have mailbox with 2 messages in it
message 1 UID=1
message 2 UID=1000000
Regular client fetch will look like "UID FETCH 1:1000000 (...)" - this is real case what MS Outlook will do.
So the current mail implementation with default batch set will split it to 10k of batches and then call mailbox 10k times......