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 significant reduction in the time to actually run the backups.
We have been exploring where else we can get those benefits and the changes were recently released in RavenDB 6.0.2.
RavenDB now supports ZStd for HTTP compression, which you can control using the DocumentConventions.HttpCompressionAlgorithm.
You can find all the gory details about the performance impact in the release announcement here.
The really nice thing is that you can expect to see about a 50% reduction in the amount of bandwidth being used at comparable or better timings. That is especially true if you are using bulk inserts, where the benefit is most noticeable.
If you are running on the cloud, that matters a lot, since a reduction in bandwidth to and from the database translates directly into dollars being saved.
This was actually released a while ago, I was occupied with other matters and missed that.I had a blast talking with Carl & Richard about data sharding and how we implemented that in RavenDB.What is data sharding, and why do you need it? Carl and Richard talk to Oren Eini about his latest work on RavenDB, including the new data sharding feature. Oren talks about the power of sharding a database across multiple servers to improve performance on massive data sets. While a sharded database is typically in a single data center, it is possible to distribute the shards across multiple locations. The conversation explores the advantages and disadvantages of the different approaches, including that you might not need it today, but it's great to know it's there when you do!You can listen to the podcast here.
On Windows, you can get a handle on a directory. This can be useful to prevent other applications from accessing or deleting the folder while your application is accessing it. You can use the win32 method CreateFile to open a folder. This method is not available in .NET, but it is possible to use i
Jaime and I had a really good discussion about RavenDB, why I took the time to create my own NoSql database engine, and the fact that I built it using .NET Core before it was released (back in the pre-1.0 days, when it was known as dnx), and some of the optimisation stories that I worked on when creating RavenDB. Along the way, we cover what the GC (or garbage collector) is, performance issues to look out for when dealing with large JSON objects, and some tips for those who want to optimise their applications.
You can listen to it here.
Would love your feedback.
Today I had a meeting to go over the 2024 budget, and we ran into one of the most important line times. Our coffee budget.
You know the old adage about: Coders are turning Coffee into Code, right?
Certainly true in our case, in 2023 we spent a large 5-figure sum on coffee alone. And 2024 is shaping up to be even more expensive.
Happy new year!
Events are a common source of memory leaks when a subscriber forgets to unsubscribe to an event and the subscriber and event publisher don't have the same life cycle. Depending on the use case, you can use weak events. Weak events are events that do not prevent the subscriber from being garbage col
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 series covering topics I care about. It’s my idea of meditation.For the end of 2023, I thought that we could do something similar but on a broader scale. A while ago Alex Klaus wrote a walkthrough on how to build a complete application from scratch using modern best practices (and RavenDB). We refreshed the code and made it widely available, offering you something fun , educational, and productive to engage with.The system is a bug tracker (allowing us to focus on the architecture rather than domain concerns), and you can play with a deployed version live. The code is available under the MIT license, and we’ll be very happy to receive any suggested improvements.Topics that are covered:Building an enterprise application with the .NET and RavenDBNon-Relational Data Modeling Through Domain Driven Design PrismHidden side of document IDs in RavenDBDynamic Fields for IndexingEntity Relationships in non-relational database (one-to-many, many-to-many)Multi-tenant database in NoSQLDatabase Integration Testing – The Secret RecipeAs usual, I would love any feedback you have to offer.