Yesterday we had a post with a presentation by Sergio Bossa introducing us to Terrastore a document database. Today we have answers to our questions to Sergio.
NOSQLDB: With multiple established document databases already available what inspired you to create Terrastore?
SB: The driving force was the need to have a document store that were both consistent and horizontally scalable. Moreover, I wanted something easy to interact and develop with. Other solutions such as CouchDB or MongoDB are really good products with their own strengths, but didn't meet my need.
NOSQLDB: How does Terrastore differentiate itself from existing document databases such as MongoDB or CouchDB?
SB: The main differences regard horizontal scalability and developer friendliness. Terrastore can be easily scaled out by adding more servers to a single cluster, which is made up of a single active master, zero/one or more passive masters and several active servers; and, in case you'd need more active masters, you can also join more clusters together in what we call an "ensemble", by simply providing a json-based configuration file.
Moreover, Terrastore is a kind of development platform too: you can customize and plug in your own components such as functions for executing custom update logic, predicates for conditionally reading and updating data, partitioning strategies for custom data placement and event listeners for automatic processing ... everything in your JVM language of choice.
NOSQLDB: What's on the roadmap for the next release?
SB: The upcoming release will focus on active event listeners, which will implement Google Percolator style cascade processing: for those unfamiliar with the Google paper, active event listeners, which we can think about as database triggers, will be able to react to changes to the stored data and also raise actions to modify stored data too: so, to make a few examples, you may write and plug an active listener that will react to added documents by updating counters located in a separated document, or you may write a chain of active listeners that given a source document containing an html page will sanitize it, extract links, crawl them, store linked pages and start the processing again for the new pages (does it sound like something familiar? ...).
NOSQLDB: What feature are you the proudest of?
SB: I think ease of use and development in general: really, give Terrastore a try and judge by yourself how easy it is to go from installation to customization.
NOSQLDB: What feature needs improvement?
SB: Performance at the HTTP layer is certainly an area of improvement. Moreover, multi-cluster elasticity is another important area of improvement, and we already have people working on that.
NOSQLDB: Most important thing you have learned while building Terrastore?
SB: Building a distributed system involves several trade-offs, it's not just about being ACID or BASE, CA or AP or whatever: so you have to provide the best set of trade-offs for what's the target of your system.That's the hardest thing I learnt.
NOSQLDB: What is your opinion of the NoSQL movement?
SB: NoSQL has been a kind of earthquake in the database and distribute systems world: bright minds started to confront and collaborate, lots of cool and great products emerged ... that was and still is absolutely beneficial.
Moreover, developers now have new tools to deal with their problems in a more appropriate way.
There was misinformation too: so a few took biased points for the sake of their own business/product, others jumped too fast on the NoSQL side without even knowing why ... but I think this happens everytime we face up any important change.
In the end, consolidation will happen: a few products will definitely reach mainstream, others will reach a niche, others will slowly disappear.
NOSQLDB: What else do you want to tell me about Terrastore?
SB: Again, I invite everyone to give Terrastore a try: you'll be pleasantly surprised how easy it is. Moreover, Terrastore is at its early stages, so this is a great time to reach the community and take active participation.
Thanks for the interview, see you soon on nosqldatabases.com!