RavenDB 4.1 features: JavaScript Indexes
Note: This feature is an experimental one. It will be included in 4.1, but it will be behind an experimental feature flag. It is possible that this will change before full inclusion in the...
View ArticleThe case of the missing writes in Docker (a Data Corruption story)
We started to get reports from users that are running RavenDB on Docker that there are situations where RavenDB reports that there has been a data corruption event. You can see how this looks like on...
View ArticleRavenDB Security Vulnerability Advisory
You can read the full details here. The short of it is that we discovered a security vulnerability in RavenDB. This post tells a story. For actionable operations, see the previous link and upgrade your...
View ArticleRavenDB 4.1 Features: Cluster wide ACID transactions
One of the major features coming up in RavenDB 4.1 is the ability to do a cluster wide transaction. Up until this point, RavenDB’s transactions were applied at each node individually, and then sent...
View ArticleI want to see the QA process that catch this bug!
When we get bug reports from the field, we routinely also do a small assessment to figure out why we missed the issue in our own internal tests and runway to production.We just got a bug report like...
View ArticleGraphs in RavenDB: Recursive queries
Graph queries as I discussed them so far gives you the ability to search for patterns. On the right, you can see the family tree of the royal family of Great Britain going back a few hundred years....
View ArticleWhen a production crash (and a killer bug) isn’t a big deal
We test RavenDB as thoroughly as we can. Beyond just tests, longevity runs, load test and in general beating it with a stick and seeing if it bleats, we also routinely push early build of RavenDB to...
View ArticleProduction postmortem: Handled errors and the curse of recursive error handling
I’m certain that the archangel that is responsible for statistical grouping has a strange fondness for jokes. If that isn’t the case, I can’t really explain how we routinely get clear clustering of bug...
View ArticleModeling data using a multi model database
Most developers have been weaned on relational modeling and have to make a non trivial mental leap when the times comes to model data in a non relational manner. That is hard enough on its own, but...
View ArticleData modeling with indexes: Introduction
The title of this post is pretty strange, I admit. Usually, when we think about modeling, we think about our data. If it is a relational database, this mostly mean the structure of your tables and the...
View ArticleData modeling with indexes: Business rules
In my last post on the topic, I showed how we can define a simple computation during the indexing process. That was easy enough, for sure, but it turns out that there are quite a few use cases for this...
View ArticleData modeling with indexes: Predicting the future
Computation during indexes open up some nice features when we are talking about data modeling and working with your data. In this post, I want to discuss predicting the future with it. Let’s see how...
View ArticleLarge, interconnected, in memory model
I got into an interesting discussion about Event Sourcing in the comments for a post and that was interesting enough to make a post all of its own.Basically, Harry is suggesting (I’m paraphrasing, and...
View ArticleThe security implications of self updating credentials
RavenDB uses X509 certificates for many purposes. One of them is to enable authentication by using clients certificates. This create a highly secured authentication method with quite a lot to recommend...
View ArticleAnalyzing five years of FitBit data
About five years ago, my wife got me a present, a FitBit. I didn’t wear a watch for a while, and I didn’t really see the need, but it was nice to see how many steps I took and we had a competition...
View ArticleRunning RavenDB on burstable cloud instances
One of the silent features of people moving to the cloud is that it make it the relation between performance and $$$ costs evident. In your on data center, it is easy to lose track between the yearly...
View ArticleSearching through text: Part I, full text search in under 200 lines of code
Full text search is a really interesting topic, which I have been dipping my toes into again and again over the years. It is a rich area of research, and there has been quite a few papers, books and...
View ArticleSearching through text: Part II, Exploring posting lists persistence
In full text search terminology, a posting list is just a list of document ids. These are used to store and find matches for particular terms in the index.I took the code from the previous post and...
View ArticleSearching through text: Part III, Managing posting lists
In the previous posts in this series, I explored a bit how to generate a full text index on top of the Enron data set. In particular, we looked at (rudimentary) analysis of text in the first post and...
View ArticleVoron’s Roaring Set: Part I
Following my posts about search, I wanted to narrow my focus a bit and look into the details of implementing a persistent data structure inside Voron.Voron is RavenDB’s storage engine and forms the...
View Article