RavenDB 4.0 Alpha is out!
For the past two years or so, we have been working very hard on RavenDB 4.0. You have seen some of the posts in this blog detailing some of the work we have been doing. In RavenDB 4.0 we have put a tremendous amount of emphasis on performance and reducing the amount of work we are doing. We have been quite successful. Our metrics show a minimum of 10x improvement across the board, and often we are even faster.
I’m going to be posting a lot about RavenDB 4.0 in the next few weeks, to highlight some of the new stuff, this time in context, but for now, let me just say that I haven’t been this excited about releasing software since the 1.0 release of RavenDB.
You can download the new alpha here, we have pre-built binaries for Windows, Linux (Ubuntu) and Raspberry PI. Mac OS support is scheduled and will likely be in the next alpha.
The alpha version supports building databases, working with documents, subscriptions, changes, indexing (simple, full text and map/reduce). There have been significant improvements to indexing speed and how they work, memory utilization across the board is much lower and CPU utilization is much reduced.
We aren’t ready to do full blown benchmarks yet, but a sample scenario that has RavenDB 3.5 pegged at 100% with 45,000 requests per second has RavenDB 4.0 relaxing with 70% CPU with 153,000 requests per second.
We would like to get feedback on RavenDB 4.0, and so please download the software and give it a whirl.
You need to make sure that you use both server & client from the same version (older versions will not work with the new server). We actually have a couple of clients, we have the updated client for 4.0, which is pretty much the same as the old client, just updated to work with the new server, and we have a completely new client, which is built to provide much higher performance and apply the same lessons we learned while building the server to the client code. Over time, the new client is going to be the default one, but while we aren’t there yet, we want people to have access to it from the get go.
Please remember that this is pre-release alpha software, as such, bugs are expected, and should be reported.
Comments
Congratulations!
// Ryan
Congratulations!!.
Great work. Can we expect a debian version too?
Nevermind...got it working on debian jessie. Thanks!
Yay!! Congratulations to all Raven team!!
Oren, how do you manage code changes ravendb 3.5 and 4.0 same time.
@adam the old way, copy the repro test into 4.0 and fix whatever it needs to be fixed. Changes are so extreme that now there is almost no point of contact between the codebase at this point. Besides test suite of course.
Since a previous post stated there was a "major" difference in speed between flushing to disk between Linux and Windows, do you therefore advice to use Windows, or is this problem already solved? P.s. tried to search the post, but search still seems to be broken
XiniX00, No. Windows & Linux performance are comparable. We changed the approach that we use to actually flush to disk as a result of the experiments.
Hi, this is great! Congrats team. Now that the Linux world is going to be supported, are there any plans to add a Node.js client that is officially supported by Hibernating Rhinos like the Java and Python client?
Troy, Yes, we'll have an official client there.
Congrats! Great work from Raven team :)
Any chance that we could get alpha nuget packages? I see that you push the clients to myget, but not the server. I pulled the code and was able to build packages for Raven.Server, Voron and Sparrow, but the dependencies from '/libs' are giving me trouble, I think partly because I'm back to using the old-new msbuild-based csproj files, instead of project.json (this is using dotnet core 1.1 on linux). For now I'm just manually loading the dependencies dlls at runtime, but this is a ugly hack.
Thanks for considering :)
Simon, Can you move the discussion to the ravendb mailing list? On Linux, it should just build, without any external deps after dotnet restore
Comment preview