In some industries, the time taken to get new features to market is absolutely critical. One such is the fiercely competitive world of mobile services, where service providers cannot afford to be seen to be behind the curve.
Tom Coupland, senior engineer at Nokia Entertainment Bristol, explained that speeding up application development was a key reason why his team started looking beyond the Maven, EJB3, Hibernate and MySQL setup that they have been using for the past three years. Another was the complexity of developing in this environment. Hibernate (a library that maps Java objects to relational tables) was a particular thorn in his team's side.
"We wanted to get rid of Hibernate," Coupland told Computing at a MongoDB user conference in London this week. "The Hibernate documentation utterly sucks – and always has done – and the code is awful when you try and get it to do anything. Personally I'd have done anything to get rid of that."
Nokia Entertainment provides content and services for the parent company's mobile users, including contextual or "generative" radio stations, which push music to individuals based on their previous choices.
The firm's push towards personalisation of content provided another impetus to look for new tools, a search which last year led them to open-source NoSQL database MongoDB.
"We didn't really do a serious comparison," admitted Coupland. "We just wanted a nice, simple document store. At first we thought we'd just use a key value store, but then we found we'd need some more functionality so we went one step up, and Mongo fitted our use case."
For proof of concept, some degree of familiarity is important. In order to make the case for the new tool, as well as to get it up and running rapidly, Coupland was keen to find something that his fellow developers, as well as DBAs and other operational staff would be able to get to grips with.
"Something like CouchDB is great for certain use cases, but everything becomes a MapReduce query. There is a big mental change required. For our data, we want to know where it's written to - we don't want complications around that. With Mongo, when you [meet with other team members] you can say 'this is a replica set, these are masters and slaves, just like you're used to with MySQL', and they know what you're talking about. Indexing is similar; querying is a bit different, but there are similarities, you can learn it."
A relatively shallow learning curve was not the only thing in MongoDB's favour.
"They've got a great PR machine, which does help," said Coupland. "You do feel confident when there's a buzz around something and you know there's a lot of people using it, and the documentation is really good."
The openness embodied by Mongo's active user forum also helped, as did the presence of a local Mongo User Group in Bristol.
"Sometimes, you just find something looks good enough so you go for it," said Coupland.
MongoDB is complementing rather than replacing MySQL at Nokia. "We didn't want another golden hammer, we wanted another tool for our toolbox," said Coupland. "We decide which tool to use on a case-by-case basis, and depending on how the data is going to be queried. For example, if there are wide-ranging queries, and if we're confident about the data that's going in we'll use MySQL. But when we've got something that's based around one user, with all queries about that user then Mongo is a more natural fit because it's a document model."
Coupland said that the Nokia Entertainment team also uses Mongo for prototyping and general development.
"Recently we had a project with a tight deadline," he said. "The guys did it all with Mongo. It was very quick to develop. Now they are going back and porting it to MySQL because it's really more of a relational data set."
Not all is sweetness and light, however. Those attributes that flatten Mongo's learning curve are also its limiting factors, a double-edged sword as Coupland describes it. Compared with MySQL, Mongo is easy to set up and play with, in part because it is not locked down and lacks advanced security features.
"A lot of enterprises are saying that security's a problem. To be fair they [10gen, distributor of Mongo] have got away with it for a long time," he said. "But I hope they don't lose [the capacity to get up and running quickly] because it's a real feature. I wonder if they're going to draw down the enterprise line, restrict more features to the [paid for] enterprise version? I'm not sure how that would affect people coming into it."
[Turn to next page]