Reply To: Getting Playlist in 1586

#11716
rpedde
Participant

@peterr wrote:

I installed svn-1586 on an NSLU2. Overwriting a previous installation of mt-daapd 2.4 which used it’s own database instead of sqlite. After rewriting smart.html and smart.js so that I could batch import smart playlists, I created a small smart playlist covering only 286 albums for 3268 tracks. My previous smart playlist for this library under 2.4 consisted of 436 (by album and by composer) items.

With 1586, it takes at least 5 times as long to refresh iTunes with the network server music list with this smaller playlist. This is not too much a problem as once you log in via iTunes, the playlist stays. but I use a cgi perl script to support three different libraries and switching between libraries is a pain now as one library has 768 item smart playlist and I have to wait nearly forever! Really what is the advantage of sqlite vs the much faster old way?

Access to the underlying database is the big thing. Playlist stuff is going to (soon) get moved back out of the database for performance reasons, and to be able to do interesting things that are hard (impossible?) to do with SQL, so that will help a lot.

Also, after the playlists are done, then I’ll finish up the db abstraction and re-implement a gdbm backend for performance on low-memory devices.

I hope that once the playlist stuff is done, the sqlite backend will run as fast as the old gdbm backend did. Mostly the payoffs of the sqlite backend run more to larger memory devices, and the ability to manage the database with a sql client, via a php page, etc.

Lately, though, I’ve been more targeting architecture changes and not performance. Soon I’ll start tackling performance again.

I know I should have released a new stable before this, so it’s hard not to run nightlies because of the feature improvements, but remember this is dev code, and doesn’t necessarily even *work*, much less work fast. I am aware of the speed issues, though, and I’m going to be tackling them soon. I don’t want to release another stable until I get the gdbm backend back in, particularly for the NSLU2. That’s whats really holding back a new stable.

If you have ideas on that front, I’ll take them, but remember that is is a one-man band, and sometimes I move slower than people might like.

— Ron