kde-pim dev needed, for a sponsored open source effort, to remove akonadi

Martin Steigerwald martin at lichtvoll.de
Sat Mar 17 12:45:09 GMT 2018


Dear Paul.

This may still contain spelling mistakes and so on, but I read through it 
about 2 times, so sending it as is now:

First off: I acknowledge that there are performance *and* stability related 
issues with KMail on Akonadi. There is no point in denying that. They are in 
part due to how Akonadi currently handles some things. I was busy with other 
things and I bet Dan was too, but I really look forward to provide the in-
depth technical information that Dan shared with Sandro, Pablo and me with the 
public, even if initially just by posting some mails to KDEPIM developer 
mailing list.

Second: I easily spend about one hour for writing this detailed response. On 
hour that I did not use to do other things to help moving beyond the current 
situations with KDEPIM + Akonadi. I am certainly not interested in engaging a 
lot in a discussion on this list that may just end up being fruitless. I am 
interested in helping to move things along, i.e. really doing something that 
is effective. As I am not doing any of this during my day job as well. So 
after this long and elaborate mail I may not respond much more to this thread.



Paul Vixie - 16.03.18, 22:18:
> so there are two things i am unclear on, wrt akonadi's problems.
> 
> looked at: https://marc.info/?l=kde-pim&m=151777761106658&w=2
> 
> question 1: how did it ever get this bad? clearly the design and
> implementation was not stress tested or stringently reviewed.

I am not a KDEPIM dev, I just spent and spend some effort to help moving 
things in a positive direction. Take my answer as my personal impression:

I think the answer to your question is two-fold:

1) It is challenging to get right from the beginning. Doing such an 
asynchronous personal information management system that works independently 
from the applications, like Akonadi, is a challenging task. Protocols like 
IMAP are complex already, how to handle errors during connection, like for 
example not being able to store a mail onto the IMAP server, is even more so. 
Akonadi currently misses replaying payloads (that is mails, appointments) to 
their backend storage (be it local maildir or IMAP server) in case the initial 
attempt to store them there failed. Server-side change as proposed by Dan can 
fix that.

2) There are only a few developers working on KDEPIM. Often in their spare 
time beside their daily job. This is where funding might be able to help 
depending on how flexible their current employers are and whether those 
developers would be willing to accept money from sponsors. The Krita project 
people successfully raised quite some money several times and has a developer 
(or even two at the end?) work on specific topics.

Paul, your approach to pay to basically rewrite quite some amount of KDEPIM to 
work with something other than Akonadi might even make sense… but I take the 
word of KDEPIM developers like Dan, Sandro, and others that it would be a 
really, really huge effort. I think that Sink which is used for Kube is not 
there yet as it focuses on just IMAP based setups, but I am happily told 
otherwise. And also Sink is quite different in a lot of ways, so porting 
things over to it, may also be a quite huge effort.

So I find it highly unlikely that one of them would agree to work on a fork of 
KDEPIM. Why? 

1. I think it is safe for me to say that current KDEPIM developers plan to use 
Akonadi. They don´t think its feasible to replace it with something else at 
the current point in time. 

2. It would split the developer, tester and user community even more.

3. And how I understood Dan who really looked deep into the internals of 
Akonadi with the four major changes I mentioned in the other mail, it would be 
possible to remove the reason for the majority of all current bug reports.

So I believe that going about fixing Akonadi may easily still be way less 
effort than basically rewriting lots of KDEPIM from scratch.

However it appears to still be quite some effort. And there are only a few 
developers available at the moment who are capable to do this work. And these 
are developing on KDEPIM in their spare time. That is why I thought that 
publishing what Dan wrote to us during a very constructive private mail 
exchange about the inner workings of Akonadi, the current technical 
shortcomings and ways on how to solve them for good, can be helpful to attract 
other developers at least for some parts of the work.

However, putting a condition on the sponsoring that developers have to remove 
Akonadi… would be requiring the current KDEPIM developers to work against what 
they think is most suitable. I think it is unlikely for you this way to 
attract one of the current KDEPIM developers as you are basically opposing 
they way they want to fix things in KDEPIM.

I do think you may be able to go a longer way if you offer money so that 
KDEPIM developers can spend more time to work on the four major changes I 
mentioned in the other mail. However I fully appreciate that you want to read 
more about it before committing to spend money on it and… it would still be 
the decision of the developer whether to agree to step back from his current 
job a bit in order to free up more time for a temporary development task.

I plan to spend some of my time to help making the information Dan shared 
privately with us available on KDEPIM development mailing list. I handed it to 
Dan himself to post the information, but it seems he did not have the time, so 
I offered my help to him just today.

> question 2: why would we stress test or stringently review a fix, given
> that akonadi + kde-pim as it is, wasn't tested or reviewed, and is
> unusably bad?

I don´t get what you mean by that?

As far as I got it from Dan and other developers Akonadi has been tested and 
reviewed. One issue in all of that is that Akonadi to KDEPIM developers quite 
some issues don´t seem to happen on developer boxes. One reason for that may 
be the sheer amount of different ways to configure and setup Akonadi and 
KDEPIM. And well some shortcomings in Akonadi that can lead to bugs that only 
happen some of the time.

> background:
> 
> i have to shut down kmail and akonadi whenever i'm not reading e-mail,
> to keep it from eating my 12-hour battery in 45 minutes, and to protect
> my network bandwidth. when i start it back up i have to do it in a very
> particular order since only the first imap connection to come up will be
> able to do IDLE, and the kolabsys imap server _only_ works if you do
> IDLE. and then akonadi has to check _every single folder_ to find out if
> anything has changed. and then if anything has changed it has to
> re-download _every single message_ in that folder. including trash,
> which usually has thousands of messages in it. so i'm in it for a
> minimum of a gigabyte of bandwith and 15% of my battery just to start
> kmail back up, which i have to do whenever i receive encrypted e-mail.

First off, do you use disconnected IMAP?

Second: AFAIK it does not redownload every message, but with disconnected IMAP 
it synchronizes what is has locally with the contents of the folders on the 
IMAP server. I do think that it may be doing that *way* too often and it would 
be beneficial to be able to specify how often it does that. I have seen it 
doing it after pressing the delete key to delete a mail about 5-10 times in a 
folder. I have reported several bug reports related to that.

> conclusion:
> 
> my view is, don't ask for second set of eyes on code or testing, just
> commit patches to make akonadi better, because nothing you can break
> that way would be worse than the current situation.

While I certainly acknowledge that you are facing real issues, let me tell you 
this: Not everyone does.

I still have KDEPIM + Akonadi 17.08 here and I not see most of the issues you 
mentioned. I do see performance related issues with my large POP3 + maildir 
private setup and I reduced this recently by tarring together old mails from 
mailing lists and then removing them from the maildir. But I am talking about 
way more than a 1 million of mails here. The work related account with uses 
IMAP works quite fine. There are some issues with losing the IMAP connection 
rarely, but as Akonadi talkes to an Exchange based IMAP account, I am not 
really all that surprised it. For me it helped setting it not to cache all 
mails locally. So it just caches the most recent ones.

Thanks,
-- 
Martin



More information about the kdepim-users mailing list