MusicBrainz Next Generation Schema Release Candidate 2 will be released on March 21

We’ve finally whittled down our open bugs and various user interface issues that we’re now confident to say that NGS RC2 will be released on March 21st.

We’re finishing on working on the current set of bugs for RC2 right now. Any new bugs should be added under the new NGS – Release Version in Jira.

Shortly after March 21st we will begin testing NGS on our new server hardware that we will be buying as a result of our fundraiser. This will give us some real live testing opportunities compared to testing on our puny test server.

New NGS Virtual Machine available

The promised Virtual Machine for MusicBrainz Next Generation Schema Release Candidate 1+ is now available for download. This virtual machine is setup as a slave and can pull replication data from the test server by running the admin/replication/LoadReplicationChanges from the musicbrainz-server codebase about 10 minutes after every hour.

See our wiki page for details on how to use this VM

Fundraiser for NGS Hardware

Rolling out NGS (Next Generation Schema) onto the main servers is going to be hard if we have to do it with our current hardware. If we can raise $15,000 to purchase new servers we will make this process much easier and with much less down time. Also, our current hardware is starting to get old and more failure prone. By purchasing newer hardware we can serve more users using less power, which will make MusicBrainz be responsible for less pollution!

Please make a donation today to help MusicBrainz raise money to cover the costs for a much needed hardware upgrade:

Our Next Generation Schema, improves MusicBrainz on many fronts. Its a complete re-write of our 11 year old codebase using modern tools (Catalyst, Moose, Template Toolkit) and a drastic improvement of our schema. The new schema fixes many of the problems of the old schema and introduces many new concepts that allow us to model music data better.

For instance, instead of having conflated artist names like “Queen & David Bowie” we will now have Artist Credits, which will link to the artists “Queen” and “David Bowie” individually. Releases will now have mediums and tracklists which will allow us to re-use tracklists in different releases, which makes release more accurate and removes duplication from the database. Tracks have been changed to recordings and if the same recording is used in two different releases the same recording (with the same MBID) will be used in both releases. NGS also introduces new concepts like musical Works, that can represent Beethoven’s 5th Symphony as an abstract Work, which then has been recorded into recordings and releases after his death. The goal is to remove artists like Beethoven and Bach from the list of releases and recordings since they never actually recorded anything while they were alive.

The overall goal is to allow MusicBrainz to grow into a complete music encyclopedia, rather than a CD lookup service that it started out as. This new codebase and schema allows us to grow and add many more features that we’ve not been able to add to the old code base. If you’d like a preview, please take a look at our test server.

All donations are tax deductible since MetaBrainz is a 501(c)3 non-profit! Thank you for your support!

Virtual Machine for NGS RC1 available for download

I’ve just finished uploading the Virtual Machine for MusicBrainz Next Generation Schema Release Candidate 1. This virtual machine is setup as a slave and can pull replication data from the test server by running the admin/replication/LoadReplicationChanges from the musicbrainz-server codebase about 10 minutes after every hour.

This is an easy way to jump in and take a look at how NGS and replication in NGS will work! (hint: the replication doesn’t change much)

UPDATE: See our wiki page for details on how to use this VM

MusicBrainz NGS RC1 release: A quick update

After a great day of teamwork in preparing for today’s RC1 release it was the database that wouldn’t play along. Our code is ready, but we’re hitting glitches on the database on our new test server.

We’re now waiting for a new clean migration of the data which takes several hours, so we need to postpone the RC1 release for a few hours. 😦

We’re working hard to get RC1 out ASAP — stay tuned!

Next Generation Schema Release Candidate 1: Monday January 17th

As of today we can finally see the light at the end of the tunnel! We feel confident that we can finish all new features (and most improvements as listed in jira) by January 17th. Once we reach RC1 we’re going to freeze the features for NGS and only work to fix bugs in our codebase.

That said, we hope to release NGS onto the main servers sometime in February.

Its been a very long road to NGS, but it is finally tangibly close. I’m getting excited!

Next Generation public schema frozen & new data dump available

Hello and Happy New Year!

Very late last year we finally hit a milestone we’ve been working towards for quite some time: Freezing the public NGS schema!

The public schema refers to the collection of tables that will be replicated in NGS. See below for a complete list of all those tables. However, we may make small changes to some of the tables in NGS that are not replicated. This should not affect anyone, unless you are actively hacking on the MusicBrainz Server code.

Also, we have a new data dump for this frozen schema available for anyone who would like to play with it. This data dump will cleanly import into the current version of the server source code in git.

All the tables that will be replicated for NGS:

annotation, artist, artist_alias, artist_annotation, artist_meta, artist_tag, artist_credit, artist_credit_name, artist_gid_redirect, artist_name, artist_type, cdtoc, clientversion, country, gender, isrc, l_artist_artist, l_artist_label, l_artist_recording, l_artist_release, l_artist_release_group, l_artist_url, l_artist_work, l_label_label, l_label_recording, l_label_release, l_label_release_group, l_label_url, l_label_work, l_recording_recording, l_recording_release, l_recording_release_group, l_recording_url, l_recording_work, l_release_release, l_release_release_group, l_release_url, l_release_work, l_release_group_release_group, l_release_group_url, l_release_group_work, l_url_url, l_url_work, l_work_work, label, label_alias, label_annotation, label_meta, label_gid_redirect, label_name, label_tag, label_type, language, link, link_attribute, link_attribute_type, link_type, link_type_attribute_type, medium, medium_cdtoc, medium_format, puid, recording, recording_annotation, recording_meta, recording_gid_redirect, recording_puid, recording_tag, release, release_annotation, release_gid_redirect, release_meta, release_label, release_packaging, release_status, release_group, release_group_annotation, release_group_gid_redirect, release_group_meta, release_group_tag, release_group_type, release_name, replication_control, script, script_language, tag, tag_relation, track, track_name, tracklist, tracklist_index, url, work, work_annotation, work_gid_redirect, work_meta, work_name, work_tag, work_type

NGS Developers: Schema changes pushed to master

Ollie and I have been working on a bunch of schema changes to make things more consistent and to add more time stamps to the database. We’ve included other data migration patches from Luks and Murdos as well.

All of these changes have been pushed to the master branch on our git repository. If you pull this branch from our repo, you must reload your data with this fresh NGS snapshot!

On monday we will discuss if we can call our core schema frozen yet. Let’s hope so. 😉

Next Generation Schema: Release Candidate 1

We’re working hard to get to the Release Candidate 1 release for NGS. We’ve got lots of code reviews in progress, lots of code being committed and a lot of activity all working towards shipping NGS.

However, as we’re working an exposing new features we’re still getting a number of new bugs submitted that expose other issues that we need to address. This is the problem with porting a very large old codebase — we need to simply slog through it and get it done as soon as we can.

With those caveats, I’ll say that I expect the RC1 release to happen somewhere near the end of November. When we get closer and our bug list is converging, I’ll post an actual date for this release. In the meantime, we’re going to put our heads down and get more work done.

Sorry for being vague about this — but I would much rather not slip anymore releases.