Release 20230905

Sprint We’ve started a new round of performance improvements in this release. These improvements stretch into the next release, too.

In addition we’ve added the ability to disable fingerprinting.

  • Download
  • Download
    (Intel x86)
  • Download
    (Apple Silicon)
  • Download
  • Download

Harder, better, faster… stronger?

We’ve been getting some feedback from Synology users that bliss, when running on lower powered Synology NASes, just runs too slowly.

These devices typically have no more than 512MB RAM, and as a result bliss is prescribed to occupy no more than 128MB (1/4 of system RAM is a good rule of thumb to avoid an app taking over the operation of the device too much). Other more memory-capacious platforms run with at least double that.

That doesn’t cover all Synology NASes; there are plenty with 1GB or more that run better. But for those lower powered devices with small amounts of RAM, tied with the slower processors in these devices, often mean a slower experience.

So we decided to look into making bliss run faster with less memory.

We’ve made a number of changes in this and the next build (currently going through development). Almost all of these updates pertain only to the initial reading-in of music files and the storage of tags in a “tag index” for later retrieval. The tag index makes it faster to answer, for example, all the music files which are in the album Discovery (or whatever).

So our scanning/indexing improvements in this release are:

  • We are stricter about the fields we store in our “tag index”, avoiding storing overly lengthy fields (like lyrics).
  • We have changed the database we use to cache information like fingerprints and last modified times. We now use Xodus for this.
  • We’ve made the identifiers we use for files, tags and libraries much smaller.
  • We’ve reduced the number of lookups for information we make from the tag index - batching them together.
  • Parallelism across multiple databases (tag index, music model, activity stream) has been increased.

This isn’t the end of it; as I said there are improvements in the next build too in this area. Also, this doesn’t cover rule assessment or fixes, just the scan and creation of albums.

In our testing, we configured a DS220j (which has 512MB RAM and a sloooow ex-laptop hard disk) and loaded a music library of 34,000 tracks - just over 2,000 albums. Before, the scan took 2hr40. Our latest tests (which are with the version currently in development, out in a fortnight) show the scan takes just over 1hr, so quite a big improvement. Stay tuned for more!

Disabling fingerprints

Something we realised when answering support emails was that it would be useful to be able to disable fingerprinting in certain cases. This makes rule assessment faster, but obviously you lose the benefit of finding tags for untagged or really-badly tagged albums.

To disable fingerprinting, add the following command line argument when running bliss on the command line:

VMARGS=-Dbliss.disableFingerprinting=true ./bliss.sh

If you want some help enabling that on your platform and don’t want to frig about on the command line, get in touch.

Downloading and installing

You can download by clicking the button above, or from the downloads page.

Photo by Andy Beales on Unsplash

tags: release performance fingerprinting

The Music Library Management blog

Dan Gravell

I'm Dan, the founder and programmer of bliss. I write bliss to solve my own problems with my digital music collection.