Re: Goodbye for now, kmail

Martin Steigerwald <[email protected]>
Newsgroups gmane.comp.kde.users.pim
Message-ID <2379483.TkkNEKe6DN@merkaba>
Daniel Vrátil - 06.05.17, 01:09:
> On Friday, May 5, 2017 4:45:08 PM CEST Martin Steigerwald wrote:
> > Pablo Sanchez - 05.05.17, 09:06:
> > > [ Comments below, in-line ]
> > > 
> > > On Fri, 05 May 2017 17:57:39 +0530, Vishnu V. Krishnan wrote:
[…]
> > - Akonadi does needless work – like to frequent folder and too expensive
> > synchronisations (on IMAP after every few mails you delete). It requests
> > all DB entries for the collection it synchronizes to compare what is
> > stored in backend storage like IMAP or local Maildir.
> 
> This is only true for Maildir and mixedmaildir resources. There are
> certainly other more efficient ways how to do this nowadays, someone just
> needs to look into it. As always, patches are welcomed.

Well I can only speak of KDEPIM 16.04 and Akonadi 16.04, but last time I tried 
with that version, a folder synchronisation was triggered *every single time* 
after pressing Delete key one about 5-10 mails. I seriously do not get why 
this should be necessary. I do not have any deep knowledge about the IMAP 
protocol, but I´d certainly expect that after a delete operation completed it 
will report back whether it was successful, and when it was successful there 
is no need to trigger a folder synchronizartions.

> > For local maildir I would like
> > to disable automatic folder synchronization *completely* cause I know that
> > Akonadi Maildir is the only user of it, yet it checks frequently whether
> > the million of mail files is still there.
> 
> Just turn off Automatic Synchronization for the folder. If the sync is still
> triggered, then it's triggered due to some external factor, and it needs to
> be debugged what triggers it.

I needed to dig a bit for this setting, but I see, I did so in the past 
already:

It is turned off for maildir resource main folder… and all subfolders I 
checked inherit that setting. I do have the following setting:

- Synchronize upon selecting the folder (roughly translated, running KMail in 
german) is checked

- Automatic synchronisation is set to never

Then I also set it to only retrieve the content of a message when it is 
necessary.

So that would be a new issue, if not already reported, I think.

> > - Akonadi does more needless work: When you moving a folder from one
> > parent
> > folder to another parent folder within a local Maildir resource it first
> > creates the new folder, then copies all mails, then deletes it from the
> > source folder, essentially moving them and then deletes the source folder…
> > instead of just *renaming* the folder.
> 
> Not true. The folder is renamed (see MaildirResource::collectionMoved() and
> MailDir::moveTo()).

Definately true for KDEPIM and Akonadi 16.04. I just tested it again. Akonadi 
hosts a CPU and I/O party on doing that with a folder of 50000 mails and I can 
only type really slow now while it does so. Now mysqld at 100% of one core, 
kmail at 84% of one core for more than 1 minute already. Okay KMaal has been 
involved, cause I had source folder still open. Additionally it appears to 
trigger Akonadi Indexing Agent again for the mails.

I know this so well, cause as a workaround, I looked up the folder in the 
filesystem and moved it there. This still triggers quite a database workload, 
as Akonadi detects it through inotify watches.

So has this been fixed meanwhile? I hope to upgrade to a later version soon.

After having written all this its still not finished and mysqld still uses up 
100% of a folder. This time I didn´t look specifically what Akonadi is doing, I 
did this for my bug report, needing several minutes of CPU usage for  just 
renaming a folder? I don´t believe this.

> > - Akonadi does not auto-tune MySQL performance settings like InnoDB buffer
> > pool size with is ridiculously low after anything than a few mails. A too
> > low InnoDB buffer pool size leads to additional file I/O accesses.
> 
> innodb_buffer_pool_size has been doubled in 17.04 release (to 128MB).

Wasn´t it 80 MiB before? Anyway, 128 MiB is still much too low for larger 
setups. And unless you want users to be a database admin, I think Akonadi 
should autotune it.

> > Thing is: All of these issues are known since years. And while Dan, Milan
> > and others did impressive performance optimizations these basic issues are
> > all still unfixed.
> 
> Patches are welcomed.

I understand. Honestly I don´t see myself developing patches at the moment. 
Due to time constraint, but also due to the fact that the last time I tried to 
understand Akonadi code structure and understand enough of how it works… I 
didn´t really get it.

Also I am not fully convinced that Akonadi is the right design to approach the 
challenges it is aimed to address. But what can I say… from what I found so 
far in its current incarnation I can *prove* it to do needless work in so many 
areas that it is not really funny. At least with 16.04. So I don´t really buy 
enough into Akonadi to be convinced I can do a meaningful contribution to it 
easily enough again. I did once, but I received a lot of help to profile the 
code back then… as I stopped maildir resource from *sorting* (!) all filenames 
of the maildir directory it synchronizes for *no* apparent reason. That was my 
one and up to now only commit to Akonadi. I wonder how many of those nuggets 
that can give *huge* performance improvements are still in the code.

However I intend to upgrade to newer KDEPIM soon. Hopefully with newer Debian 
packages after release of Stretch… but maybe even by using kdesrc-build again.

Also I´d need to learn more about C++ in order to contribute efficiently and 
meaningfully enough. I had the idea to do so and I do have some holidays, so 
maybe I will look for a good online resource to learn it.

> > And as such, while KMail and Akonadi works well enough for me after
> > raising
> > InnoDB buffer pool size to 1 GiB, and believe me I can easily notice when
> > on an Akonadi upgrade it gets downgraded to 80 MiB again…, I can fully
> > understand the massive frustration with it. Usually I have retrieving
> > folder contents or mail notifications only for a few seconeds, but I am
> > still seeing this. And this is on Dual SSD BTRFS RAID 1 with surely fast
> > enough Sandybridge ThinkPad.
> > 
> > 
> > So while I believe that creating a solution that works and uses an DBMS is
> > possible… for some reason be it lack of developer time and/or design
> > issues
> > within Akonadi, Akonadi still is not that solution. And thats after more
> > than 5 years of introducing it. So I perfectly can understand the
> > frustration and I certainly also can understand the arguments to ditch
> > Akonadi completely or replace it by something else like Sink. However Sink
> > probably did not prove itself in the scenarios KDEPIM would need it for.
> 
> Sink has some very good concepts that I like and we will be gradually
> evolving Akonadi towards those concepts. But I don't want to walk down the
> route of "let's throw everything away and start from scratch" though.

Well I bet it would be a lot of work to adapt all the KDEPIM applications that 
use Akonadi to use Sink instead. I did not look into Sink so far… and I don´t 
fully understand Akonadi´s working, so while I am reluctant about Akonadi just 
some seeing that years after its introduction it still does not deliver for 
many users, I have no idea what would be the best way to move forward and am 
sure you have a better understanding of the benefits and shortcomings of each 
approach.

I close with the remark that this 50000 mail folder *still* is not moved and 
mysqld still uses 100% of CPU. On moving back that folder I bet I will use my 
old move it in the filesystem trick again. At least that operation appears to 
be running in the background now and KMail is responsive enough.

Thanks,
-- 
Martin
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.