[Kde-pim] Akonadi mail performance outlook

Christian Mollekopf chrigi_1 at fastmail.fm
Fri May 16 20:02:12 BST 2014


On Friday 16 May 2014 19.44:31 Martin Steigerwald wrote:
> Am Freitag, 16. Mai 2014, 17:19:44 schrieb GEO:
> > On Friday 02 May 2014 11:28:22 Daniel Vrátil wrote:
> > > > 3.) During the folder sync, it is nearly impossible to click a message
> > > > in
> > > > the folder. You will have to wait extremely long. This should not be
> > > > the
> > > > case. Fetching a message content should be completely independent from
> > > > syncing the folder and should only be limited by physical things like
> > > > connection speed, disk i/o, cpu load, ram etc.
> > > 
> > > It cannot be independent, because in the background it shares the same
> > > database, where database locking and long transactions (known problem,
> > > again)   lead to retrieval operations taking long time.
> > 
> > This does not sound like someone is going to solve it. Can we expect this
> > problem to be addressed in the future? (by fetching message contents
> > independent from the database?)
> 
> I think it needs to be solved.
> 

It obviously needs to be solved, it just requires someone actually doing it 
;-)

> And I don´t think this limitation is needed cause of database locking,
> clicking on the message just reads it for display. I don´t think that
> synchronizing the folder needs to lock out read access. At some time message
> read flag may need to be updated, but I don´t see why this can´t be
> happening asynchronously.

Database locking isn't the problem, or at least that should be solvable.

The only thing we do need is a write lock during a sync on a collection level 
(for consistency during a sync). Concurrent reads shouldn't be a problem.
Additionally, since we have to block writes, we should probably use a different 
Akonadi::Session for write operations than for read operations (at least as 
long as Akonadi::Session doesn't support concurrent commands). That allows us 
to circumvent this "limitation" and keeps read operations from getting blocked 
by write operations.

So it's all solvable, but someone needs to do the work.
If you feel inclined to do so, I'm happy to help you finding the right places 
in the code.

Cheers,
Christian


_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/



More information about the kde-pim mailing list