I've been looking into CouchDB
's attachments functionality. Basically, CouchDB allows you to store binary file data inside database records. Similar to MongoDB's GridFS. The project I'm wanting to build revolves heavily around file uploads, which I planned on storing in CouchDB. So this lead me to researching about how CouchDB clusters data, so that as my database grows, due to file attachments, I can cluster it out across multiple servers. I was disappointed to find that CouchDB does not have the ability to do this, out of the box. The CouchDB guide says to use something called couchdb-lounge
, but that project is more than 2 years untouched, on Github. I don't think I'd feel comfortable building on that.
I found BigCouch
, which appears to be a modified CouchDB with the exact clustering functionality that I need included, except that it looks like it lags behind the current stable CouchDB release. I did read, in a press release from a year ago, that they're working on merging BigCouch into the official CouchDB, but I don't know what the timeline for that looks like.
As a third option, it looks like Couchbase Server 2 is also based on CouchDB but has the clustering built on, amongst other features. I'm debating that as a viable option, too. It doesn't support the file attachments, though.
The fact that BigCouch will land in CouchDB, eventually, gives me some reassurance to go ahead and use BigCouch for now.
Should I use BigCouch? Why wouldn't everybody use BigCouch, if it's just CouchDB + clustering? There must be some down-side, right?