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,953 | Comments: 44,410

filter by tags archive

RavenDB & Managed Storage


One of the things that I really wanted with to do with RavenDB is to create something that is really easy to use for .NET developers. I think that I have managed to do that. But the one big challenge that we still had was running everything using managed storage.

As you can imagine, building transactional, crash-safe, data stores isn’t particularly easy, but we actually did that, and now RavenDB can run in managed core. That has other implications, like being able to run completely in memory. Which means that you can test your RavenDB code simply by using:

var store = new DocumentStore { RunInMemory = true; }

And just use this as you normally would. For that matter, you can ask the RavenDB server to run in memory as well (extremely useful for demos):

Raven.Server.exe /ram

As a side note, I am going to be posting a lot about the recent storm of features that were just added to RavenDB.


Comments

Marcus

Have you tested this on Mono now?

Adam

Love this feature, I've been looking forward to this ever since you first mentioned it. Which version of Raven is this in, unstable/stable/commercial?

cowgaR

hopefully one of the "exciting" features will be proper sharding...

from what I've read in docs it's not exactly what I've seen elsewhere (say mongoDB), might be because of Raven's support for transaction which mongoDB lacks...(upon many other things)

as a developer __I don't really want to be thinking in advance about whether my architecture is horizontaly scalable, spreading different docs to different databases and so on... (as suggested by docs). Also it's hard to predict how each document type size will grow in future...

I just want to deploy my application using say one db server and once successful, spread my database __evenly to 3 servers, or 6 or 10...without shutting the app down or changing any application code.

Also the database size "balancing" will be done by DB server itself.

of course there are hundreds of cases where RavenDB sharding might be sufficient, but for me the "invisible problem free sharding" was the selling point of MongoDB for startup companies...

cowgaR

by "proper" sharding I've meant implemented on the server and not on the client (as I believe it is right now) - which isn't ideal (reminds me of RDBMS system implementation).

I __love RavenDB and it definitely have many nice features, just forgetting about horizontal scalability right now (when I'm starting my current project) would be big plus...

Andrew

Yeah it would be good if the persistence layer didn't leak so much to the developer/app about sharding; it would be nice if it would be automated and self balancing.

e-tobi

@Marcus: I have tested this in Mono. There were some Bugs in Mono that needed to be fixed first (and Marek Safar fixed all of them within a day after I reported them). There are still some Mono-Bugs left, which I currently work around by some minor changes to the Raven code, but it basically works! I've built a simple CRUD-App that ran just fine on Debian/Squeeze with the current Mono HEAD.

While beeing at the .Net Open Space in Leipzig this weekend, I hopefully will find some more time to work on the remaining Mono issues next week (e.g. getting all the unit test pass on Mono).

Ayende Rahien

cowgaR,

RavenDB supports sharding OOTB.

Re-balancing shards on the server introduces a high level of complexity, so I don't think we will do that just yet.

Ayende Rahien

Andrew,

What leakage?

You create a ShardedDocumentStore and then you proceed to work naturally.

fravelgue

Great news!! Do you plan include this manage store in Rhino.Queue for Rhino-ESB?

Ayende Rahien

Fravelgue,

I am going to do a whole new queuing system :-)

dob
dob

can't wait to see your queuing system. Will it work in Silverlight? I hope so. It would be great to see Alexandria in SL

Jakub Borys

Great news. Would upgrade path be just a drop of new dll's?

Dan Plaskon

Nice! can this also be specified somehow using the connection string property? eg. Url = <memory or something of the short?

Ayende Rahien

Dob,

Yes, it will run in SL.

Ayende Rahien

Jakub,

No, it isn't.

The file format is quite different.

Ayende Rahien

Dan,

As a matter of fact, yes: memory=true

Comment preview

Comments have been closed on this topic.

FUTURE POSTS

No future posts left, oh my!

RECENT SERIES

  1. The RavenDB Comic Strip (3):
    28 May 2015 - Part III – High availability & sleeping soundly
  2. Special Offer (2):
    27 May 2015 - 29% discount for all our products
  3. RavenDB Sharding (3):
    22 May 2015 - Adding a new shard to an existing cluster, splitting the shard
  4. Challenge (45):
    28 Apr 2015 - What is the meaning of this change?
  5. Interview question (2):
    30 Mar 2015 - fix the index
View all series

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats