Disclaimer: I was asked to review the Getting Started with OrientDB book and I received a free ebook copy of it.
OrientDB is defined in its website as: an Open Source GraphDB with a mix of features taken from Document Databases and Object Orientation. It’s a new and promising database. But it’s has little documentation and it’s quite chaotic to find what you’re looking for and it’s spread out in multiple places. Maybe I’m used to the amazing PostgreSQL documentation!
Getting Started with OrientDB is written by Claudio Tesoriero and it has been published on August 2013. It’s the only OrientDB book out there. At least it’s the only book listed in OrientDB GitHub and the only one I have found.
My very first surprise is that it has 138 pages, below the average for a computer engineer book. So, as the title says, it’s a getting starter guide, an introduction to OrientDB. Probably this is the main cause why in many times I would have liked more information about some topics.
The book gives a wide, but not in depth, introduction to OrientDB: installation, architecture, administration, querying, performance tuning and advanced features like clustering.
I would have changed the order of the book: first it discusses administration and later on programming, while I would have done the other way around because you should already be familiar with classes, properties and querying data before starting the administration part.
I also find that some information is in the wrong place, like:
- Classes and abstract classes are explained between OrientDB’s data files and security roles, when the best place would have been in programming part.
- The OrientDB console and the OrientDB Studio, the web console, are explained in the same chapter, but there’s other stuff in the middle, instead of being together.
- How to install OrientDB as a daemon/service should be in Advanced Feature and not in the first chapter.
OrientDB is itself confusing when it talks about the editions (Graph and Standard) and the types of databases it has (graph and document), you’ve to read a little before knowing the difference and the book could have helped more on it and also to explain the differences between the graph and the document database in depth.
On the other hand, I like the Programming chapter, where the author explains with good and complete examples the document database and trying with these examples is enough to feel confident with the document database, but it covers the graph database with just 4 pages. In this chapter you also get an introduction how to configure the JDBC, use the Java API and use the RESTful APIs.
It’s also interesting the Performance Tuning and Advanced Feature chapters, where clustering it’s explained. They are interesting chapters, although sometimes I would have enjoyed more detailed information, for example when the author is explaining how OrientDB uses NIO to map data files in memory or the network.socketBufferSize property.
As I said, there are two things that would have made it a much better book:
- The order of the chapters should have been different and some information rearranged
- More information on some points, but 138 pages are not enough for explaining OrientDB in depth.
There’s always the question if it’s worth buying the book. Although these two big complains, I would have bought the book because:
- The book explains a lot of things that are not available in OrientDB’s documentation.
- I would have saved a lot of time instead of looking into the little and bad organized OrientDB’s documentation.