Re: [Tracker] support for other database backends?
- From: Jussi Laako <jussi laako linux intel com>
- Cc: tracker-list gnome org
- Subject: Re: [Tracker] support for other database backends?
- Date: Fri, 25 May 2012 15:20:17 +0300
Hi Martyn,
On 11.5.2012 17:18, Martyn Russell wrote:
they're faster. Last time I checked (a while back), MySQL was faster
than PostgreSQL for querying. Just wondering why you've thought of
PosgreSQL over MySQL really.
PostgreSQL is the only one that has LISTEN/NOTIFY system (especially
nice in 9.x series) with C function callbacks. Extremely useful for
notifying about updates in multi-client environment.
I wasn't aware of the D-Bus ordering issue? Though I believe the store
does collapse duplicate events. It also has been designed to work on
embedded systems with less resources, so we have various optimisations
to avoid spamming clients with events which are useless.
It still involves single-threaded central daemon that copies everything
around. So everything goes through double-copy. This also messes up
kernel scheduler because it hides inter-process scheduling dependencies.
Indeed. With the store, we really needed to be sure data was written in
cases where you had instant power outage (e.g. you drop your phone down
the toilet). So while caches are good, syncing is needed to some extent.
In most cases, like Nokia N9, you cannot have sudden power removal,
except if the device gets completely broken and in that case it doesn't
matter anymore anyway. However, excessive syncing causes kernel to
trigger filesystem barriers which causes severe filesystem stalls. It
also causes flash wear.
PostgreSQL is nicer to work with than MySQL from what I recall. We would
gain a lot from a bigger database, but likely loose a lot on embedded
systems and the efficiencies we made there. That's partly why we wanted
to do some testing on this some months ago, to figure if the switch was
worth it.
I was running postgre server for long time on my Nokia N900 proto and
nobody could notice any negative impact due to it. It can be tuned to be
fairly light. And it already consumes less CPU time than SQLite in many
real use cases.
I think it should implemented such way that the database backend could
be build-time selected to be either sqlite or postgre. Not being
exclusively either one.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]