A while ago Demis Bellot did a nice write-up on RavenDB performance compared to Redis. The tl;dr is that Redis was 11.75x faster than RavenDB, when doing a life-for-like comparison of bulk inserts.
However a few months ago a new API was added to RavenDB that vastly increases the Bulk Insert speed (there is also a nice post showing the implementation details). Using the new API, I updated the benchmark code, with the following snippet:
using (var bulkInsert = store.BulkInsert()) { foreach (var name in names) { batch++; bulkInsert.Store(new User { Id = "users/" + (++id), Email = name + "@" + name + ".name", Name = name }); } }
Redis is now (only) 2.37x faster than RavenDB
And it seems like this is one of the reasons Ayende/Oren implemented this feature:
Now it is very cool that that RavenDB bulk imports are an order of magnitude faster. And being within range of Redis (which does everything really fast) is a bonus. But actually I think this is all a bit misleading.
Lies, Damned Lies, and Statistics
If you are evaluating RavenDB based purely on the speed at which it inserts new documents, then you’re probably doing it wrong. You need to also look at the read performance, query performance, how long indexes take to be “non-stale”, what features it has, etc. My point is, purely looking at the write performance misses out on other things, that are actually more important.



