At Decibel, provider of metadata-driven music discovery APIs, Neo4j has a featured role in a learning project that is the start of a plan to replace the relational database of 5 million tracks from 1.1 million albums by 300,000 artists – and the world of connections around that data – with a NoSQL graph database. With Decibel’s APIs, customers like the Blue Note Records jazz label, in partnership with developer Groovebug, have turned their record collections into a virtual record store, including track listings, individual track participations, recording session venues and dates.
With the APIs that tap into Decibel and fold into their own programs, developers at record labels, MP3 services and other digital music/entertainment or other venues can connect everything from the debut date of the bootleg Thin Lizzy album, Remembering Part 1, to its number of tracks on it to Sade’s 2011 coverage of Still in Love With You, to accommodate music-lovers’ search and discovery experiences. Or they’ll be able to surface that a piece of classical music in German is the same as another piece referenced by its French name, or that a musician that has gone by three different names in his career is one and the same.
“These are interesting things that come up during music searches. People want to search for music on different criteria. They may have an interest in the guitarist who plays on this album and that track and produces something else,” says Decibel founder Evan Stein. “It’s a really tangled web of information. And with physical [music] products going away, we are going to need some sort of way to lead us around.” On the plus side, the move to digital music means that the liner notes that used to live in their own isolated worlds on album and CD covers now can live together on one database and talk to each other, providing fodder for endless musical explorations.
Decibel started with a relational database model because it was the more mature approach at the time it began its business a few years ago. But it’s a model, that as Stein describes it, “that can go on for miles and miles. Relational databases are good for some things, but when you try to twist it around to be a graph database, they get very upset with you,” he says. It took going “all the way around the house,” as he puts it, “to make every object to talk to every other object in that database – a bit of violence is involved because SQL databases don’t work that way.”
As a result, “we were having terrible performance problems because the [business] model is right but the technology is wrong.”
Decibel is starting its infrastructure shift with a smaller graph database effort, and very shallow data, to gain some real best-practice knowledge, before making the big move. But when it does, expected in the fall timeframe, it expects things to go smoothly. “It should be very easy because the data model they [Neo4j] expect is much closer to the data model we have, in that everything can be connected to everything else, which relational databases don’t like,” says Mark Wainwright, software developer at Decibel. “Because of that we don’t have to mess around with our model too much.” His expectations are that query speed will see strong improvements.
Additionally, the move to Neo4j accommodates Decibel’s partnership in Jugglit, a project of the U.K.’s Technology Strategy Board that will supply entertainment data and recommendations spanning film, music, books and articles. “They needed our database to go 20 to 30 times faster,” says Stein. “We tried hard to avoid changing technology, but turns out we had no choice.”