Ayende @ Rahien

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

ayende@ayende.com

+972 52-548-6969

, @ Q c

Posts: 5,971 | Comments: 44,508

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

  1. Paying the rent online - about one day from now

There are posts all the way to Aug 03, 2015

RECENT SERIES

  1. Production postmortem (5):
    29 Jul 2015 - The evil licensing code
  2. Career planning (6):
    24 Jul 2015 - The immortal choices aren't
  3. API Design (7):
    20 Jul 2015 - We’ll let the users sort it out
  4. What is new in RavenDB 3.5 (3):
    15 Jul 2015 - Exploring data in the dark
  5. The RavenDB Comic Strip (3):
    28 May 2015 - Part III – High availability & sleeping soundly
View all series

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats