The subtleties of proper B+Tree implementation

I mentioned earlier that B+Trees are a gnarly beast to implement properly. On the face of it, this is a really strange statement, because they are a pretty simple data structure. What is so complex about the implementation? You have a fixed size page, you add to it until it is full, then you split […]

Reducing complexity with a shift in thinking

I love B+Trees, but they can be gnarly beasts, with the number of edge cases that you can run into. Today’s story is about a known difficult place, page splitting in the tree. Consider the following B+Tree, showing a three-level tree with 3 elements on each page. Consider what will happen when we want to […]

Monitoring I/O inside of RavenDB

Earlier this year I talked about the reasoning behind the RavenDB team spending so much time building self monitoring diagnostics. Today I’m happy to announce that RavenDB has another such feature, allowing you to see, in real time, exactly what is going on in your database in terms of I/O. You can see what this […]

Comparing SQLite WAL mode to Voron’s

There is a great article discussing how SQLite is handling transactions at Which led me to the great documentation on the WAL mode for SQLite. And that led me to think about the differences between how SQLite does it and how Voron does it. Both SQLite and Voron share asame behavior, they use Copy […]

RavenDB PHP Client beta is out

The official RavenDB Client for PHP is now out in beta. You can now make use of a rich client to consume RavenDB with all the usual features you would expect. To start using RavenDB, run: $ composer require ravendb/ravendb-php-client And then you can start using RavenDB in your project. Here are some interesting code […]

Using RavenDB for Department of Defense projects

If you are using RavenDB for defense projects, we have got good news for you. RavenDB is now available on Iron Bank, making it that much easier to make use of RavenDB in defense or high security projects. Iron Bank is the DoD repository of digitally signed, binary container images including both Free and Open-Source […]

Optimizing Corax: Optimizing tree operations

I love trees. Not the ones that produce oxygen, I mean, I guess they are nice too, but I’m talking about trees in software. To be rather more exact, I’m fascinated by B+Trees and all their permutations. In a very real sense, most databases are all about B+Trees. To give you some context, Voron alone, […]

RavenDB 5.4 is out

That actually happened over a month ago, but I’m afraid that July / August hasn’t been kind of either my attention span or the ability to actually keep track of what is happening. September is around the corner (at which point the summer vacation would be over and I’m already looking forward to some blessed […]