Blog Archives

Neo4j Essentials by Sumit Gupta, Packt Publishing Book Review

I was very happy to see a new book released on the Neo4j subject, which was shortly after I read Learning Neo4j which I reviewed here. I just feel it is a very good timing for the release and that these books need to be read in this sequence, first is because Learning Neo4j is very inspirational in addition to teaching Neo4j basics, and also showing what implementations this database can have in real life.

I must say right away that Neo4j Essentials goes beyond just the essentials, and it will become immediately apparent that Sumit has an in depth knowledge of both Neo4j and enterprise architecture. So you will have a good company.

In terms of setting up your environment, it is uncomplicated, as a bonus, Neo4j comes as a free version which is all you want to learn it, and then build a prototype. Be posted Neo4j will require Java (but not its SDK) because Neo4j itself is built in Java. Oracle Java 7 or newer specifically. As a side note, Neo4j can be even embedded into your standalone application.

To be efficient with the book and technology and make the most out of the book I suggest to familiarize yourself with REST and get an IDE like Eclipse or IntelliJ to run Java code samples from the book. I found them very valuable.

So back to the book, while not exactly structured the way I expected it to be laid out (e.g. troubleshooting and maintenance related items appear early in the book) it actually allows you to navigate efficiently and the content is chained logically.

There are plenty of examples in the book covering various aspects of data processing. While most examples are not very exiting I suspect they serve a good starting point in one’s journey toward efficient processing and representation of related data. I must say the author made special emphasis on covering the newer features of the last data base release (Neo4j 2.0).

The most interesting item discussed in the book to my taste was Spring, it is just often not covered in even books dedicated to Java. Apparently Spring supports Neo4j, strongly. What it means, you can build enterprise grade, data rich web applications. Another awesome topic is clustering.

This book dedicates a lot of details with attention to deployment, maintenance, writing code for performance, aspect oriented programming and more, but just enough at the same time to build a reliable implementation of a modern enterprise grade database centric application.

I am sure this book will be of much help to many of these who embark on a wonderful journey with Neo4j!

Cassandra Design Patterns by Sanjay Sharma, Packt Publishings Book Review

Cassandra Design Patterns

Cassandra Design Patterns is a relatively short overview of both patterns and anipatterns for an IT professional entering the NoSQL/NewSQL world in retrospect to possible Cassanra database implementations in particular.

The book covers Cassandra up to the most recent version of 2.0 where a few new features were introduced.

My experience with Cassandra was in versions prior to 2.0. And I needed to learn the hard way, now thanks to Sanjay and Packt there is a book to help decide where Cassandra would be a good fit, or not.

The book is easy to read, although, it exhibits very few lines of code. It may be seen as a disadvantage, but showing coding examples against Cassandra would require a separate setup.

My overall feel about the book however as if it remains somewhat incomplete, a tad hastily written with some proof-reading pending. Also it can be improved by bringing up some real-life, concrete usage examples. For example, there is no information on how to use the client code properly, e.g. why an RPC timeout is possible (query return result limits) and therefore paging on the client side is necessary. There was no hint on maximum recommended data node size (that stands at around 300 GB per node). As an aside, Cassandra requires a shift in IT operations. Suddenly a shop would need to deal with a cluster. Typically of several nodes. And it would be a totally new beast to manage, with its own challenges.

Likewise, there is no good explanation on the major differences between the Apache vs DataStax Cassandra distributions, Host OS choices and overall best setup practices.

On the positive side the book does cover major Cassandra database lifecycle events as Antientrophy, Snitches, Compaction, etc.

In my view, this book is targeting team leaders new to the NoSQL, BigData notion running fast growing in popularity webscale apps that require a new kind of data persistence layer and ease of development against, or managers looking into replacing their underperforming OLTP databases. This book would help narrowing down a list of candidate NoSQL/Key-Value store databases while you are is in pre-POC mode.

My verdict is a 3 out of 5 stars.