Articles

Managing the most dangerous constructor ever

6 minutes
The design of the X509Certificate2 is badly broken in terms of safety. If you load a certificate from the disk or a byte buffer, it will go ahead and create a file on the disk behind the scene. If you’ll dispose the instance, the file will be removed. However, if you don’t explicitly dispose the […]

re: How Discord supercharges network disks for extreme low latency

6 minutes
I read this blog post from Discord, which presents a really interesting approach to a problem that they ran into. Basically, in the cloud you have the choice between fast and ephemeral disks and persistent (and much slower) disks. Technically speaking you can try to get really fast persistent disks, but those are freaking expensive. […]

Importing the Stack Overflow dataset into RavenDB

6 minutes
Around 2017 we needed to test RavenDB with realistic datasets. That was the time that we were working hard on the 4.0 release, and we wanted to have some common dataset that was production quality (for all the benefits and complications that this brings) to play with. A serious issue was that we needed that […]

Architectural optimizations vs the profiler

12 minutes
For the past couple of years, we had a stealth project going on inside of RavenDB. That project is meant to re-architect the internals of how RavenDB handles queries. The goal is to have a major performance improvement for RavenDB indexing and queries. We spent a lot of time thinking about architecting this. Design discussions […]

Tracking down RavenDB I/O usage in Linux

7 minutes
Today I had to look into the a customer whose RavenDB instance was burning through a lot of I/O. The process is somewhat ingrained in me by this point, but I thought that it would make for a good blog post so I’ll recall that next time. Here is what this looks like from the […]

Production postmortem: The allocating query

7 minutes
A customer was experiencing large memory spikes in some cases, and we were looking into the allocation patterns of some of the queries that were involved. One of the things that popped up was a query that allocated just under 30GB of managed memory during its processing. Let me repeat that, because it bears repeating. […]

Webinar Recording: RavenDB & Messaging Transactions

1 minutes
In RavenDB 5.4, we’re introducing new ELT features for Kafka and RabbitMQ. Now, instead of your documents just sitting there in your database, you can involve them in your messaging transactions. In this webinar, RavenDB CEO Oren Eini explains how these ETL tasks open up a whole new world of architectural patterns, and how they […]