“If I knew then what I know now” is what comes to my mind after reading this chapter. CouchDB was the first NoSQL DB I tried, and it made very little sense at all so I gave up using it. However, I wish I had read this chapter when I first started so things would have made more sense.
Impressions of the Book
This chapter was a tough read because the flow of the chapter did not go well with my brain. That said this was the last chapter they finished writing so it will probably be edited. I am not sure the data scenarios worked well either, but that is more of a problem with me than the book.
What I learned
Things are starting to get repetitive on “what I learned” since it seems all NoSQL databases have some of the same goals in mind. However, just like the other databases there are things I took away which I like and/or stood out to me on the simplicity.
Something which always has bothered me about Databases is the locking while data is being written. While I have never had any problems with this, ever, the idea of it has bugged me. CouchDB does not do any locking it just writes concurrently, but sets a revision field. Each request needs this revision field to make sure something has not been overwritten since you last pulled the information. The best part is the revision system is easy to understand and work with.
I was very happy to see you can do views in CouchDB, my original problem was how to get data out in a good organized fashion for use. I always had some hit or miss issues when getting data, so it is great to have views available.
Size Doesn’t Matter
One of the best features I liked about CouchDB is it can scale up and down fairly well. That means you can even run it efficiently on an android device if you needed to. I have not heard of any others being able to do something like that so it is an interesting use case.
I now have more understanding of CouchDB than I used too, but I am not sure when I would use it over something like MongoDB for web development, which is what I do. Couch seems very terse and to the point, which I guess is a benefit. This one I am going to have to leave up to other people to help me figure out if I need it or not.
Next week is the Neo4J chapter. This one shall be very interesting to read since it is a graph based NoSQL database. I am very interested to find out how it works.