10gen: Growing the MongoDB world
by Dj Walker-Morgan
10gen, the company set up by the creators of the open source NoSQL database MongoDB, has been on a roll recently, creating business partnerships with numerous companies, making it a hot commercial proposition without creating any apparent friction with its open source community. So what has brought MongoDB to the fore?
One factor has been how easy it is to get up and running with the database, a feature that the company wants to actively maintain. 10gen president Max Schireson explained: "I think that it's honestly a combination of the functionality of MongoDB itself, but also the effort that we've invested in packaging for the open source community. I see some open source companies taking the approach of 'oh yeah the code's open source but you'll need a PhD to actually get a working build of it unless you are a subscriber'. While that might help monetisation, that's not a way to build a big community".
Schireson says the company isn't going stand still though: although it's easy to get a single node up and running, over time they want to make it easier to get more complex, sharded, implementations configured and deployed. "As people use more and more functionality, that of necessity brings in more complexity, we're looking for ways to make that easier," he says, pointing to the cluster manager being developed as a native part of MongoDB, which should make it easier to manage and upgrade clusters.
In parallel with that though, Schireson points to education as a really important part of making MongoDB easier. It isn't just about how to get that first node up and running, he says, as there are concepts that developers just aren't used to that they come across when deploying. For example, MongoDB defaults to immediate consistency, which ensures data is consistent at the cost of performance. But where you can withstand potentially delayed updates, a "slave ok" alternative is available.
Knowing when and how to pick which option is not just something for documentation. "We see it takes some time for developers to learn this so we need to invest a lot in educational materials that teach not only the mechanics of how to use MongoDB, but also some of those new concepts," says Schireson highlighting the free MongoDB training courses on education.10gen.com: "MongoDB for Developers" and "MongoDB for DBAs", both courses lasting several weeks with around ten hours a week commitment needed from students.
The mechanics of 10gen's business model are an interesting hybrid of a number of models. MongoDB is licensed under the AGPL which means that users must share their modifications to the source when they use MongoDB in a network accessible service. This is unlike the better known GPL, a licence whose sharing provisions kick in when software is distributed. The AGPL was envisioned for client-server or web services, but for 10gen it appears to work well for the public or private clouds and services of the current internet.
"The way the AGPL will help us and the community in the future is that folks who are doing Mongo as a service offering will need to contribute those [changes] back to the community or support us financially as part of negotiating an agreement," says the 10gen president. The agreement element refers to the fact that 10gen maintains the copyright for MongoDB and that any contributions are under a copyright licence agreement which sees 10gen take joint ownership with the author of the patches.