Quantcast
Channel: Ayende @ Rahien
Browsing latest articles
Browse All 157 View Live

Integer compression: FastPFor in C#, results

After this saga, I wanted to close the series with some numbers about the impact of this algorithm.If you’ll recall, I started this whole series discussing variable-sized integers. I was using this...

View Article


Generating sequential numbers in a distributed manner

On its face, we have a simple requirement:Generate sequential numbersEnsure that there can be no gapsDo that in a distributed mannerGenerating the next number in the sequence is literally as simple as...

View Article

Production postmortem: ENOMEM when trying to free memory

We got a support call from a client, in the early hours of the morning, they were getting out of memory errors from their database and were understandably perturb by that. They are running on a cloud...

View Article

Image may be NSFW.
Clik here to view.

Production postmortem: The dog ate my request

A customer called us, quite upset, because their RavenDB cluster was failing every few minutes. That was weird, because they were running on our cloud offering, so we had full access to the metrics,...

View Article

QCon San Francisco Workshop: Building a database from the ground up

I’m going to QCon San Francisco and will be teaching a full day workshop where we’ll start from a C compiler and  an empty file and end up with a functional storage engine, indexing and more.Included...

View Article


Unhandled Exception Episode 55: RavenDB and Database Internals - with Oren Eini

You can listen to me talk with Dan in the Unhandled Exception podcast, where we dug deep into the internals of database engines.As usual, I would love your feedback.

View Article

Image may be NSFW.
Clik here to view.

Not all O(1) operations are considered equal

At some point in any performance optimization sprint, you are going to run into a super annoying problem: The dictionary.The reasoning is quite simple. One of the most powerful optimization techniques...

View Article

Image may be NSFW.
Clik here to view.

Optimizing a three-way merge

Deep inside of the Corax indexing engine inside of RavenDB there is the notion of a posting list. A posting list is just an ordered set of entry ids that contains a particular term. During the indexing...

View Article


Image may be NSFW.
Clik here to view.

RavenDB Backups are now Faster & Smaller

With the release of RavenDB 6.0, we are now starting to focus on smaller features. The first one out of the gate, part of RavenDB 6.0.1 release, is actually a set of enhancements around making backups...

View Article


Image may be NSFW.
Clik here to view.

Learning over the holidays: Yet Another Bug Tracker sample app

If you are reading this blog, I assume that you are a like-minded person. My idea of relaxation is to sit and write code. Hopefully on something that I’m not familiar with. I have many such blog post...

View Article

Image may be NSFW.
Clik here to view.

RavenDB HTTP Compression: Bandwidth & Time reductions

I recently talked about how RavenDB is now using ZStd as the default compression algorithm for backups. That led to a reduction both in the amount of storage we are consuming for backups and a...

View Article

Image may be NSFW.
Clik here to view.

RavenDB, Raspberry Pi & Hugin Appliance: oh my!

RavenDB can run on the Raspberry Pi, it is actually an important use case for us when our users are deploying RavenDB as part of Internet of Things systems. We wanted to showcase RavenDB’s performance...

View Article

Recording: Technology & Friends - Oren Eini on the Corax Search Engine

When Oren Eini originally developed RavenDB, he used the Lucene library to implement indexing. Eventually, his team encountered limitations with this strategy, so they created the Corax search engine,...

View Article


Image may be NSFW.
Clik here to view.

RavenDB and Two Factor Authentication

RavenDB is typically accessed directly by your application, using an X509 certificate for authentication. The same applies when you are connecting to RavenDB as a user. Many organizations require that...

View Article

RavenDB’s storage engine: Voron–unlocking the secret

A couple of months ago I had the joy of giving an internal lecture to our developer group about Voron, RavenDB’s dedicated storage engine. In the lecture, I’m going over the design and implementation...

View Article


Image may be NSFW.
Clik here to view.

Vacations, leaky abstractions, and modeling concerns, oh my!

Our task today is to request (and obtain approval for) a vacation. But before we can make that request, we need to handle the challenge of building   the vacation requesting system. Along the way, I...

View Article

Image may be NSFW.
Clik here to view.

Corax Query Plan visualization

Corax is the new indexing and querying engine in RavenDB, which recently came out with RavenDB 6.0. Our focus when building Corax was on one thing, performance. I did a full talk explaining how it...

View Article


Reading unfamiliar codebases quickly: LMDB

Reading code is a Skill (with a capital letter, yes) that is really important for developers. You cannot be a good developer without it.Today I want to talk about one aspect of this. The ability to go...

View Article

Indexing only recent data - adventures with large datasets & archiving

We recently got a support request from a user in which they had the following issue:We have an index that is using way too much disk space. We don’t need to search the entire dataset, just the most...

View Article

Caching documents in RavenDB: The good, the bad and the ugly

RavenDB has a hidden feature, enabled by default and not something that you usually need to be aware of. It has built-in support for caching. Consider the following code:async...

View Article
Browsing latest articles
Browse All 157 View Live