Home » RavenDB

Tag Archives: RavenDB

Unsafe operations terminology and operational hazards

One of the features we are working on have the notion of a consensus cluster, as well as the ability to force a new cluster if a majority of the nodes in the cluster are down. The details aren’t important, but the first iteration of the UI went something like this: Initialize new cluster is an unsafe operation, it make ...

Read More »

Production Postmortem: The case of the slow index rebuild

A customer called to complain that the indexing times that they were seeing on an index rebuild were very high, and that caused them issues. The customer was kind enough to actually provide us with a duplicate machine of their system, including duplicate data, which made the whole process so much easier. Unlike most scenarios, where we have to poke ...

Read More »

Recording available – Highly Available & Scalable Solutions with RavenDB

In this session, Oren explored how RavenDB deals with scaling under load and remain highly available even under failure conditions. Showed how RavenDB’s data-driven sharding allows to increase the amount of the data in our cluster without giving up the benefits of data locality and work with complex distributed map-reduce queries on a sharded cluster, giving you lightning-fast responses over ...

Read More »

Optimizing I/O throughput

We got a customer request about performance issues they were seeing on startup on a particular set of machines. Those machine run in a cloud environment, and they have… peculiar, one might say deviant, I/O characteristics. In particular, the I/O pipeline on those machines is wide, but very slow. What do I mean by that? I meant that any particular ...

Read More »

Production postmortem – The case of the memory eater and high load

This is a recent case. One of our customers complained that every now and then they started to see very high memory utilization, escalating quickly until the system would bog down and die. They were able to deploy a mitigation strategy of a sort, when they detected this behavioral pattern, they would force RavenDB to reject client requests for a ...

Read More »

RavenDB 3.0. New Stable Release

We have just released build 3785 of RavenDB 3.0. This build has quite a bit of changes (for the full gory details, see the pull request). This release includes about 3 months of bug fixes, performance improvements and the like. We have been testing this on our own systems for a few weeks now, as well as on multiple live ...

Read More »

Concurrent max value

For a feature in RavenDB, I need to figure out the maximum number of outputs per document an index has. Now, indexing runs in multiple threads at the same time, so we ended up with the following code:   var actualIndexOutput = maxActualIndexOutput; if (actualIndexOutput > numberOfAlreadyProducedOutputs) { // okay, now let verify that this is indeed the case, in ...

Read More »

Production postmortem: The case of the intrasingent new database

A customer called us to tell that they had a problem with RavenDB. As part of their process for handling new customers, they would create a new database, setup indexes, and then direct all the queries for that customer to that database. Unfortunately, this system that has worked so well in development died a horrible death in production. But, and ...

Read More »

API Design: Small modifications over a network

In RavenDB 4.0 (yes, that is quite a bit away), we are working on additional data types and storage engines. One of the things that we’ll add, for example, is the notion of gossiping distributed counters. That doesn’t actually matter for our purposes here, however. What I wanted to talk about today is the problem in making small updates over ...

Read More »