- Recently as you can see on this blog I’ve been writen a lot about NoSQL. On this process I’ve found some really cool stuff that now I want to share with you. Here are the links:
- “The Architecture of Open Source Applications: The NoSQL Ecosystem” - Adam Marcus – My favorite chapter from the online book “The Architecture of Open Source applications”. On this article are exposed the main architectural principles behind some NoSQL database systems. The part about scalability is really great and helped me to understand how those solutions deal with the problem.
- “BigTable: a Distributed Storage System for Structured Data” – Google – This is now a classicle article in which BigTable is presented by ther first time. Excelent read!
- “Dynamo: Amazon’s Higly Available Key-Value Store” – Amazon – As the BigTable article, this now is another classical text in which is shown Dynamo, created by the Amazon development team. The description about how the sharding is done is a high point for me.
- “Redis: Under the Hood” – Paul Smith – Ever wonder how the source code of a database system work? This article is just that, and with it we can understand very clearly how some aspects of ACID are implemented by Redis. Excelent read!
- “A Relational Model of Data for Large Shared Data Banks” – E. F. Codd – How can we talk about NoSQL without knowing at least what is the relational model? This is the article which started it all. A must read.
- “Limitations of Record-Based Information Models” – William Kent – Many people nowadays love to criticize the relational model (and most criticisms are actually really poor). Well: this is an excelent argument against the use of record based data structures (aka tables) in several circumstances written in 1979. This article changed radically how I saw and used tables. Fascinanting.
- “Consistence Models in non-relational databases” – Guy Harrisson – As relational database users we simply forget about how consistency is obtained. This nice article show some models of consistency adopted by non relational systems. It’s a great introduction for the concepts of strong and weak consistency.
- “CODASYL at Wikipédia” – Wikipédia – On my research I always stumble upon CODASYL. On Wikipedia there’s a nice description about it, which, we can say, it’s the grandfather of all “nosql” systems.
The CAP theorem
A lot is being said and written recently about the CAP theorem. If you don’t know what it is, here is a short description: it basically says that, when dealing with data consistency, every distributed system is only capable to achieve two of three properties:
- Consistency: all nodes have access to the same information at the same time.
- Availability: each request to the system will always get the same response.
- Partition tolerance: the system will still work even if part of it’s nodes are not available.
Well, here are some nice texts about it:
“Brewer Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services” – Seth Gilbert e Nancy Lynch – A really nice description about the CAP theorem.
“Brewer’s CAP Theorem: The Cool Aid Amazon and eBay have been drinking” - Julian Browne – Another nice description of the theorem (easier in my opinion).
More cool stuff
“The Little MongoDB book” – Karl Seguin – An excelent introduction to MongoDB.
“The Little Redis Book” – Karl Seguin – From the same author of “The Little MongoDB book”, guess what? Another excelent introduction.