Server Updates

Improved artist / album / track search facility. The “artist filter” no longer shows inapplicable artists. Obviously suspect data is warned about / corrected when adding albums.

CHANGE LOG for mb_server


Search Facility

The search facility has been rewritten. Previously, searching was quite slow, especially for tracks, and especially if your query contained several (say, five or more) words. For example, if you did a track search for “The house of the rising sun”, that could easily have taken ten minutes to run – but your web browser would time out long before that, of course.

Accents, apostrophes and other punctuation are now handled much better. You can search for numbers too.

You can now deliberately search for a word more than once within a query – for example, an artist search for “The The” will only match artists containing at least two “The”s.

The ranking of search results is now much better, and is based on a
“similarity” algorithm. Try a track search for “love to hate you” and you’ll see what I mean.

If your search takes longer than 30 seconds, your query will be aborted and the web server will return a “Your search has been cancelled” message. Hence you get told what’s going on, and the server doesn’t get bogged down running a query which you’re not going to see the results of anyway.

Finally, support for an “any of these words” search has been removed, at least for now. You can now only search for “all of these words” (and because that’s the only option, that field has been removed from the search form).

Moderation Enhancements

The “artist filter” pages now won’t show certain artists when it’s appropriate – for example, if you’re merging artist A into something, then artist A won’t be shown as a possible “target” to merge into.

The “change track” page (changetrack.html) now uses the right default values in the form, and includes a “use guesses” as well as a “use current” button.

When entering album data (via /cdi/enter.html etc), some extra checks are made:

  • If all (or most) of the track names seem to start with the track number, then you are warned about this, and given the option to automatically fix the problem, go back and manually fix it, or continue regardless.
  • If you’re entering a single-artist album, but it looks (according to the the track names) like you’re entering a multiple-artists album – or vice versa – then you are warned about the possible discrepancy, and given the choice between going back and fixing it, or continuing regardless.

More “moderation suggestion” reports: possibly duplicate artists, albums which need converting to multiple artists, and tracks named with their own sequence (track) numbers. There’s also a pair of reports of TRMs with many tracks, and tracks with many TRMs.

Other Miscellaneous Changes

Many pages now perform much better validation of their inputs, e.g. data provided on the “query string”. For example, numbers must be numeric, etc. For “artist id” inputs, we reject the id of the “deleted artist” on most occasions.

Many web pages have had minor usability enhancements, e.g. moving the input focus using Javascript (preferences permitting). Some of the visual layout has been reworked, the aim being a clearer, simpler appearance.

For the first time, many of the pages are now (finally!) valid HTML 4.0! There have been many minor HTML and CSS improvements.

There is now an artistinfo.html page (like showtrack.html and
albumdetail.html) which shows the database internal ID and the MusicBrainz UUID/GID values.

The various download links now redirect you via a “pick a mirror” page. Your preferred mirror is remembered via a cookie, if possible.

The “bio” page (bio.html) has been expanded to include many more people.

Some links which used to only work with Javascript enabled now also work without it.


We’ve moved to Postgres 7.3! (specifically, 7.3.2 at the moment). This affects a few things, such as the “create” SQL scripts.

Support has been added for having the database on a remote host. Did we mention that we’ve got a new, dedicated database box now? ๐Ÿ™‚

Database Export / Import

The export / import facility has been re-written. Well, the export bit has anyway. The principal change, and a really important one, is that the nightly database dumps that appear on our download sites are now a consistent point-in-time snapshot. (Previously the dumps it used to generate could be, and sometimes were, inconsistent, and therefore could not be re-imported).

As part of that rewrite, a couple of other changes came about too:

  • The export format is now Postgres “copy” format, which is basically a tab-separated text format. Since this is much easier to manipulate than the old Postgres “dump” format we had before, it’s now much easier to munge the exported data into non-Postgres formats. Hence, because the exported data is now much more database-neutral, there is no longer any explicit support for dumping in MySQL or ExcelCSV format.
  • The handling of the “moderator_sanitised” pseudo-table is now much cleaner; it’s all done via a simple temporary table, with no need for the “fill_moderator” function we used to have.

Also, the “SetSequences” script forgot to update the “wordlist” sequence – this is now fixed.

When loading data using “ –createdb –import”, foreign keys are now added /after/ the data has been loaded. This should make for a faster import, and it certainly makes it a whole load easier to diagnose consistency problems if you’re loading from an inconsistent dump for some reason.

