Admin message

Join us at Akademy to celebrate KDE's 30th anniversary! Travel support requests are open till May 31st. Register now.

Open
Milestone

Remove client-side Akonadi transactions

Right now there are ways for Akonadi clients to control database transaction on the server. While the overall idea of ensuring atomicity of certain operations is good, the client has no knowledge of internal server implementation and behavior and interfering with server's database transactions usually leads to problems - mostly due to the client holding the transaction for a very long time. Especially with SQLite (which does table-level locking), holding the lock for too long results in other database operations failing due to conflict or being stuck on attempting to acquire a write lock on the table.

This milestone is about removing client-side controlled transactions from Akonadi.

It is also the last part that requires the connection to Akonadi server to be stateful and requiring a per-connection thread on the server side. Once client side transactions are removed, we can modify Akonadi server to run only a fixed amount of processing threads in a thread pool and randomly distributing handling of each request to a free worker thread. This should slightly improve RAM usage by lowering the number of threads that Akonadi server has to spawn. That's for another milestone, though.

  • Work items 2
  • Merge requests 1
  • Participants 0
  • Labels 0
Loading
Loading
Loading
Loading
0% complete
0%
Start date
No start date
None
Due date
No due date
2
Work items 2
Open: 2 Closed: 0
1
Merge requests 1
Open: 0 Closed: 0 Merged: 1
0
Releases
None
Reference: pim%"Remove client-side Akonadi transactions"