Ayende @ Rahien

Hi!
My name is Ayende Rahien
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:

ayende@ayende.com

+972 52-548-6969

@

Posts: 5,947 | Comments: 44,540

filter by tags archive

Reviewing LevelDB, Part I: What is this all about?


LevelDB is…

a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.

That is the project’s own definition. Basically, it is a way for users to store data in an efficient manner. It isn’t a SQL database. It isn’t even a real database in any sense of the word. What it is is a building block for building databases. It handles writing and reading to disk, and it supports atomicity. But anything else is on you (from transaction management to more complex items).

As such, it appears perfect for the kind of things that we need to do. I decided that I wanted to get to know the codebase, especially since at this time, I can’t even get it to compile Sad smile. The fact that this is a C++ codebase, written by people who eat & breath C++ for a living is another reason why. I expect that this would be a good codebase, so I might as well sharpen my C++-foo at the same time that I grok what this is doing.

The first thing to do is to look at the interface that the database provides us with:

image

That is a very small surface area, and as you can imagine, this is something that I highly approve of. It make it much easier to understand and reason about. And there is some pretty complex behavior behind this, which I’ll be exploring soon.


Comments

nick

Violates ISP though haha

Rasmus Schultz

If this works out for you, is there a chance we would have a Linux version of RavenDB?

Ayende Rahien

Rasmus, That is a goal, yes.

Judah Gabriel Himango

Looking forward to this series of posts. My own C++ skills are outdated, so it might be helpful to see you analyze the LevelDb codebase.

Looking at Rob Ashton's posts on LevelDB, it sounds like LevelDB may work as a base for Raven.

If we get a working Linux version of RavenDB, I claim dibs on building the Linux-friendly HTML version of the Studio. ;-)

Edward

@judah

Buy a mac/pc ? :-)

At our company we converted our main app from html to silverlight. Its faster, nicer, more predictable, good updatable, access to system resources, everything works as expected, sexyer, C#, linq, RX, more work pleasere and with iphone app behaviours and perf We will never go back to html with the latest fashions js framework from hell (pardon my french).

Stephen Hardie

Does your meaning of "grok" originate from the book Stranger in a Strange Land?

Judah Gabriel Himango

Edward,

I'm a former leader in the Silverlight community in the US. I wrote articles about Silverlight development, stumped for Silverlight at user groups, and convinced developers we should stay away from native web development.

I'm no longer of that opinion.

As the author of the open source version of Silverlight wrote,

"I felt that Silverlight had a bright future, and that it could turn to fill an important void, not only for web development, but for desktop development in general. And this was largely one of my motivators. I am very sad that Microsoft strategy cut the air supply to Silverlight."

(http://lists.ximian.com/pipermail/moonlight-list/2011-December/001392.html)

Indeed, Silverlight is on life support. Raven Studio is fine for now; Silverlight will work (on Windows) for years to come. But if we're serious about Raven adoption on non-Windows platforms, we will eventually need an alternative, such as a native web version.

Comment preview

Comments have been closed on this topic.

FUTURE POSTS

No future posts left, oh my!

RECENT SERIES

  1. RavenDB Sharding (2):
    21 May 2015 - Adding a new shard to an existing cluster, the easy way
  2. The RavenDB Comic Strip (2):
    20 May 2015 - Part II – a team in trouble!
  3. Challenge (45):
    28 Apr 2015 - What is the meaning of this change?
  4. Interview question (2):
    30 Mar 2015 - fix the index
  5. Excerpts from the RavenDB Performance team report (20):
    20 Feb 2015 - Optimizing Compare – The circle of life (a post-mortem)
View all series

RECENT COMMENTS

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats