ReviewGetting started with LevelDB
I was asked to review the book (and received a free electronic copy).
As someone that is very into storage engines, I was quite excited about this. After going over the leveldb codebase, I would finally get to read a real book about how it works.
I was disappointed, badly.
This book isn’t really about leveldb. It contains pretty much no background, explanation, history or anything much at all about how leveldb works. Instead, it is pretty much a guide of how to use LevelDB to write iOS application. There is a lot of chapters dealing with Objective-C, NSString and variants, how to do binding, how to handle drag and drop.
However, things that I would expect. Such as explanations of how it works, what does it do, alternative use cases, etc are very rare, if there at all. Only chapter 10 is really worth reading, and even so, I got the feeling that it only made sense to me because I already knew quite a lot leveldb already. I can’t imagine actually starting from scratch and actually being able to understand leveldb from this book.
If you are working on iOS apps / OS X, I guess that this might be a good choice, but only if you want to know about actually implementing leveldb. You’ll need to do your actual leveldb learning elsewhere.
The book does contain some interesting tidbits. Chapter 10 is talking about tuning and key policies, and it did have some interesting things to talk about, but it also contain wrong information* (and if I could spot it, with my relatively little experience with leveldb, I’m pretty sure that there are other things there too that are wrong).
* The book said that is it better to write keys in order, to reduce I/O. But leveldb writes to a skip list in memory, then flush that entire thing in sorted fashion to disk. Your writes have to be bigger than the buffer size of that to actually matter, and that still won’t help you much.
In short, feel free to skip this book, unless you are very focused on writing leveldb apps on iOS. In which case it might be a worth it, but I don’t think so. You are better off reading the docs or any of the tutorials.
More posts in "Review" series:
- (03 Dec 2013) Getting started with LevelDB
- (20 Jul 2011) Microsoft N Layer App Sample, part X–Architecture for the Space Age
- (15 Jul 2011) Microsoft N Layer App Sample, part IX–Not Invented Here is FUN
- (13 Jul 2011) Microsoft N Layer App Sample, part VIII–CRUD is so 90s
- (11 Jul 2011) Microsoft N Layer App Sample, part VII–Data Access Layer is GOOD for you
- (08 Jul 2011) Microsoft N Layer App Sample, part VI–Single responsibility principle is for idiots and morons
- (06 Jul 2011) Microsoft N Layer App Sample, Part V–Cross Cutting is a fine line
- (04 Jul 2011) Microsoft N Layer App Sample, Part IV-IoC FTW
- (01 Jul 2011) Microsoft N Layer App Sample, Part III–Abstraction is as abstraction does
- (30 Jun 2011) Microsoft N Layer App Sample, Part II–getting lost in the architecture
- (29 Jun 2011) Microsoft N Layer App Sample, Part I
- (12 Oct 2009) GoGrid vs.Amazon EC2
- (12 May 2009) C# in Depth
- (02 Sep 2008) Hibernate Search in Action
- (04 Jun 2008) Umbrella project
- (04 Jun 2008) Mass Transit Samples
- (23 Aug 2005) iRiver H340