Help improve Banshee’s performance on Maverick

Banshee having been picked as Ubuntu’s new default Music player is getting popular to test on all supported versions of Ubuntu. However there is a snag, for Maverick users, of which Ubuntu has a lot testing Banshee from what I can tell looking at the incoming bugs on GNOMEs bugtracker against Banshee.

And on Maverick Banshee is really slow. One major reason for this is that the version of SQLite, the database Banshee which Banshee uses, currently available contains a major performance regression which is confirmed as fixed in the version which is shipped in Natty. The version in Lucid is of a previous revision of SQLite which is not affected and against which we compare performance regressions.

So how can you help, not just bring your unfortunately slow Banshee purr on Maverick and in the process also giving people a fair look at Banshee.

1) Update your SQLite (Optional)

You can totally skip this if you take my word for it being a fix though optimally first you would install SQLite 3.7.3 or above, this can be done using a package from Debian. Though installing from non-Ubuntu repos can be fraught with dangers and concerns, possible untrusted packages and so on (read, be a little cautious). Reverting should be easy though and the process has been confirmed by quite a few users.

OMG! Ubuntu! reader ﻿Sameer Morar has kindly provided a version of the Natty SQLite which will work with Maverick in his PPA.

1) exit banshee

2) add the PPA: ﻿ppa:smorar/random

3) update your system

Step 2 and 3 can be easily performed in a gnome-terminal thusly:

sudo apt-add-repository ppa:smorar/random

sudo apt-get update && sudo apt-get upgrade

It would be great if people using this PPA would run their systems like this for a couple of days and report back to the Launchpad bug if any changes occur to the rest of your system (such as e.g. gwibber starting really slowly) so we can see if this has any negative impact. None have been reported to me at all but to issue an official SQLite update Ubuntu requests that we note if this has any additional impact at all aside improving Banshee performance for Maverick users.

Taking my word for it:

I read all the incoming bugs and have been triaging performance bugs in Banshee for quite some time, this is a common occurrence and the fix is simple and not harmful, but above all universally praised as a marked improvement with no side effects reported.

Banshee gets quite a few undeserved performance bugs filed against it which I would like to see solved for users. Having experienced these bugs often, the version Maverick users are given is showing disturbing performance regressions which are confirmed as fixed repeatedly by Banshee users with no new or further regressions having been found with the upgrade. Nor have any non-banshee regressions been discovered due to this upgrade, indicating that the upgrade is a massive improvement for Banshee use cases but also seemingly presenting no regressions for other applications have been discovered.

Finally the SQLite development team it self advocates moving all 3.7.1 and 3.7.2 installs to 3.7.4 as of the current writing.

2) Optimizing your database manually (Optional, but recommended)

Banshee will automatically optimize your database as changes to your library require a cleaning. There are reasons to do it manually such as ensuring an optimal starting point for Banshee. Also the automatic cleaning only runs one part of this optimization, to lessen the impact as it is done during startup.

Exit Banshee completely, then run this in a terminal window, it make take a few minutes to complete to be patient. Doing this while Banshee is running is likely to cause problems with your running Banshee instance so please take care that it is closed just in case.

sqlite3 ~/.config/banshee-1/banshee.db “vacuum; analyze;”

(if your Ubuntu prompts you to install a package this is normal and the package is required to complete this step, but can be safely removed afterwards if it was not installed already).

Restarting Banshee now should reveal improvements to the performance, specifically the search performance is reported to improve greatly. Though this is a win regardless of the Ubuntu version you are testing Banshee on, without the SQLite upgrade you are still going to experience severe performance problems unneededly on Maverick.

3) Confirming the fix (Required)

No way of just nodding and agreeing with me because I argue my case well now or because I have a trusting face. Sadly now you need to do actual work and it requires a Launchpad account.. Bummer I know.

*edit*

A bit of instructions seem to be in order.

While logged into Launchpad simply click the link and then the only thing you need to do is to click near the thing that says “This bug affects me too”. Clicking Subscribe in the right column will ensure that you receive updates.

Proper behavior on a bugtracker, which is a work tool, is not to add “+1″ messages or urge the fix be applied without providing a reason why without something to show. E.g. hard numbers and proof that we don’t regress in any other tests.

Please show the proper behavior when engaging with the Ubuntu developers, who get an email every time you add a comment and will know that you are affected simply by telling Launchpad that you are as shown above.

I don’t spend much time on certain aspects of Ubuntu, but apparently Ubuntu speak for what I am requesting, recommending and attempting to massively reproduce that it addresses the regression since Lucid without harm (with 3.6.x providing the same code a great experience) to 3.7.2 in Maverick which well.. makes Banshee sad in it’s pants to be frank… And all I am asking is that it at least reaches proposed for wider evaluation. It is a core library after all even I am not crazy enough to propose just chucking it in there, that behavior gave us floods of reports for all the previous SQLite 3.7.x releases.

Well it has a name SRU (﻿﻿Stable Repository Update), which means there is a process. And an awful lot of time to spend as an upstream developer to ensure that the application being maintaining for Ubuntu is being presented at least without inflicted, free of oozing even perhaps, wounds. Especially when there is work needing done and tested to ensure a smooth transition to Banshee as the default player for Natty. This means testers willing to help on Lucid and Maverick would benefit greatly and help ensure that Banshee be all it can be.

Off to study the wiki I guess, just be cause I love you Maverick users despite the view from up here on Mountain Natty (from whence one might also fallth mightily and breakth ones bottom mind you).

Two clicks for humanity is the least I can ask for? Yeah that felt to easy to me as well