Jolt Awards: The Best Books, October 01, 2013 Five notable books every serious programmer should read.
Finalist: NoSQL Distilled
By Pramod Saldage and Martin Fowler
The term NoSQL covers a wide range of different technologies. For some, it's an indirect reference to document-oriented databases and has the political overtone of "anything but relational." For others, it's a murky world that encompasses key-value stores, graph databases, map-reduce technologies, and much more. That so many unrelated technologies could be covered by a single term that highlights a comparatively minor trait they share explains why a guide such as this handbook is so badly needed.
As the title implies, the authors boil down the technologies to what they have in common: a non-relational design and a tendency of scaling horizontally, rather than vertically. From that starting point, the technologies branch out quickly and different sections of the book follow each major branch (key-value databases, document databases, column-family stores, and graph databases). Each of these branches is presented in the context of how it implements key qualities consistency, scaling, transactions, query capabilities, etc. as well as explaining the most suitable use cases. In each chapter, specific products are discussed by name, with comments on how they differ from each other in design and implementation. There is nothing academic in the treatment. It is all supremely practical and serves truly as a guide to the uninitiated. Even for initiates, the book is an excellent refresher on the details of the products.
Separate from the product branches are thoughtful discussions of central aspects of NoSQL architectures and topologies. For example, the chapter on distribution models discusses single server, sharding, master-slave replication, peer-to-peer replication, and the combination of sharding and replication. This provides a terrific overview in a readable format that explains quickly and ably what you need to know to understand the issues and begin identifying the solutions.
While perhaps not a true developer book, in that it contains almost no code, its brevity and clarity make NoSQL Distilled an easy choice for developers and managers who are seeking to move beyond the limitations of the purely relational options.