beaTunes News

Thursday, December 22, 2011

beaTunes 3.5 Early Access 3: Faster Startup, faster Data Fetching

beaTunes2 logoThis week's release is focusing on a number of issues with the internal database. As some of you may know, beaTunes uses a little embedded database called H2. It's open source, written in Java, and has served us well so far. In the previous 3.5EA versions I had switched the database engine to MVCC (Multi-Version Concurrency Control). As it turns out, this is not the best setting for the kind of workload beaTunes generates, as often times the entire database gets locked. Experiments have shown, that the MULTI_THREADED setting leads to far better results, as it allows to execute multiple SQL statements in parallel. This is particularly useful when executing a long running statement in the background, while still keeping the UI responsive. EA3 is now the first release with MULTI_THREADED enabled. As a result, I hope you see a more responsive, more fun application. For those of you with small libraries (less than 10,000 songs), the difference may not be noticeable at all.

While investigating optimal database settings, I also spent some quality time with certain key SQL statements in the application and was able to tune some of them, essentially removing a bunch of SQL joins. As a result, beaTunes should start up much faster, especially for those people with ten thousands of songs. Additionally, switching between different playlists should be a whole lot faster.

On the algorithm front not a whole lot has changed. Memory consumption for color calculation should be a little lower though, as I have rewritten some classes to have fewer or smaller members.

As always, there is some more info in the NOTES.txt file.

Alright, here's the obligatory warning: Before downloading and installing this, please make sure you understand what Early Access means:

  • Absolutely no warranty for whatever
  • Features may or may not work, appear, and disappear
  • It may not be possible to migrate data to future or previous versions (even though I make a reasonable effort)
  • This version will cease to function three weeks after its release
  • You cannot buy this version

And here are the download links:


For those still using beaTunes 2: beaTunes 3.x changes beaTunes' internal database layout quite a bit, which takes a while. Do not interrupt this process, even if it takes very long! beaTunes 2.x will not be able to use the database anymore, after you ran beaTunes 3.x. If you intend to try 3.x and then go back to 2.x, make sure you back up the database before you try 3.x (depending on your OS it's in ~/Library/Application Support/beaTunes/Database, C:\Users\<username>\AppData\Local\tagtraum industries\beaTunes\database or C:\Documents and Settings\<username>\Local Settings\Application Data\tagtraum industries\beaTunes\database)! You also might want to check out this article about exporting beaTunes data.


Please provide feedback! Let me know what does not work. Especially audio decoding problems, OutOfMemoryErrors and UI hangs and hiccups.


PS: The update from 3.0 to 3.5 will be free.



Post a Comment

<< Home