Finally, the script to rebuild the search engine metadata ( is now *much* faster – something of the order of 40 times faster according to my tests. It does have the very minor drawback that you can now only use it on an “offline” system, because the metadata will be unusable during the rebuild.

Other Miscellaneous Changes

Deferred Updates

Two types of update are now done using the “DeferredUpdate” module – which simply means that some data describing the update to be done later is appended to a text log file, and something else will come along later and actually do the update. The updates in question are TRM lookup count and artist alias usage count.

Clearly this means that the main request now goes significantly faster. There are two caveats to this however.

  • the process to subsequently apply the updates in the log file isn’t yet written
  • the other day we managed to lose most of the log file (we’re not sure why this happened exactly) – so that’s about two weeks worth of TRM lookup counts / artist alias usage counts lost. Well, it’s only usage data.

Other changes

$artist->LoadByName has had a simple but effective speed-up added. The old behaviour was just to do a case-insensitive search straight away, but that doesn’t use an index; so now we try a case-sensitive search on some obvious variations (e.g. all lower case, all upper case, Title Case etc) – which does use the index – before resorting to a full table scan. used to be /really/ verbose. It’s now only that verbose if standard input is a terminal.

Moves have been made towards using separate HTTP vhosts for web pages / RDF requests.

Removed pointless and slow code when inserting “add album” moderations.

Added a little mod_perl magic to write the moderator name into the Apache access logs, and the RDF query name too (for

Fixed support for running an HTTP proxy in front of the mod_perl server.


All references to lyrics/synctext support has been removed.

Dave Evans

New Database Server

On Saturday, 29th March 2003 the new database server (hostname ‘bender’)
was put into production. This server was purchased with your donations
– thanks! It’s great. We’re very happy about this ๐Ÿ™‚

At about 1155hrs UTC, the system was put into “read-only” mode (which
means that logins were disabled, and logged-in users were logged out).
Then the database was exported to text files, transferred to bender,
then imported into a fresh database. At about 1220hrs UTC, the web
server was configured to start using the newly-created database, and
the old database was shut down.

We’ve tried to make sure that no data could have been written to the
system during the upgrade process – such data would be lost when the
final switchover occurred. Please let us know if you think we missed

Once again, thanks for your donations, which made this possible! We hope
to be able to bring you a faster, more reliable, easier-to-use service
as a result.

Server Updates

Login names and passwords are case-sensitive. The #musicbrainz IRC channel is logged and archived. HTML and CSS improvements.

Changes since the last release (10 Feb 2003):


  • a lot of people were experiencing problems uploading anything more
    than a small amount of TRM data at a time, using the Tagger. This was
    due to some server code which was too slow, the client was “timing out” waiting for it. The offending code has now been sped up a lot, so you shouldn’t see that error any more.
  • when showing TRM collisions in the tagger, sort the albums by artist and show the artist name
  • when showing found albums/tracks in the tagger, show the album
    attributes (e.g. “Official Album”, “Official Various Artists
    Compilation”). Also show the track length.
  • when a discid has just been added (via the tagger), show the album
    you’ve just added the discid to.
  • fixed a bug whereby sometimes “various artists” albums were not
    returned to the tagger


  • login names, as well as passwords, are now case-sensitive
  • ensured that the “related artist” data is maintained for artist
    removals and artist merges
  • when merging artists or moving an album, the “source” artist is never shown as a possible match. Also a full search is done for artists (e.g. if you enter “Bach”, you’ll get every artist matching “Bach”, not just J.S.Bach)

Other web updates

  • the MusicBrainz IRC channel is now logged and archived! You can see the archives here: . There’s a link to that page on the “contact us” page.
  • fixed a bug whereby sometimes an album’s displayed discid/TRM/track counts were incorrect
  • various textual pages updated, especially the front page, the Finances page, and the download page
  • My and Rob’s TODO lists are now much more up-to-date (and are much
    more likely to be /kept/ up-to-date, since it’s now easier for us to do). However, these pages aren’t really there on the staging server, but trust me, they’ll be there when it goes live.
  • general re-working of some HTML to be more “modern”, making more use of CSS

Other (non-web) server updates

  • various fixes and improvements relating to importing and exporting data.

Dave Evans

Server Updates

The main server has been updated with the latest and greatest features and fixes. We now have TRM collision support, TRM stats, improved UNICODE support, an improved RDF web service interface and tons of minor bug fixes and enhancements.

The main server has been updated with the latest and greatest features and fixes. We now have TRM collision support, TRM stats, improved UNICODE support, an improved RDF web service interface and tons of minor bug fixes and enhancements.