Relational database on a slow storage

0

I'm trying to pick a RDBMS for usage as a backend for KDE's Akonadi PIM framework.

Problem is that the storage (/home partition) resides on a pretty slow SD card with reiser4 filesystem on it. The filesystem is based on COW and transactional model itself, so its fsync() performance is very low - while InnoDB uses it for its own transaction system. Hence the whole system is practically unusable.

What can be done to improve this? Possible backends for Akonadi are: MySQL (with InnoDB and MyISAM backends), PostgreSQL and SQLite. Actually, no scalability is needed as there is the only client.

intelfx

Posted 2013-01-21T15:48:48.857

Reputation: 168

use a faster SD card? – Keltari – 2013-01-21T16:01:02.507

For something like this I would say MySQL and PostgreSQL are overkill - SQLite is much more, well, light and doesn't involve a server. – Alan B – 2013-01-21T16:15:14.430

Hm. I've just tested SQLite against both MySQL backends and it seems that SQLite is not any faster than MySQL/InnoDB. And by the way, MySQL/MyISAM is actually a whole lot faster (no benchmarks, just user experience) than both of the above. – intelfx – 2013-01-22T10:06:32.453

Answers

0

...So I've done some research.

I've tested:

  1. MySQL with InnoDB backend - nearly unusable
  2. SQLite - also pretty unusable, speed drastically decreases with total row count
  3. PostgreSQL - not tested, because the corresponding Qt's database driver was not available
  4. MySQL with MyISAM backend - no lockups altogether; perfectly suits me.

Yes, I know that MyISAM is not transactional and hence I'm risking integrity of data... But for Akonadi (which is just a caching frontend) it is completely ok.

intelfx

Posted 2013-01-21T15:48:48.857

Reputation: 168