Last Update Feature

From MusicBrainz Wiki
Revision as of 08:52, 15 March 2009 by WikiSysop (talk | contribs) (1 revision(s))
Jump to navigationJump to search

Last Update database extension

This feature keeps track of when data in the database last changed. Changed, in this case could be any update to the database. It could be an edit that changes something important like the name or just the count of how many edits are open for this artist. This feature is designed to allow us to add the following features to MusicBrainz:

  • "Artist was last updated X days ago" display in the server.
  • RSS feeds for artists, albums and labels. You could subscribe to feeds of your artists and see changes being made to their data in MB.
  • HTTP caching, which would allow us to let Google index the site without costing us a lot of bandwidth.

Not all of these features will be implemented immediately. For the next release I foresee doing the first two items above.

Originally we had planned to have the update rules change other related data items. For instance, updating a release would also cause the artist and the label associated with the release to be updated. However, our database server buckled under the load to constantly update all of this information so we were forced to abandon this approach and not have any cascading updates happen.

The feature as it stands now only updates one data entity at a time. So, if a release is edited the artist nor its associated labels will be updated.

Database changes

For this feature we added new tables: artist_meta, label_meta. These tables only contain an id column (with a foreign key to the artist/label tables) and a lastupdate timestamp. For releases (albums in DB speak) we added the lastupdate column to the albummeta table. (I can't wait to get the naming in the DB normalized).

Update rules

If an artist is changed, artist is updated.

If a release is changed, release is updated.

If a label is changed, label is updated.

If release event is changed, then update the related releases.

If discid is changed, then update the related releases.

Non implemented update rules

If an alias is changed, then related artist is not updated.

If a track is changed, added or removed from a release, then related releases are not updated.

If an AdvancedRelationship is changed, none of the end-points is updated.

If a PUID is changed, no entity (track, release, ...) is updated.