Review of database aspect of Akonadi, Akonadi concepts and a master plan
Martin Steigerwald
martin at lichtvoll.de
Sun Feb 4 20:53:07 GMT 2018
Hello PIMsters.
In the kdepim-users thread "kmail sigh" with a report on unpredictable
behavior of Akonadi Pablo offered to review the database handling of Akonadi.
I also thought I took the chance to do something productive about the repeated
user reports of performance issues and erroneous behavior and asked Daniel and
Sandro about whether they would like to have such an review.
Pablo is currently on the review for MySQL / MariaDB backend on the
Phabricator tasks
akonadi > MySQL ERD Review
https://phabricator.kde.org/T7846
akonadi > MySQL configuration settings
https://phabricator.kde.org/T7874
But this also lead to a longer communication off list also about a VM with
KDEPIM for testing purposes and about information Pablo would need for an
effective review. During which Daniel provided one gem after another on
insight about AkonadiĀ“s concepts and on how to effectively improve it. After a
short time of questions and answers it became obvious that this information
would benefit others and that it makes sense to continue this in public. I
only did one fix to Akonadi about maildir synchronisation performance a long
time ago, and that I was only able to do due to receiving a lot of help.
Nonetheless I never really understood completely how Akonadi works. Due to
DanielĀ“s 10000 Foot Overview on Akonadi I am now closer to understanding it
than ever before. I bet that this information is helpful for any KDE developer
who wants to help moving Akonadi forward in order to fix long-time usability,
stability and performance related issues in KDEPIM.
Daniel agreed to that and I also offered to update the Akonadi documentation
with the insights Daniel provides.
So look forward to mails from Dan about the concepts and inner workings of
Akonadi, how the change-recorder works and about three, well if I counted
correctly four major improvements of Akonadi:
1. rewriting the entire indexing infrastructure
2. notification payloads. So that change notifications have the changed data
inside already.
3. foreign payloads, for example tell KMail to access directly the mail in the
maildir.
4. and server-side change recording which as Dan will tell you fixes
everything
The good news is that these four changes have the potential to remove the
reason for the majority of all KDEPIM related bug reports. And some of these
changes are partly done already.
The challenge is: These changes are big, scary and have a good potential for
regressions. But especially they need time. A lot of time for one freelance
KDEPIM developer alone.
Minimal goal of this endeavor would be: To have an actionable review of the
database aspect in Akonadi. Ideally with ideally low-hanging fruits to improve
things.
In addition for this already is a great master plan idea on the table.
According to Dan for a longer time already, but I think it has never been
documented or made actionable for other developers to help along. So an idea
would be to work on this, create Phabricator tasks where not already done and
ask for help or probably have a basis for some GSoC projects. Ideally it would
be possible to split these into smaller steps, but that may not be possible.
However outlining what needs to be done, may help to attract other developers
or even new developers to Akonadi.
So this is the boiler plate mail about what we are about to do. If you want to
help or be informed watch this space and optionally subscribe to the
Phabricator tickets I mentioned (they are also subscribed to this mailing
list).
Thank you,
--
Martin
More information about the kde-pim
mailing list