Notes on RavenDB vs. PostgreSQL
A common question I field on many customer inquiries is comparing RavenDB to one relational database or another. Recently we got a whole spate of questions on RavenDB vs. PostgreSQL and I though that...
View Articlere: Why databases use ordered indexes but programming uses hash tables
This post asked an interesting question, why are hash table so prevalent for in memory usage and (relatively) rare in the case of databases. There is some good points in the post, as well as in the...
View Articlere: Writing a very fast cache service with millions of entries
I run into this article that talks about building a cache service in Go to handle millions of entries. Go ahead and read the article, there is also an associated project on GitHub.I don’t get it....
View ArticleFeature discussion: Spicing up document refreshes in RavenDB
I posted about the @refresh feature in RavenDB, explaining why it is useful and how it can work. Now, I want to discuss a possible extension to this feature. It might be easier to show than to explain,...
View ArticleRavenDB Cloud gets shared plans
I’m really happy to announce that RavenDB Cloud has now deployed shared instances support. These are full production systems, with three separate nodes deployed in separate availability zones for...
View ArticleProduction post-mortem: Too much RAM and the unstable cluster
A customer reported that on their system, they suffered from frequent cluster elections in some cases. That is usually an indication that the system resources are hit in some manner. From experience,...
View ArticleRavenDB Cloud now supports HIPAA accounts
RavenDB Cloud is now offering HIPAA Compliant Accounts. HIPAA stands for Health Insurance Portability and Accountability Act and is a set of rules and regulations that health care providers and their...
View ArticleAdvanced Cosmos DB session (Hebrew)
My talk to the Azure Israel about Cosmos DB is up (in Hebrew)…
View ArticleI’ve an allergic reaction to SQL Injections
A few days ago I posted about looking at GitHub projects for junior developer candidates. One of the things that is very common in such scenario is to see them use string concatenation for queries, I...
View ArticlePractical considerations for implementing Raft
RavenDB has been using the Raft protocol for the past years. In fact, we have written three or four different implementations of Raft along the way. I implemented Raft using pure message passing, on...
View ArticleSorted integer compression
In the database field and information retrieval in general, there is a very common scenario. I have a list of (sorted) integers that I want to store, and I want to do that in an as efficient a manner...
View ArticleChallenge: Detecting livelihood in a distributed cluster
I’m teaching a course at university about cloud computing. That can be a lot of fun, but quite frustrating at time. The key issue for me is that I occasionally need to provide students with some way to...
View ArticleAnswers: Detecting livelihood in a distributed cluster
Yesterday I asked about dealing with livelihood detection of nodes running in AWS. The key aspect is that this need to be simple to build and easy to explain.Here are a couple of ways that I came up...
View ArticleThe cost of the cloud
I mentioned that I’m teaching a Cloud Computing course at university in a previous post. That lead to some good questions that I have to field about established wisdom that I have to really think...
View ArticleYes, the network is hostile, even yours (or: how to lose your data in three...
NewsBlur (a personal news aggregator) suffered from a data breech / ransomware “attack”. I’m using the term “attack” here in quotes because this is the equivalent to having your car broken into after...
View ArticleProducts, Pricing and Predictability
I want to talk about an aspect of RavenDB that is usually ignored. Its pricing structure. The model we use for pricing RavenDB is pretty simple, we charge on a per core basis, with two tiers depending...
View ArticleWork offloading and controlled parallelism
For a database engine, controlling the amount of work that is being executed is a very important factor for the stability of the system. If we can’t control the work that is being done, it is quite...
View ArticlePostmortem: The case of the pauses, the fault and the GC
A RavenDB customer called us with an interesting issue. Every now and then, RavenDB will stop process any and all requests. These pauses could last for as long as two to three minutes and occurred on a...
View ArticlePostmortem: Accidentally quadratic indexing output
Tracking down a customer’s performance issue, we eventually tracked things down to a single document modification that would grind the entire server to a halt. The actual save was working fine, it was...
View ArticleProduction postmortem: The Guinness record for page faults & high CPU
We got a pretty nasty bug at a customer site a few months ago. Every now and then, the server running RavenDB will go into a high CPU mode, use 100% CPU and stay there for extended period of time....
View Article